CVE-2025-29384的POC
此仓库包含一个针对 CVE-2025-29384 的高级概念验证 (PoC) 漏洞利用,该漏洞是 Tenda AC9 路由器运行固件版本 V15.03.05.14_multi 时发现的一个严重 基于栈的缓冲区溢出 漏洞。此漏洞允许 未经认证的远程攻击者 使路由器的 Web 服务器崩溃(拒绝服务,DoS),并可能执行任意代码(远程代码执行,RCE)。
本项目旨在 演示漏洞利用开发技能,为网络安全社区做出贡献,并为学术评估(例如网络安全奖学金)提供教育展示。 此仓库包含一个针对 CVE-2025-29384 的高级概念验证 (PoC) 漏洞利用,该漏洞是 Tenda AC9 路由器运行固件版本 V15.03.05.14_multi 时发现的一个严重 基于栈的缓冲区溢出 漏洞。此漏洞允许 未经认证的远程攻击者 使路由器的 Web 服务器崩溃(拒绝服务,DoS),并可能执行任意代码(远程代码执行,RCE)。
本项目旨在 演示漏洞利用开发技能,为网络安全社区做出贡献,并为学术评估(例如网络安全奖学金)提供教育展示。
CVE-2025-29384 影响 Tenda AC9 路由器的 Web 管理接口,具体是以下端点:
/goform/AdvSetMacMtuWan
该漏洞源于对 wanMTU 参数的 边界检查不当,该参数通过 HTTP POST 请求 进行处理。输入被复制到一个 固定大小的栈缓冲区而不进行验证,导致经典的 基于栈的缓冲区溢出。
易受攻击的函数(假设的重建)结构如下:
void process_mtu(char *input) {
char buffer[256]; // 固定大小的栈缓冲区
strcpy(buffer, input); // 无长度检查,导致溢出
// 处理 MTU 值...
}
攻击者发送超大的有效载荷(例如 1024+ 字节)会 覆盖相邻内存,包括函数的 返回地址,从而可能导致 代码执行。
Tenda AC9 是一款 双频无线路由器,规格如下:
此仓库还包含一个针对 CVE-2025-29384 的 基于 Ruby 的 Metasploit 模块。该模块与 Metasploit 框架无缝集成,允许您使用 msfconsole 来利用该漏洞。
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
找到 Ruby 模块文件 并将其复制到 Metasploit 的漏洞利用目录:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
注意: 如果目录不存在,请创建它:
mkdir -p ~/.msf4/modules/exploits/linux/http/
启动 Metasploit 框架:
msfconsole
加载模块:
use exploit/linux/http/tenda_ac9_stack_overflow
设置目标 IP 地址:
set RHOSTS <target_ip>
设置有效载荷大小(可选,默认为 1024):
set PAYLOAD_SIZE 2048
运行漏洞利用:
run
[*] Targeting Tenda AC9 at 192.168.0.1:80...
[*] Sending payload of size 2048...
[+] Payload sent successfully!
[*] Response: HTTP/1.1 200 OK...
成功:路由器的 Web 服务器崩溃,导致 拒绝服务 (DoS) 状态。
失败:路由器仍然正常运行,表明它可能不易受攻击或正在运行已修补的固件版本。
此 PoC 是一个 基于 Python 的漏洞利用,向 /goform/AdvSetMacMtuWan 发送超大的输入,触发缓冲区溢出以 使 Web 服务器崩溃,并展示 RCE 的潜力。
多线程 – 启动多个并发漏洞利用尝试以提高可靠性。
动态有效载荷 – 生成随机化的 base64 编码攻击字符串。
日志记录 – 使用 Python 的日志模块进行结构化调试。
可自定义参数 – 调整 目标 IP、有效载荷大小和线程数。
此 PoC 是一个 基于 Python 的漏洞利用,向 /goform/AdvSetMacMtuWan 发送超大的输入,触发缓冲区溢出以 使 Web 服务器崩溃。
python poc.py --target <router_ip> --size 2048 --threads 10
| 参数 | 描述 |
|---|---|
--target | 路由器 IP(默认:192.168.0.1) |
--size |
[+] CVE-2025-29384 Exploit Engine
[INFO] Target: 192.168.0.1
[INFO] Sending payload (2048 bytes)...
[WARNING] Target timeout - possible crash!
[INFO] Exploit sequence completed.
成功:路由器的 Web 界面无响应(DoS 状态)。
失败:路由器仍然响应(不易受攻击或固件版本错误)。
要确认漏洞利用是否成功使路由器崩溃,请尝试重新加载 Web 界面。如果变得无响应,则攻击成功。要进行更深入的分析,请检查网络日志中是否有掉线的连接,或使用 ping 验证设备响应。
本项目仅用于 教育和道德黑客目的。未经授权使用此漏洞利用 是违法的。作者 不对滥用或由此代码造成的任何损害负责。
由 Otsmane Ahmed 用 ❤️ 开发 本项目仅用于 教育和道德黑客目的。未经授权使用此漏洞利用 是违法的。作者 不对滥用或由此代码造成的任何损害负责。
本项目根据 MIT 许可证 发布。
| 指标 | 值 |
|---|
| 攻击向量 | 网络 |
| 攻击复杂度 | 低 |
| 所需权限 | 无 |
| 用户交互 | 无 |
| 机密性影响 | 高 |
| 完整性影响 | 高 |
| 可用性影响 | 高 |
有效载荷大小(字节)(默认:1024) |
--threads | 并发线程数(默认:5) |