본문 바로가기

0x00 /0x02 Malware

- 실전 악성코드와 멀웨어 분석 Chap.1 [실습 1-2]

# 실전 악성코드와 멀웨어 분석에서 제공하는 실습 파일을 이용한 악성코드 분석 연습.



  해당 실습 파일들은 http://practicalmalwareanalysis.com/labs/ 에서 제공되고 있습니다.






                                                                                 


# 실습 1-2

 Lab01-02.exe 파일 분석

                                                                                 




# 질문 (1)

- Http://www.VirusTotal.com/에 Lab01-02.exe 파일을 업로드하자. 기존 안티바이러스에 정의된 것과 일치하는가?


[ 그림 1 ] VirustToTal 진단 결과

- 기존 안티바이러스 29개에서 분석이되어 진단된 것을 확인할 수 있었습니다.




# 질문 (2)

- 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가? 파일이 패킹돼 있다면 언패킹해보자.


[ 그림 2 ] Lab01-02.exe 패킹 여부 확인 결과

- 첫번째로는 VirusTotal에서 제공해주는 패킹 체크 결과이며, 두번째는 PEview, 세번째는 PEiD를 이용하여 

  확인한 결과입니다. 보는 것과 같이 모두다 UPX 패커로 패킹되어 있다는 것을 확인할 수 있습니다.



[ 그림 3 ] Lab01-02.exe UPX Packer 이용하여 Unpacking

- UPX Packer를 이용해서 Lab01-02.exe 파일을 Unpacking 한 결과입니다. 파일 사이즈가 약 5배정도 커진걸 

  확인할 수 있습니다. 



[ 그림 4 ] Unpacking 후 PEview를 통한 비교

- UPX로 패킹되어 있었던 Lab01-02.exe 파일과 언패킹 후의 Lab01-02.exe 파일을 PEview로 열어 비교한 모습입니다.


- PE 구조에서 섹션명만 봐도 한눈에 차이점을 알 수 있습니다. 특히 패킹되어 있던 파일은 첫 번째 섹션에 아무런 값이

  없는 것을 확인할 수 있는데요. UPX 패킹이 단순한 실행압축이기 때문에, 해당 프로그램을 실행시키면 그때, 다른 섹션에

  존재하는 Unpacking 루틴을 먼저 돌면서, Unpacking 된 코드로 복원시켜 본래의 코드를 실행시키기 때문입니다.




# 질문 (3)

- 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?


[ 그림 5 ] Unpacking 전후의 import 되는 Dll 및 API 함수 결과 비교

- Unpacking을 하고 나면 import 되는 dll 및 API 함수들을 좀 더 정확하게 알 수 있습니다.

- 결론적으로, 해당 파일에서 import 되는 함수들을 살펴보면, 서비스 부분(서비스 생성 및 제어), 프로세스 부분

  (스레드 생성, 특정 모듈의 경로 찾기 등), 특정 URL로 접속 혹은 특정 URL로 접속하여 다른 악성 파일들을 다운

  받는 행위도 가능할 것으로 예상되네요.




# 질문 (4)

- 감염된 시스템에서 악성코드를 인식하는 데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했는가?


[ 그림 6 ] Unpacking 후 Lab01-02.exe 파일에서 발견한 String 값들

- "MalService" 라는 문자열이 호스트 기반 시스템에서 사용될 서비스 명으로 예상되고, "Http://www.mal

   wareanalysisbook.com" 이라는 문자열, 그리고 "Internet Explorer 8.0" 이란 문자열을 보고, 네트워크

   기반의 행위도 있을 것이라고 판단하였습니다. 여기까지가, 기초분석에 해당하는 것들로 파일을 분석한

   내용이구요. 악성코드를 실행해서 간단하게 동적분석을 해보겠습니다.



[ 그림 7 ] Lab01-02.exe 실행 후 변경된 서비스 상태

- HKEY_LOCAL_MACHINE\SYSTEM 의 서브키인 ControlSet001과 CurrentControlSet 에 Malservice 라는 서비스 레지스트리가 

  생성된것을 확인할 수 있었습니다. 



[ 그림 8 ] PC 부팅이후 등록된 서비스 확인

- Lab01-02.exe 파일을 실행하고 부팅한 모습입니다. 서비스에 Malservice가 등록되어 있는 것을 확인할 수 

  있습니다. 그리고 계속 버벅거리더니, Lab01-02.exe 파일의 에러 메시지가 뜨더군요. 너무 버벅거리길래, 프로세스

  익스플로러를 통해서 확인해본 결과 TCP 통신을 하는 것을 확인했습니다. 그래서 우분투 PC를 통해서 네트워크 트래픽

  을 와이어샤크로 잡아보았습니다.



[ 그림 9 ] 와이어샤크에 캡쳐된 DNS 서버에 "www.malwareanalysisbook.com" IP를 질의하는 패킷

- 앞에서 발견되었던 "www.malwareanalysisbook.com" 주소에 해당하는 IP를 질의하는 패킷을 확인할 수 있었습니다.

- 해당 주소의 IP 주소는 184.168.221.22 였으며, TCP 통신을 하는 것을 확인했습니다.



[ 그림 10 ] Lab01-02.exe 네트워크 행위

- "www.malwareanalysisbook.com"에 세션을 맺고, HTTP get 메소드를 이용하여 페이지를 요청하는 모습을 확인했습니다.

- 이 과정을 계속 반복하더군요. 앞에서 버벅거리다가 해당 프로세스가 종료된 것은 여러개의 스레드를 생성해서 짧은 시간에

  굉장히 많은 접속을 시도해서 발생한 버벅임으로 예상됩니다. 그리고 실습파일이라 실제 악성코드 처럼 악의적인 행위는 

  하지 않았지만, 사용자 몰래 생성했던 여러개의 스레드들로 "www.malwareanalysisbook.com" 에 접속하는 것을 확인할 수 

  있었습니다.



# 결론적으로 해당 파일은 UPX로 패킹되어 있었으며, Malware라는 서비스를 레지스트리에 추가로 생성하는 것은 눈으로 확인이

  되었습니다만,  "http://malwareanalysisbook.com" 이라는 사이트에 사용자몰래 접속하는 그러한 행위가 있을 것이라고 생각

  했으나, 그러한 행위는 겉으로 나타나진 않았지만 네트워크 트래픽 분석을 통해서, Malservie 서비스가 실행되면서

  "http://malwareanalysisbook.com" 에 접속을 시도하는 것을 확인할 수 있었습니다. 




# 참고

- 실전 악성코드와 멀웨어 분석

http://asec.ahnlab.com/136

https://tuts4you.com/download.php?view.3518 (Detect it Easy Tool down Link)