
EXTRABACON 익스플로잇 개선을 위한 공개 저장소
Equation Group(NSA)가 개발하고 Shadow Brokers가 유출한 Cisco ASA용 원격 코드 실행 익스플로잇 EXTRABACON의 개선을 위한 공개 저장소입니다.
개선된 셸코드, LINA 오프셋 파인더 스크립트, Metasploit 모듈, extrabacon-2.0이 포함되어 있습니다.
모든 버전을 실제 하드웨어에서 테스트한 후, 가까운 시일 내에 대부분의 8.x 및 9.x 버전에 대한 패치를 추가할 예정입니다.
이는 개선된 셸코드를 사용하며, Equation Group 버전보다 스테이지 수가 적어 더 안정적입니다. SNMP 페이로드 패킷이 약 150바이트 더 작아졌습니다. 또한, 유출된 버전은 8.x만 지원하지만, 우리는 9.x 버전에서도 작동하도록 만들었습니다.
Lina 오프셋 파인더 스크립트를 사용하면 취약한 모든 x86 버전을 지원하는 것은 간단할 것입니다. 이를 위해 작업 중입니다. 참고: x64(9.6+?)는 DEP와 ASLR을 도입합니다. 오프셋 파인더와 일반 페이로드는 작동하지 않습니다. 하지만 이러한 버전을 쉽게 DoS시키는 것은 여전히 가능할 것입니다.
특정 버전을 지원해 주길 원한다면 이슈를 열어 주세요. 우선 순위가 높아집니다.
8.x
****** ********9.x
******** 새 버전 지원은 원래 Shadow Brokers 유출본에 포함되지 않음
** 현재 SNMP 문자열로 일반 버전과 NPE 버전을 구분할 수 없습니다. NPE는 암호화가 취약한 지역으로 수출하기 위한 것으로 매우 드물기 때문에 NPE 오프셋을 주석 처리했습니다. 하지만 향후에는 이러한 버전을 통합하고 싶습니다. 아마 bool 옵션으로 추가할까요?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
초기 풀 리퀘스트는 Metasploit 마스터 브랜치에 병합되었습니다. 앞으로도 더 많은 오프셋을 기여할 예정이며, 이는 향후 풀 리퀘스트의 지연 시간에 따라 여기에 더 빨리 제공될 수 있습니다.
ASA 버전을 테스트할 수 있다면, 이 프로젝트를 포크하고 페이로드를 생성해 보세요. 페이로드를 대량 생성할 수도 있지만, 모든 페이로드가 깔끔하게 종료되는지 확인하기 위해 테스트하려고 합니다.
lina-offsets.py를 사용하여 파일을 생성한 후 새 페이로드를 extrabacon-2.0/improved/ 폴더에 추가할 수 있습니다. 모듈은 shellcode_verstring.py 형식으로 이름이 지정되며, 여기서 verstring은 ASA가 반환하는 버전 문자열(마침표 .는 밑줄 _로 대체)입니다.
또한 ExtraBacon 2.0 코드에서 불필요한 Python을 제거하는 풀 리퀘스트를 제출해 주세요.
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