실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-1

5분 읽기 작성 2013.11.19

Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다.

Practical_Malware_Analysis
[구매하기]

실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-1
실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-2
실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-3
실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-4
실전 악성코드와 멀웨어 분석 – 3장 기초 동적 분석 실습 3-1
실전 악성코드와 멀웨어 분석 – 3장 기초 동적 분석 실습 3-2
실전 악성코드와 멀웨어 분석 – 3장 기초 동적 분석 실습 3-3
실전 악성코드와 멀웨어 분석 – 3장 기초 동적 분석 실습 3-4

실습문제 다운로드 받는 곳 : http://nostarch.com/malware

실습 1-1
Lab01-01.exe와 Lab01-01.dll 파일을 사용한다. 파일에 관한 정보를 얻으려면 1장에서 사용한 기법과 도구를 사용하고 다음질문에 대답해보자

질문
1. http://www.virustotal.com 에 파일을 업로드한후 보고서를 보자. 기존 안티바이러스 시그니쳐에 일치하는 파일이 존재하는가?
A : Lab01-01.exe의 경우 탐지 되지 않았고, Lab01-01.dll 의 경우 하나의 백신(Commtouch, W32/GenBl.290934C6!Olympus)에서 탐지 되었다.
1-1-1
1-1-2

2. 이 파일은 언재 컴파일 되었는가?
A :
Lab01-01.exe의 경우 2010/12/19 :16:16:19 UTC
Lab01-01.dll의 경우 2010/12/19 :16:16:38 UTC
1-1-3
1-1-4

3. 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가?
A : 난독화 되지 않았다. PEiD를 보고 판단.
1-1-51
1-1-61

4. 임포트를 보고 악성코드 행위를 알아낼수 있는가? 그렇다면 어떤 임포트인가?
A : Lab01-01.exe 의 경우 파일을 생성(CreateFileA) 및 복사(CopyFileA)하거나 파일을 찾는 함수(FindFirstFileA, FindNextFileA)를 볼 수 있다
1-1-7

Lab01-01.dll의 경우 프로세스를 생성하는 함수(CreateProcessA)와 Sleep 함수를 볼 수 있고, 네트워크 기능을 제공하는 WS2_32.DLL를 로드하고 있다.
1-1-8

5. 감염된 시스템에서 검색할수 있는 다른파일이나 호스트 기반의 증거가 존재하는가?
A. Lab01-01.exe을 strings 으로 확인해봤을 때 아래와 같이 kerne132.dll(kernel32.dll이 아님 숫자 1)을 발견할 수 있었음

D:\DATA\...\Chapter_1L>strings Lab01-01.exe

Strings v2.51
Copyright (C) 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

!This program cannot be run in DOS mode.
Richm
...
CloseHandle
UnmapViewOfFile
IsBadReadPtr
MapViewOfFile
CreateFileMappingA
CreateFileA
FindClose
FindNextFileA
FindFirstFileA
CopyFileA
KERNEL32.dll
malloc
exit
MSVCRT.dll
_exit
_XcptFilter
__p___initenv
__getmainargs
_initterm
__setusermatherr
_adjust_fdiv
__p__commode
__p__fmode
__set_app_type
_except_handler3
_controlfp
_stricmp
kerne132.dll
kernel32.dll
.exe
C:\*
C:\windows\system32\kerne132.dll
Kernel32.
Lab01-01.dll
C:\Windows\System32\Kernel32.dll
WARNING_THIS_WILL_DESTROY_YOUR_MACHINE

D:\DATA\...\Chapter_1L>

6. 감영된 장비에서 이 악성코드를 발견하기 위해 사용한 네크워크 기반의 증거는 무엇인가?
A. Lab01-01.dll을 strings 으로 확인해봤을 때 아래와 같이 IP(127.26.152.13)을 발견할 수 있었음

D:\DATA\...\Chapter_1L>strings Lab01-01.dll

Strings v2.51
Copyright (C) 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

