
Öffentliches Repository für Verbesserungen am EXTRABACON-Exploit
Öffentliches Repository für Verbesserungen des EXTRABACON-Exploits, eine Remote-Codeausführung für Cisco ASA, geschrieben von der Equation Group (NSA) und durch die Shadow Brokers geleakt.
Es gibt verbesserten Shellcode, ein LINA-Offset-Finder-Skript, ein Metasploit-Modul und extrabacon-2.0.
Wir werden in naher Zukunft Patches für die meisten Versionen von 8.x und 9.x hinzufügen, nachdem wir alle Versionen auf echter Hardware getestet haben.
Dies verwendet verbesserten Shellcode, hat weniger Stufen als die Version der Equation Group, was sie zuverlässiger macht. Dies reduziert das SNMP-Payload-Paket um etwa 150 Bytes. Außerdem unterstützt die geleakte Version nur 8.x, wir haben es auf 9.x-Versionen zum Laufen gebracht.
Mit dem Lina-Offset-Finder-Skript sollte es trivial sein, alle anfälligen x86-Versionen zu unterstützen. Wir arbeiten daran, genau das zu tun. HINWEIS: x64 (9.6+?) führt DEP und ASLR ein. Der Offset-Finder und das generische Payload werden nicht funktionieren. Es sollte aber trotzdem möglich sein, diese Versionen leicht zu dos.
Eröffnen Sie ein Issue, wenn Sie möchten, dass wir eine bestimmte Version unterstützen. Es wird dann an die vorderste Stelle der Warteschlange gesetzt.
8.x
****** ********9.x
******** Unterstützung für neue Versionen, die nicht Teil des ursprünglichen Shadow-Brokers-Leaks sind
** Wir können derzeit nicht zwischen normalen und NPE-Versionen anhand der SNMP-Strings unterscheiden. Wir haben die NPE-Offsets auskommentiert, da NPE sehr selten vorkommt (es wird für den Export in Länder mit schlechter Verschlüsselung verwendet), aber in Zukunft möchten wir diese Versionen einbeziehen. Vielleicht als Bool-Option?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
Unser erster Pull-Request wurde in den Metasploit-Master-Branch gemerged. Wir werden weiterhin weitere Offsets beitragen, die hier möglicherweise schneller verfügbar sind, abhängig von der Latenz zukünftiger Pull-Requests.
Wenn Sie ASA-Versionen testen können, erwägen Sie, dieses Projekt zu forken und Payloads zu generieren. Wir könnten die Payloads massenhaft generieren, aber wir möchten testen, um sicherzustellen, dass jedes Payload sauber beendet wird.
Sie können neue Payloads zum Ordner extrabacon-2.0/improved/ hinzufügen, nachdem Sie mit lina-offsets.py die Datei generiert haben. Module werden shellcode_verstring.py genannt, wobei verstring der von der ASA zurückgegebene Versionsstring ist, bei dem Punkte . durch Unterstriche _ ersetzt werden.
Reichen Sie auch Pull-Requests ein, die unnötiges Python aus dem ExtraBacon 2.0-Code entfernen.
python2 ./lina-offsets.py asa_lina_XXX.elf
Generiert automatisch die notwendigen Offsets, um den Exploit auf andere ASA-Versionen zu portieren.
Im Moment dauert es länger, eine Version der ASA-Firmware zu laden und zu testen, als Offsets für eine bestimmte Version zu generieren.
Das Einzige, was das Skript nicht berechnet, ist FIX_EBP, das normalerweise 0x48 (72) oder 0x58 (88) ist. Es scheint, dass 8.4(1) und höher 0x48 verwenden.
Sie können Lina wie folgt extrahieren:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX