본문 바로가기

0x00 /0x02 Malware

- 악성코드 (MaxRootkit_2011_1.exe) 분석 - 미완.

# Malware File Name : MaxRootkit_2011_1.ex 


# 분석환경

- Windows XP SP3 x86

- Ubuntu x64






1. 초기분석



1.1 안티바이러스 스캐닝 ( VirusToTal)


[ 그림 1 ] MaxRootkit_2011_1.ex    Virustotal 안티바이러스 스캐닝 결과 (진단 결과)

- Trojan / Rootkit / Downloader 등으로 진단

- 위와 같은 내용을 통해서, 루트권한을 획득한 공격자가 피해자의 PC에 악성코드를 은폐시키고, 추가적인 악성코드를 다운받는 식의 행위가 예상된다.






[ 그림 2 ] MaxRootkit_2011_1.ex    Virustotal 안티바이러스 스캐닝 결과 - File detail 정보

- import DLL (ADVAPI32.dll / KERNEL32.dll / RPCRT4.dll / WS2_32.dll / ntdll.dll)

- 일반적으로 모든 프로그램은 Ntdll.dll 과 Kernel32.dll 을 사용

- Ntdll.dll 은 윈도우가 부팅되면서 커널 메모리 영역을 사용할 수 있게끔 해주는 역할

- WS2_32.dll 은 윈도우 소켓을 구동할 때 사용 (TCP or UDP 통신을 예상할 수 있음)

- RPCRT4.dll 의 uuidcreatesequential 함수는 랜카드의 MAC 주소를 얻는 함수

- Ntdll.dll 의 zwQueryKey 함수등을 보아, 레지스트리 부분도 변화가 있을 것으로 예상


# 공통 DLL 설명 - 

DLL

설명 

 Kernel32.dll

 메모리, 파일, 하드웨어 접근과 조작과 같은 핵심 기능을 담은 빈번히 공통으로 사용하는 DLL 이다.

 Advapi32.dll

 이 DLL을 이용하면 서비스 관리자나 레지스트리 같은 추가 핵심 윈도우 컴포넌트에 접근할 수 있다.

 User32.dll

 이 DLL은 버튼, 스크롤바, 그리고 사용자 행위 제어와 반응 컴포넌트 등 모든 사용자 인터페이스 컴포넌트를 담고 있다.

 Gdi32.dll

 이 DLL은 그래픽 보기와 조작 관련 함수를 담고 있다.

 Ntdll.dll

 이 DLL은 윈도우 커널 인터페이스다. 항상 간접적으로 Kernel32.dll를 통해 임포트 하지만, 실행 파일은 일반적으로 이 

 파일을 직접 임포트할 수 없다. 실행 파일이 이 파일을 임포트한다면 이는 작성자가 윈도우 프로그램에 일반적으로 

 허용된 기능으로 사용하지 않는다는 의미다. 기능을 숨기거나 프로세스를 조작하는 등의 특정 작업에 이 인터페이스를

 이용한다.

 WSock32.dll / Ws2_32.dll

 이는 네트워킹 DLL이다. 이를 이용하는 프로그램은 네트워크에 연결하거나 네트워크 관련 작업을 수행할 가능성이 

 높다.

 Wininet.dll

 이 DLL은 FTP, HTTP, 그리고 NTP 같은 프로토콜을 구현한 상위 수준의 네트워크 함수를 담고 있다.

[ 출처 : 실전 악성코드와 멀웨어 분석 ]





[ 그림 3 ] MaxRootkit_2011_1.ex    Virustotal 안티바이러스 스캐닝 결과 - 추가 정보








1.2 PEview 


[ 그림 4 ] PEview - Resource Section 데이터 부분

- PEview 를 이용하여, 살펴보면서 의심가는 부분 확인

- Resource Section 부분에서 XML 코드가 발견






1.3 Bintext


[ 그림 5 ] Bintext 이용 String 추출 - (1)

- HTTP Request Message 확인



[ 그림 6 ] Bintext 이용 String 추출 - (2)

- XML 코드 발견 

- 자세하진 않지만 구글링을 통하여 대략적인 XML 코드 분석 [ 그림 7 ] 참고

- 아래부분엔 winlogon.exe 등 레지스트리 관련 유니코드들도 발견



[ 그림 7 ] XML 코드 분석 

- 해당 XML 파일은 Visual 이용하여 프로그램을 만들때, 사용되는 Manifest 파일로 추정된다.

- Manifest 파일이 뭐냐하면, 간단하게 말하면 프로그램이 어떤 환경에서 동작할지를 명시한 파일이라고 한다.

- 구글링을 통하여 코드를 분석해 본 결과, 어떠한 프로그램을 실행할 때, 현재 사용자 권한에서 가능한 최고의 권한을

  부여받아 실행하도록 하는 그러한 코드로 생각된다. (이 부분은 여기까지 해놓고, 다른 단서를 찾으면 매칭시켜봐야할듯)

- Manifest 설명 링크 : http://www.samlogic.net/articles/manifest.htm






1.4 PEID Packing Check


[ 그림 8 ] PEID Packing Check

- PEID 패킹 여부 확인은 "userdb.txt"라는 파일에 기존에 발견되었던 시그니처 모음을 가지고, 비교하여 확인하는 알고리즘이다.

- 참고로, PEID에서 제공하는 "userdb.txt" 보다, Python peframe 이라는 모듈에서 제공하고 있는 "userdb.txt"의 시그니처가

  더욱 많다. (사용자들이 계속 추가하는데 업데이트가 잘되는 듯)

- 따라서, 패킹 여부는 시그니처 기반으로 체크하기 때문에, 100% 신뢰할 수 없다. 참고만 해보자.









2. 동적분석



2.1 Winalysis 이용 - 시스템 변경 사항을 확인 ( 레지스트리, 파일 등 )


[ 그림 9 ] MaxRootkit_2011_1.exe 실행전 시스템 Snapshot




[ 그림 10 ] MaxRootkit_2011_1.exe 실행후 실행전 시스템 Snapshot과 비교 

- 실행 후, File, 레지스트리, 서비스 부분에서 시스템 변경 사항이 있다는 것을 확인할 수 있었다.




[ 그림 11 ] MaxRootkit_2011_1.exe 실행후 파일 시스템 변경 사항

- MaxRootkit 악성실행 전 후의 Snapshot 비교 결과 파일 부분에서 변경사항이 있었다. 일단 첫 번째로는 "C:\Malware" 디렉터리이다.

- 실행시킨후 해당 악성코드 파일이 삭제된 것을 확인 할 수 있었다.




[ 그림 12 ] MaxRootkit_2011_1.exe 실행후 레지스트리 변경 사항

- 레지스트리 관련하여 어떠한 값들이 삭제되고 변경된 것을 확인할 수 있다.

- 마지막 부분을 보면 레지스트리를 생성한 것도 확인이 되었다.



[ 그림 13 ] MaxRootkit_2011_1.exe 실행후 생성된 레지스트리

- HKLM\SOFTWARE\Classes\Interface\ 위치에 새롭게 생성된 레지스트리인데, 어떠한 기능을 하는지 감이 안온다. 

  왜 이 레지스트리를 생성했는가, 확인을 해보아야 할 것 같다. 그리고 ( u = 131075 ) 값이 무슨 의미를 하는지도 궁금하다.




[ 그림 14 ] MaxRootkit_2011_1.exe 실행후 Services 변경 사항

- Windows Installer 서비스를 Stop, Shutdown

- Microsoft Kernel Wave Audio Mixer 서비스를 Stop 






2.2 SysinternalsSuite RootkitRevealer 이용 - Rootkit 탐지


[ 그림 15 ] MaxRootkit_2011_1.exe 실행전 RootkitRevealer 이용 Rootkit 탐지 결과

- RootkitRevealer 도구는 SysinternalsSuite 패키지 안에 포함되어 있는 도구중 하나로 루트킷을 탐지하는 유틸리티이다.

- 악성코드 실행전 탐지된 결과는 위와 같다. 위에서 발견된 2가지 항목은 오진된 것으로 판단된다. (정상적인 행동을 하는 것으로 판단)

- Windows Sysinternals Forum Page 참고 http://forum.sysinternals.com/rkr-171-and-hklmsecuritypolicysecrets_topic8882.html



[ 그림 16 ] MaxRootkit_2011_1.exe 실행후 RootkitRevealer 이용 Rootkit 탐지 결과

- 앞에서 새롭게 생긴 레지스트리가 Rootkit으로 탐지된 것을 확인할 수 있다. 

- 설명부분에 "Security mismatch" 라고 되어 있는데, 확실하게 무엇을 뜻하는지 아직 잘 모르겠다. 나중에 다시 참고하도록 하자.




# 상세분석에 있어서 어려움이 많아서, 해당 악성코드 파일 분석을 중단했습니다.





# 참고 했던 페이지들

- 관리자 권한으로 실행되는 Exe,Dll 만들기

  http://lunaticlina.tistory.com/category/My%20Work/C/C++,%20%20Win32,%20MFC?page=10

- Manifest 설명

  http://www.samlogic.net/articles/manifest.htm

- Sysinternals RootkitRevealer 관련내용

  http://forum.sysinternals.com/rkr-171-and-hklmsecuritypolicysecrets_topic8882.html