fortitool: Uma ferramenta para descriptografar e analisar o firmware FortiOS

Ferramentas2026-08-27, 08:04
fortitool: Uma ferramenta para descriptografar e analisar o firmware FortiOS
Ali Mosajjal publicou fortitool, uma ferramenta Go de código aberto para descriptografar e descompactar o firmware FortiOS da Fortinet. Ela combina as capacidades de várias utilidades existentes e não requer dependências de tempo de execução, como Python, OpenSSL ou binwalk. Um único comando detecta automaticamente o formato do firmware e processa toda a cadeia — desde a criptografia da camada externa de arquivos .out até a extração do sistema de arquivos: fortitool decrypt -o outdir image.out Não é necessário especificar a versão do FortiOS, modelo do dispositivo ou arquitetura.
• Descriptografia de firmware fortitool suporta os esquemas de criptografia FortiOS conhecidos pelo autor, incluindo XOR, ChaCha20 + RSA + AES-CTR, XOR + RSA + FORT-RC4 e RC4 modificado. Também suporta sistemas de arquivos gzip/tar/xz, ext2/3/4 e imagens de disco qcow2. O material de chave é recuperado diretamente da imagem do kernel: a semente de 32 bytes e a chave pública RSA ofuscada são localizadas usando o prefixo DER ASN.1 conhecido da chave reconstruída, enquanto o algoritmo de criptografia do rootfs é identificado tentando a descriptografia e verificando os bytes mágicos do gzip. Como resultado, a análise manual no Ghidra não é necessária para a maioria das etapas.
• Descriptografia de segredos FortiOS O comando fortitool config decrypt descriptografa valores ENC <base64> de backups de configuração. Para versões anteriores à 7.4, ele usa a chave estática AES-128 associada ao CVE-2019-6693. Contrariamente à crença comum, o autor confirmou que ela não foi substituída no FortiOS 6.2 e continuou funcionando pelo menos até a versão 7.2.3. A partir do FortiOS 7.4 build 2731, uma nova chave estática AES-256-CBC é usada; o autor a recuperou por engenharia reversa do /bin/init e a verificou contra backups reais. A conclusão prática: os backups de configuração do FortiOS devem ser tratados como quase texto puro, a menos que private-data-encryption com uma frase secreta esteja habilitado.
O suporte varia entre gerações de firmware: ARM 7.4.x e vários outros formatos foram validados contra firmware real, enquanto alguns caminhos 7.6.x, 8.0, x86_64 e VM/qcow2 são atualmente baseados em pesquisas anteriores e testes sintéticos e ainda requerem validação contra imagens reais.
Vulnerabilidades
7.8
CVE-2019-6693
Fornecedor
Fortinet
Produto
Fortios
Fortitool