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


 

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

실습 3-2
기초 동적분석 도구를 이용해 Lab03-02.dll 파일에서 발견된 악성코드를 분석하라.

질문
1. 악성코드 자체가 어떻게 설치됐는가?
A : 먼저 악성코드 파일을 보니 DLL 파일이다. DLL을 설치하려면 rundll23.exe 을 사용해서 설치을 해야 할 것으로 보인다.
그래서 Dependency Walker를 사용해서 Lab03-02.dll에서 익스포트된 함수를 확인해보았다.
3-2-1

확인해보니 5개의 익스포트 함수가 있었고, 악성코드 설치를 위해 아래와 같이 실행하였다.
3-2-2

그리고 설치된 후 스냅샷을 확인해보니 아래와 같이 레지스트리에 변화가 있는 것을 확인했다.
3-2-3

2. 설치 후 악성코드를 어떻게 실행할 수 있는가?
A : 위의 스냅샷으로 보아 해당 악성코드는 IPRIP 서비스로 구동하는 것으로 보인다.
확인하기 위해 strings를 실행해보았다.

SYSTEM\CurrentControlSet\Services\, SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost 등과 같이 레지스트리도 보이고, 서비스관련 함수들과 HTTP 함수들도 볼 수 있고, 서비스 관련 문구들과 http 관련 string을 확인해볼 수 있다.
그리고 인터넷 주소(practicalmalwareanalysis.com)와 uri(serve.html) 와 base64으로 인코딩된 것으로 보이는 문자열도 볼 수 있다.

3. 악성코드가 동작할 때 어떤 프로세스를 발견할 수 있는가?
A : 동적분석을 위해 준비를 하고 해당 악성코드를 구동시켜 보았다.
3-2-4

악성코드는 서비스이므로 svchost.exe 프로세스로 구동이 될 것으로 보인다. 하지만 프로세스 리스트에서는 svchost.exe가 여러개이고 속성만으로는 어떤 프로세스가 악성인지 확인이 안되서 File > Find Handle or DLL..을 사용해 Lab03-02.dll을 찾아보니, 1128 PID를 가지는 프로세스가 범인임을 확인했다.
3-2-5

3-2-6 3-2-7

4. 정보를 수집하는 ProcMon을 사용하기 위해 어떤 필터를 설정했는가?
A : 위의 Process Explorer에서 확인한 PID(1128)를 필터로 사용하면 된다.
하지만 나는 보통 ProcMon보다는 시스템 익스플로러의 스냅샷 기능을 더 애용하는 편이다.
파일과 레지스트리를 동시에 볼 수 있고, tree형태 또는 text 형태를 변화를 볼 수 있어서 편하다.
3-2-8 3-2-9

5. 악성코드임을 의미하는 호스트 기반 표시자는 무엇인가?
A : 해당 악성코드의 특징 중 하나는 IPRIP 서비스를 등록하는 것이며, 서비스의 설명이 “Depends INA+, Collects and stores network configuration and location information, and notifies applications when this information changes.” 으로 표시된다.
3-2-10

그리고 레지스트리에 ServiceDll을 정의하는데 dll 파일명을 그대로 사용한다.
3-2-11

6. 악성코드에서 유용한 네트워크 기반 시그니쳐가 존재하는가?
A : 악성코드를 실행후 패킷을 Wireshark 를 통해 practicalmalwareanalysis.com 도메인에 대해 dns 질의를 하는 것을 확인할 수 있었다.
3-2-12

hosts 파일에 해당 도메인을 설정하고 응답을 받아보니 아래와 같이 GET으로 /serve.html 파일을 요청하는 것을 확인할 수 있었다.
3-2-13

 


This entry was posted in Reading, Reversing and tagged , . Bookmark the permalink.

6 Responses to 실전 악성코드와 멀웨어 분석 – 3장 기초 동적 분석 실습 3-2

  1. 페르디 says:

    안녕하세요. 저도 이책으로 공부중인데요. 마지막에 hosts에 등록해서 받으려하는데 안받아오는데 어떻게 받으셨는지 알수있을까요?[와샥에는 분명 get이 1분쯤 뒤에 생기는데말이죠..]

  2. apollo89 says:

    C:\Windows\System32\drivers\etc\hosts 파일에 아래와 같이 추가해주면 됩니다.
    127.0.0.1 practicalmalwareanalysis.com

    그리고 글에서와 같이 로컬에서 nc으로 80 포트를 열고 1분 이상 가다리고 있으면, request 가 오는 것을 확인할 수 있습니다^^

  3. 페르디 says:

    답변감사합니다! 이전 예제들은 잘 됬는데 이건 이상하게 잘 안되네요…ㅠ 일단 진도 나가봐야겠습니다..

  4. zrungee says:

    좋은글 감사합니다. 스트링은 따로 추출하신건가요?

  5. apollo89 says:

    네 bintext나 Linux/Unix 계열의 strings 명령을 사용하시면 됩니다.
    저는 gnuwin32를 사용해서 윈도우에서 gun util을 사용할 수 있게 설정을 해서 사용하고 있습니다.
    http://sourceforge.net/projects/getgnuwin32/

  6. ILOVE휘인 says:

    요새 보고는 있는데 어렵네여
    이게 VM NAT로 네트워크 맞추고 하는데 서비스 등록시키고 와이어샤크로 덤프 뜨니까 DNS 쿼리가 발생하지 않네요 ㅠㅠ
    nc는 리스닝 상태에서 아무 응답도 없고 호스트에서 포워딩 설정을 해줘야 할까요

댓글 남기기