
Frida.re 기반 RunPE (및 MapViewOfSection) 추출 도구
FridaExtract는 Frida.re 기반의 RunPE 추출 도구입니다. RunPE 유형의 인젝션은 악성코드가 다른 프로세스 내에 코드를 숨기는 데 사용되는 일반적인 기술입니다. 또한 많은 패커의 최종 단계이기도 합니다 : )
참고: Frida는 이제 여기에 설명된 "MapViewOfSection" 기술을 사용하여 인젝션된 PE 파일의 추출도 지원합니다.
FridaExtract를 사용하면 RunPE 방식으로 인젝션된 PE 파일을 자동으로 추출하고 재구성할 수 있으며, 이러한 패커들을 우회할 수 있습니다!
RunPE 인젝션된 코드를 추출하는 훌륭한 도구들이 이미 많이 있습니다. FridaExtract는 이들보다 더 낫지는 않습니다. 하지만 설치하기 쉽고, 빌드하기 쉽고(ㅋㅋ), 실행하기 쉽고, 해킹하기 쉽습니다. 컴파일러도, 빌드 환경도 필요 없으며, 간단히 "pip install"만 하면 바로 사용할 수 있습니다.
코드는 여러분이 자신만의 Frida 프로젝트를 구축할 수 있는 템플릿 역할을 하도록 특별히 주석 처리되고 구성되어 있습니다. 이것은 Windows 환경에서 후크를 설정하는 방법을 보여주는 개념 증명에 가깝습니다. 원하는 대로 복사-붙여넣기-해킹하세요!
경고: FridaExtract는 Windows 32비트에서만 작동합니다. 현재 wow64에 알 수 없는 버그가 있으므로 Windows7 32비트 또는 Windows Server 2008 32비트를 사용하는 것을 권장합니다.
pip install frida를 입력하여 Frida를 설치하세요.FridaExtract는 RunPE 방식으로 인젝션된 PE 파일만 추출할 수 있으므로 상당히 제한적입니다. 스냅샷-실행-되돌리기가 쉬운 VM을 사용한다면 모든 악성코드 샘플에 대해 FridaExtract를 맹목적으로 시도해보고 결과를 볼 수 있지만, 권장하지는 않습니다. 대신 FridaExtract는 샌드박스와 함께 사용하기 좋습니다 (우리는 malwr를 사랑합니다). 먼저 샌드박스에서 샘플을 실행하고 API 호출을 확인하세요.
RunPE 기술의 경우 다음 API 호출이 보이면 FridaExtract가 적합한 도구일 수 있습니다:
MapViewOfSection 기술의 경우 다음 API 호출이 보이면 FridaExtract가 적합한 도구일 수 있습니다:
기본적으로 FridaExtract는 인젝션된 PE 파일을 자동으로 추출하고 재구성한 후 dump.bin이라는 파일로 덤프합니다.
python FridaExtract.py bad.exe
--out_file 명령어를 사용하여 덤프 파일을 지정할 수 있습니다.
python FridaExtract.py bad.exe --out_file extracted.exe
추출하려는 패킹된 PE 파일에 인자가 필요한 경우 --args 명령어를 사용하여 전달할 수 있습니다. 여러 인자는 쉼표로 구분하여 전달할 수 있습니다.
python FridaExtract.py bad.exe --args password
FridaExtract는 덤프된 메모리를 자동으로 PE 파일로 재구성하려고 시도합니다. 이것이 작동하지 않고 하위 프로세스에 기록된 모든 메모리의 원시 덤프를 원하는 경우 --raw 명령어를 사용할 수 있습니다. 재구성된 PE를 덤프 파일에 쓰는 대신 원시 메모리 세그먼트가 주소 순서대로 기록됩니다.
python FridaExtract.py bad.exe --raw
FridaExtract는 다음 API에 후크를 사용하여 인젝션된 PE 파일을 추출합니다:
이러한 API를 추적하고 결과를 출력하려면 -v 또는 --verbose 명령어를 사용하세요.
python FridaExtract.py bad.exe --verbose
Frida는 사용자 영역 후크를 사용하므로 쉽게 우회될 수 있습니다. 더 강력한 DBI 도구가 필요하다면 PIN을 사용해 보세요! PIN을 사용하여 RunPE를 추출하는 훌륭한 예제가 여기에 제공되어 있습니다.
Frida는 분석 중인 프로세스에 자바스크립트 런타임을 주입하므로 은밀하지 않습니다. 악성코드가 Frida를 탐지할 수 있는 방법에 대한 개요를 보려면 이 글을 확인하세요.