vmware 파일로 위장한 악성코드
- 보안 정보/악성코드 관련 정보
- 2017. 9. 13. 08:48
malwares.com 코드분석팀 분석 자료
<부제 : 내 컴퓨터가 DDOS에 이용되고 있어 ㅠㅠ >
1. 개요
프로그램의 시작지점인 WinMain을 분석해보면 실행된 자기프로세스가 시스템 디렉토리에 “vmtoolsd.exe“ 로 실행될 경우, sub_409460 함수가 동작하게된다. 하지만, vmtoolsd.exe는 가상OS 부팅을 도와주는 vmware 소프트웨어의 내장프로그램이다. 그러나 테스트해본 결과 vmware에서 실행된 OS에서도 vmtoolsd.exe는 시스템 디렉토리에 상주하고 있지않다.
두 번째로 sub_409B60 에서는 g49zp8 서비스가 등록되어 있을 경우 동작하게 되어있지만 처음 실행한 프로그램에서 서비스가 등록되어 있지는 않다.
< Figure2. sub_409C90 >
sub_409C90 에서는 자기 프로그램을 시스템 디렉토리에 복사하고, 서비스를 등록해 시작한다.
< Figure3. 서비스 프로시져 >
[Figure 1]에서 서비스가 등록되어 있을 경우 동작하는 프로시져를 살펴보면 시스템 디렉토리에 복사한 “vmtoolsd.exe“를 실행해주며, 실행한 프로세스가 종료되는 때를 기다려, 종료될 경우 무한히 재실행해주는 작업을 한다. 현재 실행되어있는 자신과 같은 파일을 재실행하는 이유는 프로그램 오류,사용자에 의해 프로세스가 종료되어도 새로 동작할 수 있으며, [그림1]에서 시스템 디렉토리에서 ”vmtoolsd.exe” 이름으로 실행된다면, sub_409460 함수가 실행되기 때문에 다른 동작을 진행하게 된다.
(3) Child Process
< Figure4. Main >
분석한 내용에 따르면, 이전 코드는 위 함수의 실행을 위한 프롤로그로 보인다. 위 함수는 4개의 쓰레드를 생성 후,현재 클라이언트의 네트워크 가용량을 서버로 전달한다. 쓰레드는 반복적으로 돌게 되며, 메인에서 sub_407FB0 함수를 실행한다.
(4) Network Setting
< Figure5. sub_407FB0 >
sub_407FB0 함수에 진입하면 sub_407410함수를 통해서 네트워크 설정을 진행한다.
< Figure6. 네트워크 설정 >
네트워크를 설정하는 함수에서는 IP와 PORT에 20000을 증가시켜 연결시도를 한다.
● IP : 205.209.158.174
● PORT: 48080
20000을 증가시킨 값은 위와 같다. 현재는 연결이 되고 있지않으나 malwares.com 에 저장된 이력에 따르면, 다른 포트로도 사용된 이력이 있어, 다른 악성코드의 출현이 예상된다.
해당 이력은 [Figure 13]에서 확인할 수 있다.
(5) Send
< Figure7. 컴퓨터 정보 전송 >
sub_407FB0 함수로 돌아와서 네트워크 설정 후 운영체제, 메모리, 프로세서의 정보를 서버측에 전송한다. 서버에서는 클라이언트 관리용도로 사용할 것으로 보인다.
(6) Remote Command Recv
< Figure8. Command 명령 >
서버에 클라이언트 정보를 전송한 후, 서버로부터 값을 반복해 전송받는다. 전송받은 값의 첫 번째 값에 따라서, 동작하게 되는데 핵심동작은 6을 전달받을 경우 실행되는 동작이다. 6번은 암호화가 되어 있어 복잡한 연산을 진행한 뒤에 사용한다. 5번은 찾는 파일이 있는지 없는지에 대한 유효값을 리턴해주며 7번은 호출해주어야만 6번을 사용할 수 있다.
(7) Command 5,7
< Figure9. 5번 명령 함수 >
5번 명령에서는 단순히 파일을 읽기모드로 존재 여부를 확인해 리턴한다.
< Figure10. 6번 명령 함수 >
7번을 호출할 경우 what_93F638을 0으로 설정한다. 위 [Figure 10] 는 서버로부터 6번 명령을 전달받을 경우 호출되는 함수인데, 1이라면 사용이 불가능하다. 또한, 한번이라도 호출될 경우 1로 설정이 되므로 반복적으로 7번 명령이 필요하다.
< Figure11. 6번 명령 - 12개의 커맨드 >
위 함수는 12개의 switch구문에 따라서 다른 쓰레드를 생성한다. 각각의 내용은 다르나 모두 DDOS를 목적으로 생성하는 쓰레드로 보인다. 여기까지 실행되기 이전에 컴퓨터 사양, 네트워크 정보, 현재 가용중인 메모리를 서버측에 전달되던 것은 DOS 공격을 위해서 였음이였다.
12개의 커맨드는 IP random, udp flooding, http, tcp등의 공격을 수행한다.
(9) THREAD
< Figure12. UDP Flooding >
2번째 공격으로 생성되는 쓰레드 함수로 반복적으로 패킷을 전송하는 코드를 볼 수 있다.
“AAAAAAAAA·······” 1024개의 A를 반복적으로 보내는 동작으로 보아 UDP를 남발해 상대의 PC의 가용성을 떨어트리는 UDP Flooding 공격으로 추정된다. 또한, 반복적으로 7번 명령을 호출해주어야 하는 이유는 쓰레드를 중지하는 플래그를 활성화 하기 위한 명령이었다는것을 ExitThread() 함수 호출코드를 통해 알 수 있다.
(10) C2 SERVER
< Figure13. MWS IP 조회 >
해당 샘플하고 통신한 도메인을 조회하면 통신한 악성 샘플 이력 2회와 maewrat.exe라는 파일명으로 악성코드가 유포지로도 사용되었던 이력이 존재한다. 현재는 연결되지 않는 URL이나, 새로운 샘플을 배포할 때 사용될 확률이 높다.
해쉬 | F289CAF5AA1C1077108B1F866FC36D6FCF59F6634EC0DA8D76DBC06FB4410198 |
파일크기 | 196,709 Bytes |
유입파일명 | X |
태그 | exe_32bit, peexe, zusy, trojan, servstart |
주요동작 | 서비스 , 파일 드랍 및 DDOS 커맨드 |
초기감염방법 | 다운로드 추정 |
재실행방법 | 서비스 |
네트워크연결 | 205.209.158.174:48080 |
< Figure7. MAX-AGENT 탐지 >
'보안 정보 > 악성코드 관련 정보' 카테고리의 다른 글
CVE-2017-8759 : WSDL 파서 코드 인젝션 (0) | 2017.09.25 |
---|---|
PostScript를 이용한 한글 악성코드 (0) | 2017.09.18 |
닷넷으로 위장한 악성코드 (0) | 2017.08.29 |
의심스러운 설치파일 분석보고서 (0) | 2017.05.22 |
안드로이드 악성코드 (0) | 2017.03.30 |
이 글을 공유하기