!This program cannot be run in DOS mode.

Rich
...
CloseHandle
Sleep
CreateProcessA
CreateMutexA
OpenMutexA
KERNEL32.dll
WS2_32.dll
strncmp
MSVCRT.dll
free
_initterm
malloc
_adjust_fdiv
exec
sleep
hello
127.26.152.13
SADFHUHF
/0I0[0h0p0
141G1[1l1
1Y2a2g2r2
3!3}3

D:\DATA\...\Chapter_1L>

7. 이 파일의 목적은 무엇이라고 판단했는가?
A : 아마 자신을 kerne132.dll으로 위장하기 위해 복사하고 CreateProcess를 이용해 실행한 다음 sleep 시키고 c&c서버(127.26.152.13) 와 통신하는 용도로 사용될 것으로 추측되며 백도어일 가능성이 커보인다.

 

“실전 악성코드와 멀웨어 분석 – 1장 기초 정적분석 실습 1-1”에 대한 18개의 생각

  1. 안녕하세요. 블로그 잘봤습니다. 죄송한데 실습 문제 사이트가 안들어가져서 그런데 noorol@naver.com 으로 실습문제좀 보내주시면 안될까요? ㅎ

  2. 안녕하십니까? 실습문제가 어디있는지 너무 궁금합니다. 사이트를 가봤더니 잘 안보여서요..

    샘플을 통해 하고 싶은데요. 아래에 메일로 답변 부탁드립니다.

    power2618@naver.com 입니다.

    요새 감기가 유행인데 감기 조심하세요~

  3. 이 책에 대한 질문 인데요 리버싱 핵심원리 책하고 비교하면 어떤가요?
    초, 중, 고급으로 나누었을때…..

  4. 두 책이 다루는 주제가 조금다른 것 같습니다.
    실전 악성코드와 멀웨어 분석은 악성코드 분석하는 방법을 익히기 위해 사용하는 기법과 도구를 설명하는 책이구요..
    악성코드를 분석하는 기법중에 하나로 리버싱을 소개하고 있습니다.
    리버싱 핵심원리는 말그대로 리버스 엔지니어링을 배우고, 윈도우 PE구조를 학습하고 깊이까지는 윈도우 커널까지 한번보는 책인것 같습니다.
    난이도를 따지자면 실전 악성코드와 멀웨어 분석은 초~중, 리버싱 핵심원리는 중~상정도 인 것 같습니다.(지극히 개인적인 의견입니다.)
    물론 두 책 모두 기초부터 친절하게 잘 설명해주셨습니다.
    부끄럽지만 저도 두 책 모두 아직 완독하지는 못했습니다.ㅠㅠ

  5. 말씀 감사합니다! 핵심 원리 책은 한번 봤는데 좀 어렵다는 느낌이 들더군요 !
    멀웨어 분석을 먼저 사서 전체적인 흐름을 봐야겠어요 !

  6. http://sourceforge.net/projects/pmalabs/ 여기서 PracticalMalwareAnalysis-Labs.exe 파일을 받으시고 압축을 푸시면 됩니다.
    혹시 압축을 풀었는데 파일이 보이지 않으면 V3가 진단해서 삭제한것일 수 있으니, V3의 실시간 감시 끄고 해보시거나,
    예외를 추가하셔서 하시면 될 것 같습니다.

  7. 글 잘 봤습니다.
    한가지 확인 부탁 드립니다.

    글 내용 중,

    2.이 파일은 언제 컴파일 되었는가?
    A:
    Labo1-01.exe의 경우 2012/12/19 :16:16:19 UTC
    Labo1-01.dll의 경우 2012/12/19 :16:16:38 UTC

    라고 일자가 나와 있는데 캡쳐에 보면 2010/12/19 :16:16:19 UTC , 2010/12/19 :16:16:38 UTC로 되어 있습니다. 어떤게 맞는건가요? 확인 부탁 드립니다.

댓글 남기기