티스토리 뷰
[Reversing] Pe-sieve 도구 by Hasherezade
트위터를 보다가 PE-sieve 업데이트 소식을 듣고 잘 사용하면 편리하기에 해당 도구에 대해 작성한다.
PE-sieve는 실행중인 프로세스를 추출하는 것으로 악성 행위를 주입한 프로세스를 .exe 파일로 만들어주는 도구이다. 악성 행위라면 여러 인젝션이 될 수도 있으며 Process Hollowing 등을 말한다.
해당 도구 사용법은 간단하며 자세한 내용은 구글링이나 https://github.com/hasherezade/pe-sieve 참고하면 될 것 같다.
모든 악성 파일에 적용이 가능하지는 않지만 최근 자주 유포되는 이력서로 위장한 Makop 랜섬웨어인 악성파일로 설명해보겠다.
먼저 (그림 1)을 보게 되면 해당 Makpo 악성파일이다.
(그림 1)
해당 파일을 디버거에 올려보면 이와 같이 보이며, packing 되어 있다.
(필자도 명확히 packing이 되어 있는지는 바로 모르지만 대부분 패킹이 되어있기도 하고 자주보던 스텁코드가 아니면...)
(그림 2)
(그림 3)와 같이 실제 디버깅 진행 시 unpack 부분을 확인 할 수 있었으며, (그림 4)은 VirtualProtect() 함수를 이용하여 다시 확인하였다. (메모리 주소가 다른 이유..)
(그림 3)
(그림 4)
그럼 PE-sieve을 어쩔 때 사용하는지 작성해보겠다.
해당 이력서로 위장된 실행파일을 실행한 후 동적 분석을 통해 악성 행위가 다 끝났다는 걸 확인 할 수 있었다.
(그림 5)
이후 (그림 6)와 같이 PE-sieve을 이용하여 해당 프로세스 아이디를 통해 추출하였다.
(그림 6)를 보게되면 (그림 3, 4)에서 추출한 "_00210000.mem" 파일의 해시 값과 PE-sieve을 이용하여 추출한 "1d0e50.exe" 파일의 해시 값이 동일한 것을 알 수 있다.
이와 같이 unpack 된 파일을 PE-sieve을 통해 얻을 수 있다는 것을 확인할 수 있다.
(도구 사용 팁이지만.. 디버깅을 통해 unpack 하는 게 중요한거 같다.)
(그림 6)
pe-sieve을 이용하면 (그림 7)와 같이 보여지는 걸 알 수 있다. "1d0e50.exe", "400000~.exe"(메모리에서 뜬거 같다) 서로 해시는 다르지만 디버거에 올려보게 되면 같은 행위를 하는 것을 확인할 수 있었다.
정적분석으로 확인 시 IAT 부분이 다른 것도 추가로 확인할 수 있었다.
(그림 7)
(그림 8)은 디버거에 올린 그림이다.
(그림 8)
'Reversing > Reversing Tech' 카테고리의 다른 글
[Reversing] Python Reverse a String (0) | 2020.07.20 |
---|---|
[Reversing] Python zlib unpacking (0) | 2020.07.13 |
[Reversing] EAT 이용하여 라이브러리 함수 얻기 (0) | 2020.04.10 |
[Reversing] Wscript & VBA Tip (0) | 2020.04.07 |
[Reversing] ZwContinue (0) | 2020.02.05 |
- Total
- Today