
Ein umfassendes All-in-One-Python-basiertes Proof-of-Concept-Skript zum Erkennen und Ausnutzen einer kritischen Schwachstelle zur Authentifizierungsumgehung (CVE-2024-55591) in bestimmten Fortinet-Geräten.
Ein umfassendes All-in-One Python-basiertes Proof-of-Concept-Skript zur Erkennung und Ausnutzung einer kritischen Authentifizierungsumgehung (CVE-2024-55591) in bestimmten Fortinet-Geräten. Dieses Skript:
nmapCVE-2024-55591 ist eine kritische Authentifizierungsumgehung in bestimmten Fortinet-Produkten (FortiOS und FortiProxy). Durch die Ausnutzung eines Fehlers in der WebSocket/Telnet-Verwaltungsschnittstelle kann ein Angreifer ohne gültige Anmeldedaten privilegierten CLI-Zugriff erlangen.
Laut der Fortinet PSIRT-Mitteilung (FG-IR-24-535) sind folgende Versionen bekanntermaßen betroffen:
git clone https://github.com/exfil0/CVE-2024-55591-POC.git
cd CVE-2024-55591-POC
python3 attack.py
Beim Ausführen überprüft das Skript automatisch auf fehlende Python-Abhängigkeiten (requests, urllib3) und versucht, diese zu installieren.
Sie werden aufgefordert:
Nach der Bestätigung testet das Skript die Konnektivität, prüft die Schwachstelle, führt ein WebSocket-Upgrade durch und versucht die Authentifizierungsumgehung.
Beim Start überprüft dieses Skript auf requests und urllib3. Falls diese fehlen, versucht es, sie über pip zu installieren.
Wenn Sie möchten, führt das Skript nmap -sS -p- --min-rate 500 <host> aus, um offene TCP-Ports zu entdecken. Anschließend wird entweder:
Wenn mehrere Ports als offen erkannt werden, können Sie das Skript anweisen, alle zu testen. Dies ist nützlich, wenn Fortinet-Dienste auf nicht standardmäßigen Ports lauschen.
Wenn die Ausnutzung erfolgreich ist, können Sie optional zusätzliche Befehle in derselben Telnet-Sitzung ausführen, wie zum Beispiel:
diag sys topdiag debug crashlog readexecute shellSie können diese Post-Exploitation-Befehle im Skript ändern, um erweiterte Daten zu sammeln.
Das Skript versucht, die Geräteversion aus der Ausgabe von get system status oder get system info zu extrahieren. Wenn sie einem bekannten anfälligen Bereich entspricht, werden Sie benachrichtigt.
192.168.1.50j (Ja) zum Entdecken offener Portsj, wenn Sie über HTTPS/443 verbindenget system statusj oder nWenn Nmap mehrere offene Ports findet, können Sie wählen, ob Sie alle Ports automatisch testen oder einen bestimmten auswählen.
/login?redir=/ng die Fortinet-Verwaltungsoberfläche zurückgibtservice-worker.js?local_access_token=ScaryBYte den Teilstring api/v2/static enthältget system status ausführenWenn der Post-Exploit-Modus aktiviert ist, sendet das Skript zusätzliche Debug- oder Systembefehle. Die Ausgabe wird erfasst und in Ihrer Konsole angezeigt.
Dieses Proof-of-Concept-Skript wird ausschließlich zu Bildungs- und Testzwecken bereitgestellt. Die unbefugte Ausnutzung von Systemen ohne ausdrückliche Genehmigung ist illegal. Stellen Sie sicher, dass Sie die entsprechenden Genehmigungen haben, bevor Sie Systeme scannen oder testen. Beachten Sie die Fortinet-Mitteilung (FG-IR-24-535) für Patch-Informationen.