'붉은 10월'에 해당되는 글 1건

  1. 2013.01.29 [Malware Analysis] Red-October Attack Samples Analysis

얼마전 러시아 보안 업체인 카스퍼스키에 의해 Red October라 불리는 5년 동안 전 세계의 정부 및 주요 기관 등을 대상으로한 APT 공격에 대한 분석 정보를 발표하였다.

"Red October" Diplomatic Cyber Attacks Investigation

 

Red October 공격의 initial vector는 이미 알려진 취약점(CVE-2009-3129, CVE-2010-3333, CVE-2012-015)을 이용한 Spear Phishing 공격이라고 발표되었다. 사용자가 악의적인 목적의 첨부 파일을 열어 감염까지의 과정을 보면 다음과 같다.

[그림 1] Red-October Infection Procedure


첨부 파일(MD5 : 51edea56c1e83bcbc9f873168e2370af) 실행 후 파일 생성 과정을 보면 다음과 같다.

[그림 2] File Creation after Execute Malicious Word File

 

먼저 main dropper인 msmx21.exe파일이 %temp%에 생성되는 것을 볼 수 있으며, msmx21.exe에 의해 loader의 기능을 하는 svchost.exe와 실제 백도어 파일이 암호화되어 있는 wsdktr.ltp 파일이 생성되는 것을 알 수 있다.

 

● Main Dropper(msmx21.exe) 분석

msmx21.exe(MD5 : ffb12ee6053a4df98151b11b2ee33692) 파일의 경우 아래와 같이 패킹되어 있는 것을 알 수 있다.

[그림 3] Main Dropper File Information

 

unpacking 과정을 살펴보면 실행 과정에서 VirtualAlloc 함수로 동적으로 메모리를 할당한 뒤 해당 메모리에 암호화된 데이터를 write한다.

[그림 4] VirtualAlloc and Copy Memory


이후 메모리 상의 암호화된 데이터를 복호화한다.

[그림 5] Decode encrypted svchost.exe file

 

메모리 상에 복호화 된 파일을 저장한다.(MD5 : 20c3ec7d34e5f950ed7b3752c65fc127) 이후 추가적인 과정을 거친 뒤 최종적으로 unpack된 악성코드의 entry point(0x403910)로 jump하게 된다.

[그림 6] Jump to Decoded File's EP

 

이 후 C:\Program Files\Windows NT\svchost.exe 파일을 생성한다.

[그림 7] Loader(svchost.exe) Creation

 

이어서 C:\Program Files\Windows NT\wsdktr.ltp 파일을 생성한다.

[그림 8] Encrypted DLL File Creation

svchost.exe 파일을 실행한다.

[그림 9] Execute svchost.exe

또한 main dropper 삭제를 위하여 msc.bat 파일을 생성 및 실행한다.

[그림 10] Create Batch File for Self-Elimination

 

● Backdoor Loader(svchost.exe) 분석

svchost.exe 파일의 주요 기능은 자동 실행을 위해 아래 레지스트리에 자기 자신을 등록하는 것과 실제 백도어 기능을 수행하는 파일이 암호화되어 있는 wsdktr.ltp 파일을 복호화하는 기능을 수행한다.

자동 실행을 위해 등록하는 경로는 아래와 같다.

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit"C:\WINDOWS\system32\userinit.exe,C:\svchost.exe path "

[그림 11] Create Registry Value for Auto Running

 

wsdktr.ltp 파일을 복호화하는 과정을 보면 같은 경로에 생성된 wsdktr.ltp 파일을 CreateFileW 함수를 이용하여 오픈한다.

[그림 12] Encrypted DLL Open

 

이 후 ReadFile 함수를 이용하여 해당 파일 메모리로 로드한다.

[그림 13] Encrypted DLL Load to Memory

 

복호화 과정을 거친 뒤 실제 백도어 기능을 수행하는 DLL 파일을 메모리 상에 복원한다.

[그림 14] Decrypted DLL in Memory

malware.lu의 분석 보고서에 따르면 복호화하는 과정에서는 RC4와 Zlib 알고리즘을 이용하여 복호화 과정을 거친다고 명시되어 있다.

Analysis of the sample "Red October" - Part 2

암호화된 파일을 wsdktr.ltp 파일을 로드한 뒤 복호화하는 과정은 다음과 같다.

[그림 15] Encrypted DLL Decryption Procedure

 

● 백도어 기능 분석

실제 백도어 기능을 수행하는 DLL의 백도어 기능까지의 Call Flow를 보면 아래와 같다.

[그림 16] Backdoor Call Flow

 

아래와 같이 SetTimer함수를 이용하여 Timer 설정하는 것을 볼 수 있다. Timer란 프로그램 내부에서 특정 시간이 지난 뒤 지정된 이벤트를 실행하기 위해서 사용한다.

[그림 17] Backdoor Use Windows Timer

 

TimerProc으로 지정된 10001040 주소 내부에서 쓰레드를 생성하게 되며 백도어 DLL의 명령어 처리 구문(100013A0)을 실행한다. 백도어는 C&C서버 접속, 파일 다운로드, 파일 실행, self-update 등의 기능을 수행한다.

[그림 18] Backdoor Function

 

[그림 19] Backdoor Jump Table for Switch Statement

 


+---------------------------------+
| Infinite Flow..                              |
| mail : reverseinsight@gmail.com    |
| Blog : http://sinun.tistory.com       |
twitter : @unpacker                      |
| CISSP, SIS1급                             |
+----------------------------------+


[+] Refrences     

Kaspersky Blog

malware.lu Tecnical Report


신고
Posted by By. PHR34K