
Este repositorio contiene un script en Python diseñado para explotar CVE-2024-50379, una vulnerabilidad que permite a los atacantes cargar un shell JSP a un servidor vulnerable y ejecutar comandos arbitrarios de forma remota. Este exploit es particularmente útil cuando el directorio /uploads no está protegido o no está presente en el servidor objetivo.
Este repositorio contiene un script de Python diseñado para explotar CVE-2024-50379, una vulnerabilidad que permite a los atacantes subir un shell JSP a un servidor vulnerable y ejecutar comandos arbitrarios de forma remota. Este exploit es particularmente útil cuando el directorio /uploads no está protegido o falta en el servidor objetivo.
CVE-2024-50379 es una vulnerabilidad que afecta a servidores que manejan incorrectamente la subida de archivos, permitiendo a un atacante subir un shell JSP. Este shell puede utilizarse para ejecutar comandos arbitrarios de forma remota. El script Python proporcionado automatiza este proceso subiendo el shell a un servidor vulnerable y permitiendo la interacción con el servidor a través de una interfaz de línea de comandos.
Antes de ejecutar el script, asegúrate de tener instalado lo siguiente:
Python 3.6+ (Recomendado)
Biblioteca requests. Instálala usando pip:
pip install requests
El exploit apunta a sistemas que ejecutan Apache Tomcat o servidores similares que no protegen adecuadamente su funcionalidad de subida de archivos o tienen directorios /uploads mal configurados.
Importante: Esta herramienta solo debe usarse en entornos controlados como pruebas de penetración con permiso o con fines educativos. El uso no autorizado de esta herramienta puede ser ilegal y poco ético.
http:// a las URLs que no tienen esquema./uploads faltante: Si no se encuentra el directorio /uploads, la herramienta continúa intentando la subida del shell.Clona el repositorio en tu máquina local:
git clone https://github.com/dragonked2/CVE-2024-50379-POC.git
cd CVE-2024-50379-POC
Asegúrate de tener las bibliotecas Python necesarias instaladas:
pip install requests
Ejecuta el script con el siguiente comando:
python exploit_cve_2024_50379.py
El script te pedirá que introduzcas la URL base del servidor vulnerable (por ejemplo, http://localhost:8080). Si la URL no incluye http:// o https://, añadirá automáticamente http://.
Una vez que el shell JSP se haya subido correctamente, puedes introducir comandos de forma interactiva para ejecutar en el servidor. El script mostrará la salida.
Ejemplo de interacción:
[+] Enter the base URL (e.g., localhost:8080): http://127.0.0.1:8080
[+] Checking server accessibility...
[+] /uploads directory not found (404), but continuing with upload attempt...
[+] Attempting to upload shell (Attempt 1/3)...
[+] Shell uploaded successfully! Check the URL: http://127.0.0.1:8080/uploads/shell.jsp
[+] Enter the command to execute on the server (or 'exit' to quit): whoami
[+] Executing command: whoami
[+] Command output:
root
Escribe exit para salir de la herramienta después de completar tus interacciones.
La herramienta incluye un manejo robusto de errores para problemas comunes como:
Las operaciones fallidas se reintentarán automáticamente hasta tres veces con un retraso de 2 segundos entre intentos. Si una operación falla después de los reintentos, se mostrará un mensaje de error.
¡Las contribuciones son bienvenidas! Si encuentras errores o tienes sugerencias para mejoras, no dudes en abrir un issue o enviar un pull request.
Esta herramienta está destinada únicamente a fines educativos y de pruebas de penetración. No utilices esta herramienta en sistemas que no poseas o para los cuales no tengas permiso explícito para probar. El uso no autorizado es ilegal y puede resultar en cargos penales.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.