
Публичный репозиторий для улучшений эксплойта EXTRABACON
Публичный репозиторий для улучшений эксплойта EXTRABACON — удалённого выполнения кода для Cisco ASA, написанного группой Equation Group (NSA) и опубликованного Shadow Brokers.
Здесь представлены улучшенный шелл-код, скрипт для поиска смещений LINA, модуль Metasploit и extrabacon-2.0.
В ближайшее время мы добавим патчи для большинства версий 8.x и 9.x после тестирования всех версий на реальном оборудовании.
Используется улучшенный шелл-код, который содержит меньше этапов, чем версия Equation Group, что делает его более надёжным. Это уменьшает полезную нагрузку SNMP-пакета примерно на 150 байт. Кроме того, в утекшей версии поддерживаются только версии 8.x, мы же добились работы на версиях 9.x.
С помощью скрипта поиска смещений Lina должно быть тривиально поддерживать все уязвимые x86-версии. Мы как раз работаем над этим. ПРИМЕЧАНИЕ: x64 (9.6+?) вводит DEP и ASLR. Поиск смещений и универсальный шелл-код работать не будут. Тем не менее, должно быть по-прежнему возможно легко завалить эти версии.
Откройте issue, если хотите, чтобы мы добавили поддержку конкретной версии. Она будет обработана в первую очередь.
8.x
****** ********9.x
******** поддержка новых версий, отсутствовавшая в оригинальной утечке Shadow Brokers
** В настоящее время мы не можем отличить обычные версии от NPE по SNMP-строкам. Мы закомментировали смещения NPE, так как NPE встречается очень редко (используется для экспорта в места с плохим шифрованием), но в будущем хотели бы добавить эти версии. Возможно, в виде опции bool?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
Наш первоначальный pull request был принят в master-ветку Metasploit. Мы продолжим добавлять новые смещения, которые могут появиться здесь раньше, в зависимости от задержки будущих pull request'ов.
Если вы можете тестировать версии ASA, рассмотрите возможность форка этого проекта и генерации шелл-кодов. Мы могли бы массово генерировать их, но хотим убедиться, что каждый шелл-код завершается корректно.
Вы можете добавлять новые полезные нагрузки в папку extrabacon-2.0/improved/ после использования lina-offsets.py для генерации файла. Модули называются shellcode_verstring.py, где verstring — строка версии, возвращаемая ASA, с точками . заменёнными на подчёркивания _
Также присылайте pull request'ы по удалению избыточного кода Python из ExtraBacon 2.0.
python2 ./lina-offsets.py asa_lina_XXX.elf
Автоматически генерирует необходимые смещения для портирования эксплойта на другие версии ASA.
Сейчас загрузка версии прошивки ASA и её тестирование занимают больше времени, чем генерация смещений для конкретной версии.
Единственное, что скрипт не вычисляет — это FIX_EBP, который обычно равен 0x48 (72) или 0x58 (88). Похоже, что версии 8.4(1) и новее используют 0x48.
Извлечь Lina можно так:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX