
POC para CVE-2025-29384
Este repositorio contiene un exploit avanzado de prueba de concepto (PoC) para CVE-2025-29384, una vulnerabilidad crítica de desbordamiento de búfer basado en pila descubierta en el router Tenda AC9 que ejecuta la versión de firmware V15.03.05.14_multi. Esta vulnerabilidad permite a atacantes remotos no autenticados bloquear el servidor web del router (Denegación de Servicio, DoS) y potencialmente ejecutar código arbitrario (Ejecución Remota de Código, RCE).
El propósito de este proyecto es demostrar habilidades de desarrollo de exploits, contribuir a la comunidad de ciberseguridad y proporcionar una muestra educativa para evaluaciones académicas (por ejemplo, becas de ciberseguridad). Este repositorio contiene un exploit avanzado de prueba de concepto (PoC) para CVE-2025-29384, una vulnerabilidad crítica de desbordamiento de búfer basado en pila descubierta en el router Tenda AC9 que ejecuta la versión de firmware V15.03.05.14_multi. Esta vulnerabilidad permite a atacantes remotos no autenticados bloquear el servidor web del router (Denegación de Servicio, DoS) y potencialmente ejecutar código arbitrario (Ejecución Remota de Código, RCE).
El propósito de este proyecto es demostrar habilidades de desarrollo de exploits, contribuir a la comunidad de ciberseguridad y proporcionar una muestra educativa para evaluaciones académicas, como becas de ciberseguridad.
CVE-2025-29384 afecta la interfaz de administración web del router Tenda AC9, específicamente el endpoint:
/goform/AdvSetMacMtuWan
La vulnerabilidad existe debido a una verificación de límites inadecuada en el parámetro wanMTU, que se procesa a través de una solicitud HTTP POST. La entrada se copia en un búfer de pila de tamaño fijo sin validación, lo que provoca un desbordamiento de búfer basado en pila clásico.
La función vulnerable (reconstrucción hipotética) sigue esta estructura:
void process_mtu(char *input) {
char buffer[256]; // Fixed-size stack buffer
strcpy(buffer, input); // No length check, causes overflow
// Process MTU value...
}
Un atacante que envía una carga útil de gran tamaño (por ejemplo, 1024+ bytes) sobrescribe la memoria adyacente, incluida la dirección de retorno de la función, lo que potencialmente conduce a la ejecución de código.
El Tenda AC9 es un router inalámbrico de doble banda con las siguientes especificaciones:
Este repositorio también incluye un módulo de Metasploit basado en Ruby para CVE-2025-29384. El módulo se integra perfectamente con el Metasploit Framework, permitiéndole explotar la vulnerabilidad usando msfconsole.
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
Localice el archivo del módulo Ruby y cópielo al directorio de exploits de Metasploit:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
Nota: Si el directorio no existe, créelo:
mkdir -p ~/.msf4/modules/exploits/linux/http/
Inicie Metasploit Framework:
msfconsole
Cargue el módulo:
use exploit/linux/http/tenda_ac9_stack_overflow
Establezca la dirección IP del objetivo:
set RHOSTS <target_ip>
Establezca el tamaño de la carga útil (opcional, por defecto es 1024):
set PAYLOAD_SIZE 2048
Ejecute el exploit:
run
[*] Targeting Tenda AC9 at 192.168.0.1:80...
[*] Sending payload of size 2048...
[+] Payload sent successfully!
[*] Response: HTTP/1.1 200 OK...
Éxito: El servidor web del router se bloquea, causando una condición de Denegación de Servicio (DoS).
Fallo: El router permanece operativo, lo que indica que puede no ser vulnerable o estar ejecutando una versión de firmware parcheada.
Este PoC es un exploit basado en Python que envía una entrada de gran tamaño a /goform/AdvSetMacMtuWan, desencadenando un desbordamiento de búfer para bloquear el servidor web y mostrando el potencial para RCE.
Multihilo – Lanza múltiples intentos de exploit concurrentes para mayor fiabilidad.
Cargas Útiles Dinámicas – Genera cadenas de ataque aleatorias codificadas en base64.
Registro – Utiliza el módulo de logging de Python para depuración estructurada.
Parámetros Personalizables – Ajusta la IP objetivo, el tamaño de la carga útil y el número de hilos.
Este PoC es un exploit basado en Python que envía una entrada de gran tamaño a /goform/AdvSetMacMtuWan, desencadenando un desbordamiento de búfer para bloquear el servidor web.
python poc.py --target <router_ip> --size 2048 --threads 10
| Argumento | Descripción |
|---|---|
--target | IP del router (por defecto: ) |
[+] 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.
Éxito: La interfaz web del router se vuelve no receptiva (condición DoS).
Fallo: El router sigue respondiendo (no vulnerable o firmware incorrecto).
Para confirmar que el exploit bloquea el router con éxito, intente recargar la interfaz web. Si se vuelve no receptiva, el ataque fue exitoso. Para un análisis adicional, verifique los registros de red en busca de conexiones caídas o use ping para verificar la capacidad de respuesta del dispositivo.
Este proyecto es solo para fines educativos y de hacking ético. El uso no autorizado de este exploit es ilegal. El autor no es responsable del mal uso o daños causados por este código.
Desarrollado con ❤️ por Otsmane Ahmed Este proyecto es solo para fines educativos y de hacking ético. El uso no autorizado de este exploit es ilegal. El autor no es responsable del mal uso o daños causados por este código.
Este proyecto se publica bajo la Licencia MIT.
| Métrica | Valor |
|---|
| Vector de Ataque | Red |
| Complejidad del Ataque | Baja |
| Privilegios Requeridos | Ninguno |
| Interacción del Usuario | Ninguna |
| Impacto en la Confidencialidad | Alto |
| Impacto en la Integridad | Alto |
| Impacto en la Disponibilidad | Alto |
192.168.0.1--size | Tamaño de la carga útil en bytes (por defecto: 1024) |
--threads | Número de hilos concurrentes (por defecto: 5) |