안녕하세요~ Message 입니다. 오늘은~

<실전 악성코드와 멀웨어 분석> 책의 실습 문제 3-3 을 분석해보고자 합니다.

분석환경은 Windows XP / Vmware 12.1.0 build 입니다.

 

1. Process Explorer로 이 악성코드를 모니터링했을 때 무엇을 알아냈는가?

분석할 파일은 Lab03-03.exe 입니다.

Process Explorer를 실행하고, 해당 실습파일을 실행시키면

아래와 같이 Lab03-03.exe이 실행되고, 서브프로세스인 svchost.exe가 같이 실행되는것을 볼 수 있습니다. (초록색) 

하지만 1~2초 정도 시간이 지나면, 아래와 같이 서브프로세스인 svchost.exe만 고아 프로세스로 동작하는 것을 볼 수 있습니다.

에서는 svchost.exe가 고아 프로세스라는 사실이 매우 일반적이지 않으며, 아주 의심스럽다고 표현합니다.

(아마 이런 부분은 많은 경험을 쌓아야 알 수 있겠죠...ㅜㅜ...)

svchost.exe의 경우, 바로 전 문제인 3-2 문제에서 특정 DLL 파일을 실행시키기 위한 수단으로 사용되었습니다.

 

2. 실시간 메모리 변조를 확인할 수 있는가?

Process Explorer에서 svchost.exe의 속성 -> Strings 탭으로 이동하면

디스크와(Image) 메모리(Memory)에 있는 실행이미지를 볼 수 있습니다.

Image와 Memory를 반복하여 누르면, 이미지가 상당 부분 일치하지 않음을 알 수 있습니다.

 

 

3. 악성코드임을 의미하는 호스트 기반 표시자는 무엇인가?

위 스크린샷에서 몇가지 특이한 문자열을 발견할 수 있는데,

practicalmalwareanalysis.log나 [ENTER]와 같은 문자열은 svchost에서 일반적으로 발견되지 않습니다.

아래에서 나오겠지만, 사용자가 입력한 엔터값이나 쉬프트값 등을

악성코드 제작자가 쉽게 알아보기 위해 '[ENTER]'와 같은 문자열로 대체하여 기록하기 위해 사용합니다.

(이번 경험을 통해서, 나중에 저런 문자열을 보면 키로깅 행위를 먼저 의심해 볼 수 있겠습니다.)

실제 키로깅 행위를 하는지 Process Monitor 툴을 이용하여 확인해보겠습니다.

 

1) ProcMon 필터설정

Process Explorer에서 생성되는 PID를 확인한 후, 아래와 같이 필터를 설정합니다.

 

2) ProcMon 이벤트값 확인

이후 메모장을 열어 아무 글자나 타이핑 한 뒤, 결과를 살펴보면

practicalmalwareanalysis.log 파일에서 CreateFile, WriteFile 등의 이벤트가 발생하는것을 볼 수 있다.

 

3) DWalker DLL 확인

DWalker를 이용하여 어떤 함수를 사용하는지 확인해보았습니다.

KERNEL32 DLL의 많은 함수를 사용하는것을 확인할 수 있었고,

CreateFile(파일생성), WriteProcessMemory(원격프로세스 데이터 작성, DLL인젝션에 사용 가능) 등이 보입니다.

 

4. 이 프로그램의 목적은 무엇인가?

ProcMon에서 발견한 practicalmalwareanalysis.log 파일을 편집기로 열어보면,

사용자 입력값이 프로그램 이름과 함께 기록되어 있음을 확인할 수 있습니다.

따라서, svchost.exe로 가장한 키로거로 판단할 수 있습니다.

 

posted by Red_Message