드롭퍼 형 악성코드 분석(리소스 유형)

2021. 5. 15. 00:45리버싱,악성코드분석

드롭퍼 악성코드 분석예제 (main.exe) 분석

 

아래는 main.exe의 entrypoint 이다.  ollydbg로 함수단위로 분석하겠음.

 

 

첫번째 함수는 GetTempPathA이다. 인자로 패스를 저장할 주소와 사이즈를 지정

실행 후 버퍼주소 0019FE48를 확인해보면 현재 PC의 임시디렉토리 주소가 저장된 것이 확인가능함.

 

 

다음 함수는 00401000인데 어떤함수인지 파악하기 힘들다. 인자값으로 아까구한 temp디렉토리경로, abc.exe라는 프로그램명이 넘어간다. 

 

함수 00401000이 실행후 아까 구한 temp 경로 문자열에 adb.exe 가 추가됨. 문자열 을 붙여주는 strcat이란 함수였던것으로

유추가가능하고 이 악성코드는 temp/adb.exe에 저장되고 실행될 것으로 예상됨.

 

 

다음 실행함수는 GetModuleHandleA 이다. 모듈의 핸들값을 반환하고 핸들값은 모듈의 BASE주소를 가리킨다.

함수 호출후 EAX 는 BASE주소를 가리키고 해당주소를 찾아가면 PE헤더가 확인가능.

00400000주소의 리소스가 아마 악성코드를 생성할 리소스로 추정.

 

 

다음 함수는 FindResourceA 이다. 리소스를 찾을때 사용한다.

인자값으로 핸들, 리소스이름, 타입을 넘겨준다.

아래의 함수실행전 스택을 보면 확인가능.

함수 반환값은 해당 리소스의 핸들값.

 

 

다음 실행함수는 LoadResource 이다. 리소스의 주소정보를 얻어오는 함수.

인자값은 모듈 핸들값, FindResourceA 함수로 찾은 리소스핸들 값.

 

반환값은 해당 리소스의 포인터주소의 값. 00403060 주소를 보면 확인가능.

 

 

다음 실행함수는 SizeofResource이다. 함수 인자값은 모듈의 핸들값,  FindResourceA 함수로 찾은 리소스핸들 값.

리소스의 사이즈를 반환한다.

 

 

CreateFileA을 실행하면 temp 경로에 adb.exe파일이 생성된다.

 

 

WriteFile은 00403060주소에 복사한 리소스를 덮어쓴다.

 

 

마지막으로 winexec 함수로 temp/adb.exe에 생성한 악성코드를 실행한다.

 

 

winexec를 실행하고 악성코드 adb.exe가 실행되어 악성코드(메시지박스)가 실행되었다.

main.exe라는 드로퍼형 악성코드를 실행하니 main.exe가 실행되고 자기 프로세스안의 리소스를 이용하여

adb.exe를 생성/실행한다. processexploer툴로도 확인가능.

 

'리버싱,악성코드분석' 카테고리의 다른 글

PE헤더 수정 실습1(.reloc 섹션 제)  (0) 2021.05.15
PE 헤더 IAT 이해  (0) 2021.05.07
은닉형 악성코드 이해(RAT)  (0) 2021.05.06
문서형 악성코드 이해  (0) 2021.05.06
UAC 우회기법  (0) 2021.05.06