annyoung

기업메일로 첨부된 스피어 피싱 악성코드 분석 본문

분석생활

기업메일로 첨부된 스피어 피싱 악성코드 분석

nopsled 2015. 6. 5. 21:07

불과 몇 시간전, 샘플을 입수해서 분석하기로 결정하고 분석해봤다.

5분? 정도 봤는데 25번 포트로 통신하는거보니 SMTP라고 생각했고 정보유출에 핵심을 두고 분석하였다.

이메일이 삭제되어 정확히 드랍된 파일인지, 숙주인지 모르겠다. 그냥 분석 해보려고 한다.



 FileName

 axoleoyt.exe

 MD5

 D555F23D6B5C902C7455A9FC9EF5FDB7

 SHA-1

 7D7B35177D2E9A872133247C40360FF197FF4A9C

 Packer

 X

파일명을 보니 아마도 랜덤으로 생성 되었고, 드랍된 파일로 추정된다.



.rdata:0040DA64 00000011 C Inter your Name:

.rdata:0040DA78 00000011 C Inter your mail: 

해당 바이너리의 스트링을 보면 mail이 있다. 뭔진 몰라도 증거물 획득



int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { int result; // eax@2 struct tagMSG Msg; // [sp+8h] [bp-38h]@3 HANDLE v6; // [sp+28h] [bp-18h]@1 v6 = CreateMutexA(0, 1, "MTX"); LoadStringA(hInstance, 0x67u, Buffer, 100); LoadStringA(hInstance, 0x6Du, byte_411F78, 100); LoadLibraryA("riched32.dll"); loc_407F30((volatile LONG *)hInstance); if ( loc_40A550((volatile LONG *)hInstance) ) { while ( GetMessageA(&Msg, 0, 0, 0) ) { TranslateMessage(&Msg); DispatchMessageA(&Msg); } result = Msg.wParam; } else { result = 0; } return result; } 

1. WinMain부터 보면 MTX라는 뮤텍스를 생성한다.

2. GetMessageA를 지속적으로 실행시키면서 메시지를 받아오는데 SendMessage, PostMessage 이 두개를 사용하여 메시지를 보낸다. 대부분 다른 프로세스에 의해서 보내지는 경우가 많다.

이렇게 소스코드가 보이는 경우 대부분 BeginPaint, EndPaint와 같은 API를 사용하여 원격제어를 위해 사용된다.




int __usercall sub_403780<eax>(int a1<eax>, int a2<ecx>, int a3<edi>, int a4<esi>) { int v4; // ebx@1 int result; // eax@2 int v6; // [sp-4h] [bp-Ch]@1 v4 = a1; v6 = a1; do { result = *(_DWORD *)a3 ^ *(_DWORD *)a4; *(_BYTE *)a3++ = result; ++a4; --v4; if ( !v4 ) { v4 = v6; a4 -= v6; } --a2; } while ( a2 ); return result; } 

- 새로운 악성코드를 드랍하기 위한 복호화 루틴으로 추정된다. 인자 값으로 두 개의 값이 넘어온다.

인자값은 다음에 나오는 설명과 같다. 


sub_403780(result, dword_410429, (int)&unk_410318, (int)word_40AE3E); 

410318과 40AE3E를 가져와 복호화 하는 것으로 추정된다.


0012F7C4   5A48A0E2  /CALL to IsDebuggerPresent from uxtheme.5A48A0DC

- 디버거 탐지를 하는 루틴이 있어서 잘 확인하며 분석하길 바란다.


0012F498   0040853F  /CALL to CreateWindowExA from axoleoyt.00408539

0012F49C   00000000  |ExtStyle = 0

0012F4A0   004109DC  |Class = "static"

0012F4A4   0040DA64  |WindowName = "Inter your Name:"

0012F4A8   40000000  |Style = WS_CHILD

0012F4AC   00000004  |X = 4

0012F4B0   00000022  |Y = 22 (34.)

0012F4B4   00000122  |Width = 122 (290.)

0012F4B8   0000001E  |Height = 1E (30.)

0012F4BC   004902C0  |hParent = 004902C0 ('GlobalAppl',class='MyClass')

0012F4C0   00000000  |hMenu = NULL

0012F4C4   00400000  |hInst = 00400000

0012F4C8   00000000  \lParam = NULL 

윈도우를 생성한다. 이때 생성되는 이름은 Inter your Name이다. (Inter는 죽은 사람을 매장한다는 뜻을 가지고 있는데 이름을 적으라 이건가. 뭐지 이 악성코드는 ㅎㅎㅎ 재미진다.)



0012F498   00408575  /CALL to CreateWindowExA from axoleoyt.0040856F

0012F49C   00000000  |ExtStyle = 0

0012F4A0   0040DA8C  |Class = "static"

0012F4A4   0040DA78  |WindowName = "Inter your mail:"

0012F4A8   40000000  |Style = WS_CHILD

0012F4AC   00000004  |X = 4

0012F4B0   00000004  |Y = 4

0012F4B4   00000122  |Width = 122 (290.)

0012F4B8   0000001E  |Height = 1E (30.)

0012F4BC   004902C0  |hParent = 004902C0 ('GlobalAppl',class='MyClass')

0012F4C0   00000000  |hMenu = NULL

0012F4C4   00400000  |hInst = 00400000

0012F4C8   00000000  \lParam = NULL

위와 같다. 단, 윈도우 이름은 Inter your mail이다.



0012DD00   1310169A  /CALL to CreateProcessA from 13101694

0012DD04   00000000  |ModuleFileName = NULL

0012DD08   13108010  |CommandLine = "C:\WINDOWS\System32\svchost.exe"

0012DD0C   00000000  |pProcessSecurity = NULL

0012DD10   00000000  |pThreadSecurity = NULL

0012DD14   00000000  |InheritHandles = FALSE

0012DD18   00000004  |CreationFlags = CREATE_SUSPENDED

0012DD1C   00000000  |pEnvironment = NULL

0012DD20   00000000  |CurrentDir = NULL

0012DD24   0012E008  |pStartupInfo = 0012E008

0012DD28   0012E05C  \pProcessInfo = 0012E05C

정상파일로 속이기 위한 목적과 파일로 남기지 않기 위함이라 생각하면 된다. 코드 인젝션을 위해 프로세스를 생성한다.

(코드 인젝션이란, 프로세스에 악성 데이터를 주입하는 방식이다.)


13103000에 있는 데이터를 svchost.exe에 주입시킨다.




svchost.exe는 C&C IP를 불러온다.



136.243.248.168:443

80.78.245.84:443

185.20.225.58:443

91.237.198.93:443

109.120.169.184:443

93.179.68.82:443

144.76.232.55:443

93.170.137.27:443

악성코드의 C&C는 위와 같다.



원격제어형 악성코드였다. 대략적으로 알아 들을 수 있는건 위치정보 가져오는 것(아마 GeoIP를 사용하는 것으로 보임), 아마도 루트킷 설치(?), 파일을 다운받거나, 파일을 실행시키거나, 메모리에 올리거나, 랜덤으로 명령을 실행하는 기능을 가진 것으로 보인다.





0093F9CC   0950182A  /CALL to CreateProcessA from svchost.09501824

0093F9D0   00000000  |ModuleFileName = NULL

0093F9D4   09506258  |CommandLine = "C:\WINDOWS\System32\svchost.exe"

0093F9D8   00000000  |pProcessSecurity = NULL

0093F9DC   00000000  |pThreadSecurity = NULL

0093F9E0   00000000  |InheritHandles = FALSE

0093F9E4   00000004  |CreationFlags = CREATE_SUSPENDED

0093F9E8   00000000  |pEnvironment = NULL

0093F9EC   00000000  |CurrentDir = NULL

0093F9F0   0093FCD4  |pStartupInfo = 0093FCD4

0093F9F4   0093FD28  \pProcessInfo = 0093FD28 

생성된 svchost.exe는 다시 svchost.exe라는 프로세스를 생성한다.

처음엔 무슨 이유인지 몰랐지만, C&C를 랜덤으로 연결시킨 후에 연결되면 프로세스를 생성하여 코드 인젝션을 한다.

이 코드 인젝션된 svchost.exe는 SMTP를 사용하여 정보를 유출하는 역할을 한다.




메일을 보내기 위해 구성된 문자열들이 보이며 접속되는 것을 볼 수 있다.

'분석생활' 카테고리의 다른 글

미국형 선입금 사기  (0) 2015.06.09
I am waiting for your reply  (0) 2015.06.08
스미싱 조직  (0) 2015.06.04
민사사건 출석 명령서 스미싱 분석  (0) 2015.06.02
여러 사이트를 이용한 파밍 유포  (3) 2015.05.31
Comments