Fomovet/cve-2025-29384
GitHub: Fomovet/cve-2025-29384
针对 Tenda AC9 路由器 CVE-2025-29384 栈缓冲区溢出漏洞的概念验证利用工具,提供 Python 和 Metasploit Ruby 模块两种方式来验证该未经身份验证的远程 DoS/RCE 漏洞。
Stars: 0 | Forks: 0
# CVE-2025-29384 概念验证漏洞利用
## 概述
本仓库包含一个针对 **CVE-2025-29384** 的高级概念验证 漏洞利用程序。该漏洞是在运行 **V15.03.05.14_multi** 固件版本的 **Tenda AC9** 路由器中发现的一个严重的**基于栈的缓冲区溢出**漏洞。该漏洞允许**未经身份验证的远程攻击者**使路由器的 Web 服务器崩溃(**拒绝服务,Denial-of-Service, DoS**),并可能执行任意代码(**远程代码执行,Remote Code Execution, RCE**)。
本项目的目的是**展示漏洞利用开发技能**,为网络安全社区做出贡献,并为学术评估(例如,网络安全奖学金)提供一个教育性的展示案例。
本仓库包含一个针对 **CVE-2025-29384** 的高级概念验证 漏洞利用程序。该漏洞是在运行 **V15.03.05.14_multi** 固件版本的 **Tenda AC9** 路由器中发现的一个严重的**基于栈的缓冲区溢出**漏洞。该漏洞允许**未经身份验证的远程攻击者**使路由器的 Web 服务器崩溃(**拒绝服务,Denial-of-Service, DoS**),并可能执行任意代码(**远程代码执行,Remote Code Execution, RCE**)。
本项目的目的是**展示漏洞利用开发技能**,为网络安全社区做出贡献,并为学术评估(例如网络安全奖学金)提供一个教育性的展示案例。
## 漏洞详情
### CVE 描述
CVE-2025-29384 影响 **Tenda AC9** 路由器的 **Web 管理界面**,特别是以下 endpoint:
```
/goform/AdvSetMacMtuWan
```
该漏洞的存在是由于对通过 **HTTP POST 请求**处理的 `wanMTU` 参数**没有进行正确的边界检查**。输入内容被复制到一个**固定大小的栈缓冲区中且未经验证**,从而导致了典型的**基于栈的缓冲区溢出**。
#### **影响**
- **拒绝服务**:导致路由器的 HTTP 服务器崩溃,使其在重启前一直无响应。
- **潜在的 RCE**:攻击者可以**覆盖返回地址**,并在路由器的**基于 MIPS 的架构**上执行任意代码。
- **无需身份验证**:该漏洞可以在没有凭据的情况下被远程触发,增加了其严重性。
#### **技术分析**
易受攻击的函数(假设性重构)遵循以下结构:
```
void process_mtu(char *input) {
char buffer[256]; // Fixed-size stack buffer
strcpy(buffer, input); // No length check, causes overflow
// Process MTU value...
}
```
攻击者发送超大的 payload(例如 1024+ 字节)会**覆盖相邻的内存**,包括**函数的返回地址**,从而可能导致**代码执行**。
### **CVSS v3.1 评分:9.8(严重)**
| 指标 | 值 |
|----------------------|-------|
| **Attack Vector (攻击媒介)** | Network (网络) |
| **Attack Complexity (攻击复杂度)** | Low (低) |
| **Privileges Required (所需权限)** | None (无) |
| **User Interaction (用户交互)** | None (无) |
| **Confidentiality Impact (机密性影响)** | High (高) |
| **Integrity Impact (完整性影响)** | High (高) |
| **Availability Impact (可用性影响)** | High (高) |
## 受影响设备
**Tenda AC9** 是一款**双频无线路由器**,具有以下规格:
- **CPU**:Broadcom BCM4708 (MIPS 74Kc, 双核, ~1 GHz)
- **RAM**:128 MB
- **Flash**:16 MB
- **Wi-Fi**:双频 802.11ac (AC1200)
- **端口**:1x 千兆 WAN,4x 千兆 LAN
- **固件**:**V15.03.05.14_multi**(确认易受攻击)
## 披露时间线
- **2025年3月14日** – CVE-2025-29384 发布在 **NVD/MITRE** 上。
- **2025年3月17日** – 此 PoC 开发并测试完成。
- **2025年3月17日** – 截至该日期,Tenda 尚未发布官方补丁。
## PoC 漏洞利用详情
### Ruby Metasploit 模块
本仓库还包含一个针对 CVE-2025-29384 的**基于 Ruby 的 Metasploit 模块**。该模块与 Metasploit Framework 无缝集成,允许你使用 `msfconsole` 来利用此漏洞。
### 如何使用 Ruby 模块
#### **第 1 步:下载模块**
```
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
```
#### **第 2 步:将模块复制到 Metasploit**
找到 **Ruby 模块文件**并将其复制到 Metasploit 的 exploits 目录中:
```
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
```
**注意:** 如果该目录不存在,请创建它:
```
mkdir -p ~/.msf4/modules/exploits/linux/http/
```
#### **第 3 步:启动 Metasploit**
启动 Metasploit Framework:
```
msfconsole
```
加载模块:
```
use exploit/linux/http/tenda_ac9_stack_overflow
```
#### **第 4 步:配置并运行漏洞利用**
设置目标 IP 地址:
```
set RHOSTS
```
设置 payload 大小(可选,默认为 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 服务器崩溃,导致**拒绝服务 条件**。
**失败**:路由器保持运行状态,表明它可能不易受攻击,或者运行的是已修复的固件版本。
### **漏洞利用概述**
此 PoC 是一个**基于 Python 的漏洞利用程序**,它向 `/goform/AdvSetMacMtuWan` 发送超大的输入,触发缓冲区溢出以**使 Web 服务器崩溃**,并展示了 RCE 的潜力。
### **测试环境**
- **操作系统**:Kali Linux
- **Python 版本**:3.x
- **测试设备**:Tenda AC9 (固件 V15.03.05.14_multi)
### **功能**
**多线程** – 启动多个并发的漏洞利用尝试以提高可靠性。
**动态 Payload** – 生成随机的 base64 编码攻击字符串。
**日志记录** – 使用 Python 的 logging 模块进行结构化调试。
**可自定义参数** – 调整**目标 IP、payload 大小和线程数**。
### **漏洞利用概述**
此 PoC 是一个**基于 Python 的漏洞利用程序**,它向 `/goform/AdvSetMacMtuWan` 发送超大的输入,触发缓冲区溢出以**使 Web 服务器崩溃**。
### **用法**
#### **前置条件**
- **Python 3.x**
- **具有 V15.03.05.14_multi 固件的 Tenda AC9 路由器**
#### **运行漏洞利用**
```
python poc.py --target --size 2048 --threads 10
```
##### **参数:**
| 参数 | 描述 |
|----------|-------------|
| `--target` | 路由器 IP (默认: `192.168.0.1`) |
| `--size` | payload 大小 (字节) (默认: `1024`) |
| `--threads` | 并发线程数 (默认: `5`) |
#### **示例输出**
```
[+] 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 License** 发布。
标签:Go语言工具, PoC, 安全, 拒绝服务, 暴力破解, 缓冲区溢出, 超时处理, 路由器安全, 逆向工具, 配置错误