Reversing/윈도우 악성코드

윈도우 바이러스 기초분석(Practiccal Malware Analysis) [LAB 05-01] -1

대장흰둥 2021. 1. 28. 15:03

<>IDA Pro 만을 이용해 파일 Lab05-01.dll내의 악성코드를 분석하라. 이 실습의 목적은 IDA Pro를 직접 다루는데 있다. 이미 IDA Pro를 사용해 본 적이 있으면 다음 문제를 무시하고 악성코드 리버싱에 초점을 맞춰도 좋다

 

1. DLLMain 의 주소는 무엇인가?

→ 0x1000D02E 이다. 

 

2. Imports 윈도우를 이용해 gethostbyname을 탐색해보자. 임포트 위치는 어디인가?

 0x100163CC 이다. 

 

3. Gethostbyname을 호출하는 함수는 몇 개인가?

Gethostbyname 에서 xrefs윈도우를 살펴보면 p 가 호출되는 부분이고, r 이 읽어오는 부분이므로 총 9번 호출되고 있음을 알 수 있다

 

4. 0x10001757에 위치한 gethostbyname 호출을 보면 어떤 어떤 DNS 요청이 이뤄지는지 알 수 있는가?

gethostbyname 의 인자를 보면, 10019040+13 의 값을 전달하고 있다. 이를 따라가 보면 pics.practicalmalwareanalysis.com 의 주소를 찾을 수 있다. 따라서 이 주소로 DNS 요청이 이뤄졌을 것이라고 추측할 수 있다.

 

5. 0x10001656 에 있는 서브루틴에서 IDA Pro 는 지역변수 몇 개를 인지하고 있는가? 파라미터는 몇 개를 인지하고 있는가?

지역변수는 총 23 (음수 offset), 파라미터는 총 1 (양수 offset) 가 있다.

 

6. Strings 윈도우를 이용해 디스어셈블리 내의 문자열 /cmd.exe /c 를 찾아보자. 어디에 있는가?

/cmd.exe /c xdoors_d 영역의 0x10095b34 에 위치해 있는 것을 알 수 있다.

 

7. /cmd.exe /c 를 참조하는 코드 영역에서 무슨 일이 발생하는가?

xrefs 를 확인해 보니 한가지 함수에서 참조하고 있다.

Remote Shell Session의 문자열과 closesocket 함수로 보아socket 통신을 하고 원격 셀 세션 함수가 있음을 알 수 있다.

 

8. 같은영역 0x10010C8 에서 dword_1008E5C4 는 경로를 지정하는 전역변수로 보인다. 악성코드는 어떻게 dword_1008E5C4를 설정하는가?

dword_1008E5C4xref 윈도우를 살펴보면 write type 인 주소가 하나 있다.

dword_1008E5C4 sub_10003695 의 리턴값을 받는다

sub_10003695 의 함수는 VersionInformation.dwPlatformId를 리턴하므로, 윈도우의 시스템 정보를 확인해 준다 .