
Este repositorio contiene un exploit de prueba de concepto (PoC) avanzado 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 ofrecer una muestra educativa para evaluaciones académicas, como becas de ciberseguridad. Este repositorio contiene un exploit de prueba de concepto (PoC) avanzado 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 ofrecer 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 incorrecta de límites en el parámetro wanMTU, que se procesa mediante 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 clásico desbordamiento de búfer basado en pila.
La función vulnerable (reconstrucción hipotética) sigue esta estructura:
void process_mtu(char *input) {
char buffer[256]; // Búfer de pila de tamaño fijo
strcpy(buffer, input); // Sin verificación de longitud, causa desbordamiento
// Procesar valor MTU...
}
Un atacante que envíe una carga útil de gran tamaño (por ejemplo, más de 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 Framework de Metasploit, lo que le permite 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 el Framework de Metasploit:
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, el valor predeterminado es 1024):
set PAYLOAD_SIZE 2048
Ejecute el exploit:
run
[*] Dirigiéndose a Tenda AC9 en 192.168.0.1:80...
[*] Enviando carga útil de tamaño 2048...
[+] ¡Carga útil enviada con éxito!
[*] Respuesta: HTTP/1.1 200 OK...
Éxito: El servidor web del router se bloquea, lo que provoca una condición de Denegación de Servicio (DoS).
Fallo: El router sigue operativo, lo que indica que puede no ser vulnerable o que ejecuta una versión de firmware parcheada.
Este PoC es un exploit basado en Python que envía entrada de gran tamaño a /goform/AdvSetMacMtuWan, lo que desencadena un desbordamiento de búfer para bloquear el servidor web y mostrar el potencial de RCE.
Multihilo – Lanza múltiples intentos de exploit simultáneos para mayor fiabilidad.
Cargas útiles dinámicas – Genera cadenas de ataque aleatorias codificadas en base64.
Registro – Usa el módulo de registro de Python para la depuración estructurada.
Parámetros personalizables – Ajusta la IP del 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 entrada de gran tamaño a /goform/AdvSetMacMtuWan, lo que desencadena un desbordamiento de búfer para bloquear el servidor web.
python poc.py --target <router_ip> --size 2048 --threads 10
| Argumento | Descripción |
|---|---|
--target |
[+] Motor de Exploit CVE-2025-29384
[INFO] Objetivo: 192.168.0.1
[INFO] Enviando carga útil (2048 bytes)...
[WARNING] Tiempo de espera agotado del objetivo: ¡posible bloqueo!
[INFO] Secuencia del exploit completada.
Éxito: La interfaz web del router deja de responder (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 deja de responder, el ataque fue exitoso. Para un análisis adicional, revise 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 los 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 los daños causados por este código.
Este proyecto se publica bajo la Licencia MIT.
| Métrica | Valor |
|---|
| Vector de ataque | Red |
| Complejidad de 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 |
IP del router (predeterminado: 192.168.0.1) |
--size | Tamaño de la carga útil en bytes (predeterminado: 1024) |
--threads | Número de hilos concurrentes (predeterminado: 5) |