<악성코드 분석공부>/<RealSample>

중국발 문서형 이력서 악성코드 - 2. 유니버셜 쉘코드편 (Universial Shellcode)

gosoeungduk 2022. 1. 31. 01:05
반응형

#악성코드분석 #중국 #문서형 악성코드


MD5 HASH Dropper: 59e08d42ce495f290c4dfd7be9614f786cdfed3ebdd7d6e68accbb630c051083
Core Malware: fa1f9f5deac24c735baa77eb5b76b9057b3fea6c2bc7f2bf7f16420a8b48f00c
주요 사용기법 Document Template Injection, Universial Shellcode
Drop URL http://xiaodi8.com/1.dotm?raw=true (현재폐쇄)

 

지난 글 에 이어서 쓴다.

 

중국발 문서형 이력서 악성코드 - 1. 드로퍼&매크로편

#악성코드분석 #중국 #문서형 악성코드 MD5 HASH Dropper : 59e08d42ce495f290c4dfd7be9614f786cdfed3ebdd7d6e68accbb630c051083 Core Malware : fa1f9f5deac24c735baa77eb5b76b9057b3fea6c2bc7f2bf7f16420a8b4..

goseungduk.tistory.com

쉘코드는 우선 Cyberchef 툴로 바이너리로 변환했다.

쉘코드에는 우선 IAT(Import Address Table) 가 들어있지 않다.

일단은 해커의 목적대로면 악의적인 행위를 하기 위해 윈도우의 라이브러리 함수들을 필시 사용해야했을텐데, 어떻게 함수들을 가져오는지에 대한 해답이 바로 윈도우의 PEB(Process Environment Block) 에 있다. 그리고 그 PEB 를 이용하는 것이 Universial Shellcode 라고 한다. 상세 구현된 로직들은 쉘코드마다 약간씩 다르다.

우선 레지스터중에 FS 레지스터에는 기본적으로 TEB(Thread Environment Block) 의 주소가 들어있는데, FS + 0x30 부분에는 앞서 말한 PEB 주소가 들어있다.

쉘코드의 맨 처음 부분이다. EDX 는 어차피 0 이 되어 FS 레지스터의 +0x30 부분을 참조하게 된다.

그리고 PEB 구조체에서 InMemoryOrderList 를 참조하여 현재 실행중인 모듈 자기 자신부터, 여러 DLL 까지 탐색하며, 각 모듈들의 FullDllName 정보를 ECX 레지스터에 넣는다.

그리고 이거는 지금 분석하는 쉘코드의 특징인듯한데, 가져온 FullDllName 을 한 글자씩 순회하면서 ror 0x0D 연산 후, 그 결과를 전부더한다. 그리고 쉘코드 어딘가에 저장되어있는 특정 헥스 값과 비교하여 값이 알맞으면 그제서야 해당 DLL 을 참조하여 원하는 함수에 접근한다.

뭐 대강 그림(?) 으로 표현하면 이런 느낌인 셈이다. 이는 쉘코드에 특정 문자열을 저장해놓고, strcmp 같은 함수를 이용해 일일히 비교하기 어려운 환경이거니와 정적분석을 통한 추적을 피하기위한 일종의 해결책으로 보여진다.

그리고 원하는 DLL 을 찾았으면, InInitializationOrderLinks 구조체에 접근해서 해당 DLL 의 EAT(Export Address Table) 를 참조해서 원하는 함수를 찾기 시작한다.

InInitializationOrderLinks 에 있는 주소는 사진을 예시로 치면 KERNEL32.DLL 파일의 맨처음 헤더 MZ 부분을 가리키는 주소로, 다시 말해 KERNEL32.DLL 의 base 주소이다.

그리고 PE 헤더들에서 필요한 부분들만 참조하여 EAT 주소를 가져온다.

그리고 EAT 를 순회하면서 테이블에 담긴 모든 함수이름들을 참조하는데, 이 과정에서 앞서 DLL 을 찾을 때 사용했던 ror 0x0D 인코딩을 다시 사용해서 원하는 함수 를 찾아낸다.

이 때, 함수이름과 앞에서 연산해놨던 DLL 이름의 인코딩 값을 더해서 원하는 값과 맞는지 대조한다. 그렇게 해서 결론적으로 원하는 함수를 실행하기에 이른다.

동적분석으로 실행되는 함수를 정리한 것은 위와 같다. 해당 C2 서버에서 추가 악성코드를 가져오는데, 지금은 서버가 닫혀있어서 어떤 것을 가져오는지는 모른다.

여기까지 중국발 문서형 악성코드 분석을 마치도록한다. 끗

반응형