信息搜集
使用nmap扫描获取网段信息。
获取到靶机的ip地址以及相应开放的服务端口。
web服务探测
打开靶机web服务,在网络连接中,发现一个域名解析失败。这个域名应该是靶机的8000端口的服务。
在/etc/hosts文件中添加域名解析。
域名解析成功。发现其中http://chronos.local:8000/date?请求时options请求方式,感觉可能会有点信息可以利用。
使用bp尝试更改下请求方式。
更改方式加上修改参数的值,发现存在一个经过编码的参数值。
发现只是base58编码,解码后的值
'+Today is %A, %B %d, %Y %H:%M:%S.'
感觉此处可能时存在RCE漏洞,经过测试发现确实存在。
&&这个两个指令连接符。
查看到当前web运行目录下的文件。
查看下,可执行的指令。发现存在nc。
nc连接失败,经过测试以及参考一些大佬的博客,发现-e指令被禁用了。
但还可以通过管道符连接。
/home目录下存在imera用户目录。
在/opt/chronos-v2/backend/目录下有server.js文件并且使用less指令读取server.js,发现在靶机的8080端口运行着express-fileupload。
百度了下,express-fileupload存在漏洞。
下一步就是查找exp。
费劲巴拉的终于找到了exp。。。
提权
再次开启一个监听端口。
获取到imera用户权限。
在imera用户权限下查看sudo -l发现存在无需密码就可以执行的文件,查找下这两个文件是否存在提权的漏洞。
发现可以利用sudo node进行提权。
提权成功,结束。
参考链接
靶机下载地址:https://www.vulnhub.com/entry/chronos-1,735/.
exp:https://blog.p6.is/Real-World-JS-1/.
node提权:https://gtfobins.github.io/gtfobins/npm/.
参考文章:https://blog.csdn.net/wcwdnmdnmd/article/details/120797811.