
Repositório público para melhorias no exploit EXTRABACON
Repositório público para melhorias no exploit EXTRABACON, uma execução remota de código para Cisco ASA escrita pelo Equation Group (NSA) e vazada pelo Shadow Brokers.
Há uma shellcode melhorada, um script de localizador de offsets LINA, um módulo Metasploit e o extrabacon-2.0.
Estamos adicionando patches para a maioria das versões 8.x e 9.x em breve, após testarmos todas as versões em hardware real.
Isso utiliza shellcode aprimorada, tem menos estágios que a versão do Equation Group, tornando-a mais confiável. Isso reduz o pacote do payload SNMP em cerca de 150 bytes. Além disso, a versão vazada só suporta 8.x; nós a fizemos funcionar em versões 9.x.
Usando o script de localizador de offsets Lina, deve ser trivial suportar todas as versões x86 vulneráveis. Estamos trabalhando nisso. NOTA: x64 (9.6+?) introduz DEP e ASLR. O localizador de offsets e o payload genérico não funcionarão. No entanto, ainda é possível derrubar (DoS) essas versões facilmente.
Abra uma issue se desejar que suportemos uma versão específica. Isso a moverá para o início da fila.
8.x
****** ********9.x
******** suporte a nova versão não incluso no vazamento original do Shadow Brokers
** Atualmente não conseguimos distinguir entre versões normais e NPE a partir das strings SNMP. Comentamos os offsets NPE, pois o NPE é muito raro (é para exportação para lugares onde a criptografia é ruim), mas no futuro gostaríamos de incorporar essas versões. Talvez como uma opção booleana?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
Nosso pull request inicial foi mesclado na branch master do Metasploit. Continuaremos contribuindo com mais offsets, que podem estar disponíveis aqui mais cedo, dependendo da latência de futuros pull requests.
Se você puder testar versões do ASA, considere fazer um fork deste projeto e gerar payloads. Poderíamos gerar payloads em massa, mas queremos testar para garantir que cada payload saia limpo.
Você pode adicionar novos payloads à pasta extrabacon-2.0/improved/ após usar lina-offsets.py para gerar o arquivo. Os módulos têm o nome shellcode_verstring.py, onde verstring é a string de versão retornada pelo ASA, com pontos . substituídos por sublinhados _
Além disso, envie pull requests removendo qualquer Python desnecessário do código ExtraBacon 2.0.
python2 ./lina-offsets.py asa_lina_XXX.elf
Irá gerar automaticamente os offsets necessários para portar o exploit para outras versões do ASA.
No momento, leva mais tempo para carregar uma versão do firmware ASA e testá-la do que para gerar offsets para uma versão específica.
A única coisa que o script não calcula é FIX_EBP, que geralmente é 0x48 (72) ou 0x58 (88). Parece que 8.4(1) e superiores usam 0x48.
Você pode extrair o Lina assim:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX