
Repository pubblico per miglioramenti all'exploit EXTRABACON
Repository pubblico per i miglioramenti all'exploit EXTRABACON, un'esecuzione di codice remoto per Cisco ASA scritto dal gruppo Equation (NSA) e divulgato da Shadow Brokers.
C'è uno shellcode migliorato, uno script per il rilevamento degli offset LINA, un modulo Metasploit ed extrabacon-2.0.
Stiamo aggiungendo patch per la maggior parte delle versioni 8.x e 9.x nel prossimo futuro, dopo aver testato tutte le versioni su hardware reale.
Questo utilizza uno shellcode migliorato, ha meno stadi rispetto alla versione del gruppo Equation, rendendolo più affidabile. Ciò riduce il pacchetto payload SNMP di circa 150 byte. Inoltre, la versione divulgata supporta solo 8.x, noi lo abbiamo funzionante su versioni 9.x.
Usando lo script lina-offset finder, dovrebbe essere banale supportare tutte le versioni x86 vulnerabili. Stiamo lavorando proprio a questo. NOTA: x64 (9.6+?) introduce DEP e ASLR. Il rilevatore di offset e il payload generico non funzioneranno. Dovrebbe comunque essere possibile fare facilmente il dos di queste versioni.
Apri una issue se desideri che supportiamo una versione specifica. Verrà spostata in cima alla lista.
8.x
****** ********9.x
******** supporto per nuove versioni non presente nella fuga originale di Shadow Brokers
** Al momento non riusciamo a distinguere tra versioni normali e NPE dalle stringhe SNMP. Abbiamo commentato gli offset NPE, poiché NPE è molto raro (è usato per l'esportazione in luoghi dove la crittografia è scadente), ma in futuro vorremmo includere queste versioni. Forse come opzione bool?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
La nostra richiesta pull iniziale è stata integrata nel ramo master di Metasploit. Continueremo comunque a contribuire con altri offset, che potrebbero essere disponibili qui prima, a seconda della latenza delle future richieste pull.
Se puoi testare versioni ASA, considera di fare il fork di questo progetto e generare payload. Potremmo generare i payload in massa, ma vogliamo testare per assicurarci che ogni payload esca correttamente.
Puoi aggiungere nuovi payload nella cartella extrabacon-2.0/improved/ dopo aver usato lina-offsets.py per generare il file. I moduli sono chiamati shellcode_verstring.py, dove verstring è la stringa di versione restituita dall'ASA, con i punti . sostituiti da trattini bassi _
Invia anche richieste pull che rimuovono Python non necessario dal codice ExtraBacon 2.0.
python2 ./lina-offsets.py asa_lina_XXX.elf
Genererà automaticamente gli offset necessari per portare l'exploit ad altre versioni di ASA.
Al momento, ci vuole più tempo per caricare una versione del firmware ASA e testarla, che per generare offset per una versione specifica.
L'unica cosa che lo script non calcola è FIX_EBP, che di solito è 0x48 (72) o 0x58 (88). Sembra che 8.4(1) e successive usino 0x48.
Puoi estrarre Lina in questo modo:
binwalk -e asaXXX-k8.bin
cd _asaXXX-estratto
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX