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, 安全, 拒绝服务, 暴力破解, 缓冲区溢出, 超时处理, 路由器安全, 逆向工具, 配置错误