
정적 분석을 통해 laZzzy로 래핑된 PE 바이너리에서 AES-CBC/XOR로 난독화된 셸코드를 시그니처 매칭과 RIP-상대 주소 해석을 통해 실행이나 에뮬레이션 없이 추출하고 복호화합니다.
동적 실행, 디버깅 또는 에뮬레이션 없이 laZzzy로 래핑된 PE 바이너리에서 암호화된 셸코드를 추출하기 위한 정적 분석 도구입니다.
laZzzy Dump는 AES-CBC 암호화와 XOR 난독화를 결합하여 사용하는 오픈소스 셸코드 로더인 laZzzy로 컴파일된 바이너리에서 셸코드를 정적으로 추출하여 분석을 지원하는 악성코드 분석 도구입니다.
다단계 악성코드 체인과 관련된 사고 대응 조사 중에 laZzzy 페이로드를 수동으로 복호화하는 것은 지루하고 시간이 많이 소요됩니다. 이 도구는 다음을 통해 프로세스를 자동화합니다:
laZzzy는 다음을 포함하는 완전한 Windows PE 실행 파일을 생성합니다:
laZzzy에 의해 컴파일된 AESDecrypt 함수는 인식 가능한 명령어 시퀀스를 포함합니다:
이 도구는 바이너리에서 이 패턴을 스캔하고 디스어셈블러 없이 함수를 찾습니다.
함수가 발견되면, 도구는 LEA 및 MOV 명령어에서 피연산자를 추출하고 RIP 상대 주소를 해석하여 다음을 복구합니다:
추출된 자재는 다음을 사용하여 복호화됩니다:
결과는 추가 분석을 위한 원시 셸코드입니다.
pip install pefile pycryptodome
./laZzzy_dump.py -n <path_to_lazzy_binary>
./laZzzy_dump.py -n malware.exe
도구는 다음을 출력합니다:
<binary_path>_dumped에 저장[+] Processing malware.exe
[+] Found AESDecrypt function: Virtual Address:0x140026db0 File Offset:0x2db0
[+] Key:
[+] 0002f010 48 c2 f4 a1 12 34 56 78 9a bc de f0 11 22 33 44 |H..q...x......"3D|
[+] IV:
[+] 0002f020 55 66 77 88 99 aa bb cc dd ee ff 00 11 22 33 44 |Ufgw............"3D|
[+] XOR Key:
[+] 0002f030 aa bb cc dd ee ff 00 11 22 33 44 55 66 77 88 99 |......"3DUfw....|
[+] Writing shellcode to malware.exe_dumped
이 도구는 다양한 빌드 구성과 페이로드 유형을 가진 여러 독립적으로 생성된 laZzzy 샘플에 대해 검증되었습니다. 시그니처 패턴은 이러한 샘플에서 오탐 없이 AESDecrypt 함수를 성공적으로 찾아냅니다.
이 도구는 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 소유하거나 테스트에 대한 명시적 허가를 받은 시스템에서만 사용하십시오.