
Exploit PoC para CVE-2012-2982 (Webmin RCE), con fines educativos.
Este repositorio contiene un exploit de Prueba de Concepto (PoC) para CVE-2012-2982, una vulnerabilidad de ejecución remota de comandos autenticada que afecta a las versiones 1.590 y anteriores de Webmin. La vulnerabilidad reside en el endpoint /file/show.cgi, donde un atacante puede ejecutar comandos arbitrarios inyectando caracteres especiales (como el símbolo de tubería |) en una solicitud manipulada.
Este PoC está destinado únicamente a fines educativos y de investigación en seguridad. La explotación no autorizada de sistemas sin permiso es ilegal y poco ética.
Webmin es una popular herramienta de administración de sistemas basada en web para gestionar sistemas Unix. En las versiones 1.590 y anteriores, existe una falla de seguridad en el módulo Administrador de archivos. El problema surge de una sanitización incorrecta de la entrada del usuario al interactuar con el script /file/show.cgi. Al inyectar metacaracteres de shell (|), un usuario autenticado puede ejecutar comandos arbitrarios en el sistema objetivo con los privilegios del proceso de Webmin (a menudo root).
Versiones afectadas: Webmin 1.590 y anteriores
Requisitos previos del ataque:
El atacante debe tener credenciales válidas de Webmin (una cuenta de usuario con pocos privilegios es suficiente).
El módulo Administrador de archivos debe estar accesible.
La explotación permite:
Ejecución remota de código (RCE)
Escalada de privilegios (si Webmin se ejecuta como root)
Compromiso del sistema
El endpoint vulnerable es:
http://<target_ip>:10000/file/show.cgi
El ataque aprovecha una validación de entrada incorrecta al pasar una ruta de archivo, lo que permite la ejecución de comandos de shell inyectados mediante |.
Este repositorio contiene un script de exploit en Python que automatiza:
Autenticación: Inicia sesión en Webmin usando las credenciales proporcionadas.
Extracción del ID de sesión: Recupera el ID de sesión necesario para las solicitudes autenticadas.
Ejecución del payload: Envía una solicitud maliciosa para ejecutar comandos arbitrarios.
Ruta de ejecución aleatoria: Utiliza un nombre de archivo generado aleatoriamente para evadir la detección.
Soporte de reverse shell: Genera un payload de reverse shell para conectarse de vuelta a la máquina del atacante.
Manejo de errores: Gestiona fallos de solicitud con elegancia.
Diseño modular: Fácil de modificar para probar diferentes payloads.
Python 3
Biblioteca requests (pip install requests)
Una instancia de Webmin (versión vulnerable) para pruebas (use un entorno de laboratorio controlado)
Uso:
python3 exploit.py <target_IP>
Ejemplo:
python3 exploit.py 192.168.1.100
IP del atacante (**lhost**): 10.21.48.124
Puerto del atacante (**lport**): 1937
Credenciales de Webmin objetivo:
Usuario: user1
Contraseña: 1user
Si tiene éxito, el exploit establece una conexión de reverse shell a la máquina del atacante.
Antes de ejecutar el exploit, configure un listener de Netcat en su máquina atacante para recibir la reverse shell:
nc -lvnp 1937
Una vez que el exploit se ejecute con éxito, debería recibir una conexión de shell desde la máquina objetivo.
Este PoC es estrictamente para investigación de seguridad y fines educativos. Solo debe usarse en entornos de pruebas de penetración autorizados. El uso no autorizado contra sistemas de producción es una violación de las leyes de ciberseguridad y puede acarrear consecuencias legales.
El autor no es responsable del mal uso de este exploit. Use este PoC solo para pruebas de seguridad legales y actividades de hacking ético.