
Um script de Prova de Conceito abrangente e tudo-em-um baseado em Python para descobrir e explorar uma vulnerabilidade crítica de bypass de autenticação (CVE-2024-55591) em certos dispositivos Fortinet.
Um script de Prova de Conceito tudo-em-um abrangente baseado em Python para descobrir e explorar uma vulnerabilidade crítica de bypass de autenticação (CVE-2024-55591) em determinados dispositivos Fortinet. Este script:
nmapO CVE-2024-55591 é um bypass crítico de autenticação em determinados produtos Fortinet (FortiOS e FortiProxy). Ao explorar uma falha na interface de gerenciamento WebSocket/Telnet, um atacante pode obter acesso CLI privilegiado sem credenciais válidas.
De acordo com o Comunicado do Fortinet PSIRT (FG-IR-24-535), as seguintes versões são conhecidas como afetadas:
git clone https://github.com/exfil0/CVE-2024-55591-POC.git
cd CVE-2024-55591-POC
python3 attack.py
Quando executado, o script automaticamente verifica dependências Python ausentes (requests, urllib3) e tenta instalá-las.
Você será solicitado a fornecer:
Após confirmar, o script testa a conectividade, verifica a vulnerabilidade, atualiza a conexão para WebSocket e tenta o bypass de autenticação.
Na inicialização, este script verifica requests e urllib3. Se ausentes, tenta instalá-los via pip.
Se você escolher, o script executa nmap -sS -p- --min-rate 500 <host> para descobrir portas TCP abertas e então:
Se várias portas forem descobertas abertas, você pode instruir o script a testá-las todas. Isso é útil se os serviços Fortinet estiverem ouvindo em portas não padrão.
Se a exploração for bem-sucedida, você pode opcionalmente executar comandos adicionais na mesma sessão Telnet, como:
diag sys topdiag debug crashlog readexecute shellVocê pode modificar esses comandos pós-exploração no script para coletar dados mais avançados.
O script tenta analisar a versão do dispositivo a partir da saída de get system status ou get system info. Se corresponder a uma faixa vulnerável conhecida, ele notifica você.
192.168.1.50y (Sim) para descobrir portas abertass se conectar via HTTPS/443get system statusy ou nSe o Nmap encontrar várias portas abertas, você pode optar por testar todas as portas automaticamente ou escolher uma específica.
/login?redir=/ng retorna a interface de gerenciamento do Fortinetservice-worker.js?local_access_token=ScaryBYte contém a substring api/v2/staticget system statusSe o modo pós-exploração estiver ativado, o script envia comandos adicionais de depuração ou sistema. A saída é coletada e exibida no seu console.
Este script de Prova de Conceito é fornecido apenas para fins educacionais e de teste. A exploração não autorizada de sistemas sem permissão explícita é ilegal. Sempre garanta que você tenha as aprovações adequadas antes de escanear ou testar qualquer sistema, e consulte o Comunicado da Fortinet (FG-IR-24-535) para informações sobre patches.