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

워드 문서파일과 자바스크립트 형태로 유포되는 TrickBot

by 분석팀 2019. 8. 28.

최근 국내 기업으로부터 난독화 되어 있는 스크립트 샘플이 접수되었다. 이는 2019년 초부터 해외에서 대량으로 유포되고 있는 Trickbot 다운로더로, 매크로를 사용하는 문서 파일 내부에 Javascript 파일이 내장되어 있어 이를 실행하면 Javascript가 악성 실행 파일을 다운받는 형태이다.

 

1.     문서 형태로 유포

 

WORD문서를 실행하면 아래 그림과 같이 이전 버전에 만들어진 문서라는 가짜 문구와 함께 콘텐츠 사용을 클릭하라는 문장이 적혀있다. 이는 VBA 매크로를 실행시켜 악성 스크립트를 동작하려는 속임수로 PC사용자는 가급적 알 수 없는 문서의 콘텐츠 사용버튼 누르는 것을 피해야 한다. 해당 문서의 특징은 본문 내부에 흰 글씨로 스크립트가 숨겨져 있다.

 

[그림 1.] 현재 유포되는 워드 문서의 형태
[그림 2.] 가짜 문구가 가리키는 '콘텐츠 사용' 버튼

이후 WORD문서 프로그램의 콘텐츠 사용이라는 버튼을 누르게 되면 사용자가 모르게 스크립트가 동작하게 되며 간략 행위도는 아래와 같다.

 

 

2.     행위 요약도

 

[그림 3.] 행위 요약도(문서부터 스크립트까지)

 

1)     문서(DOC)파일의 매크로를 실행 시 임의확장자를 갖는 JS스크립트 파일을 생성한다.
       ㄴ(
임의 확장자 : .ini , _backup, .rtf, .txt, _dec, .~, .dat 등 다양)

 

2)     문서 파일을 종료 시 wscript.exe를 통해 생성된 스크립트 파일을 실행한다.

 

3)     스크립트는 아래 유형과 같은 가짜 메시지 박스를 출력하며 버튼을 누르지 않아도 30초 이후 종료된다. 이는 사용자를 속이기 위해 “MS Word error”, “Insufficient permissions” 등 가짜 메시지를 사용했다.

 

[그림 4.] 가짜 메시지 박스의 변화(과거 -> 현재)

 

4)     메시지 박스가 종료되면 쓰레기 코드로 시간 지연 행위를 한다. 이때 CPU 사이클이 높아지며 사용자 PC환경에 따라 지연 시간은 다르다. 분석 PC에선 약 4분 정도 소요되었다.

 

5)     이후 샌드박스 및 분석PC를 우회하기 위한 용도로 PC의 정보(프로세스 정보, OS정보 등)를 수집한 뒤 특정 기준으로 샌드박스인 경우 Error를 일으켜 종료된다.

 

6)     환경 체크가 끝나면 해당 스크립트를 시작 폴더(Startup 폴더)“shell.jse”이름으로 복사하여 부팅 시마다 스크립트가 실행되도록 한다.

 

7)     이후 공격자의 주소(hxxp://185.159.82.xx/…./)에 연결하여 수집하였던 PC 정보를 전송하고 %TEMP%경로에 랜덤숫자명으로 악성파일을 다운로드 및 실행한다.

 

 공격자 서버로부터 다운로드되는 대부분 악성코드는 Trickbot이라는 뱅킹 및 정보 탈취형 악성코드로 윈도우 디펜더를 종료하고 ‘C:\User\(사용자계정)\AppData\Roaming\(특정이름)\data\’에 사용자 정보를 수집하여 유출하는 등의 악성 행위를 한다.

 

 

3.     가상환경 우회 기법(Anti-VM)

 

해당 자바 스크립트에서 사용된 안티 기법은 감염된 PC의 정보를 수집한 뒤 특정 문자열과 비교하는 것으로 자세한 정보는 아래와 같다.

 

1) 수집 정보

a. WMI쿼리를 이용해 OSCaptionVersion 정보 등
b. Process
명 및 Process 경로명

 

2) 비교 방법

 

위의 수집된 정보 문자열(a. b. 항목)의 전체길이가 1,300(혹은 1,400) 이하인지 비교하여 길이가 적은 경우, 가상환경으로 판단하고 종료하는 구조이다. 그리고 실행중인 프로세스 중 아래의 문자열을 포함하는 경우 분석 환경으로 판단하여 악성 프로그램을 다운로드 하지 않고 에러를 발생시킨다.

<비교 문자열>

2B.exe

Procmon

Wireshark

Temp\iexplore.exe

ProcessHacker

vmtoolsd

VBoxService

python

Proxifier.exe

Johnson

ImmunityDebugger.exe

lordPE.exe

ctfmon.exe*JOHN-PC

BehaviorDumper

anti-virus.EXE

AgentSimulator.exe

VzService.exe

VBoxTray.exe

VmRemoteGuest

SystemIT|admin

WIN7-TRAPS

Emily\AppData

PROCMON

procexp

tcpdump

FrzState2k

DFLocker64

vmware

LOGSystem.Agent.Service.exe

C:\Users\user\

C:\Users\milozs\

windanr.exe

gemu-ga.exe

HAPUBWS

BennyDB.exe

Peter Wilson

Hong Lee

가상 PC환경으로 예를 들면 아래와 같다가상 환경(VM)에서 a, b 항목 수집 정보 예시)

C:\Users\(사용자계정)\AppData\Local\Temp
Microsoft Windows 7 Ultimate K 6.1.7601

System Idle Process

*null
vmtoolsd.exe //
vmware를 사용하는 경우 존재하는 프로세스로 필터의 대상이 된다.
*null
explorer.exe
*C:\Windows\Explorer.EXE
VMwareUser.exe
*C:\Program Files\VMware\VMware Tools\VMwareUser.exe
wscript.exe
*C:\Windows\system32\wscript.exe
...(
이하 생략)

, 비교 문자열 중 ‘vmtoolsd’와 해당 환경에 vmtoolsd.exe프로세스가 존재하므로 해당 PC에서는 동작하지 않는다.

 

4.     결론

 

해당 악성코드는 지금도 유포되고 있으며, 백신업체가 진단하지 못하도록 지속해서 바뀌고있다최근에는 문서의 매크로 코드에 ActiveDocument.PrintOut 이라는 프린트 객체를 추가하여 매크로 실행 시 인쇄 작업 창을 띄우는 등, 정상 문서로 보이기 위한 여러 방법이 추가되고 있어 사용자의 각별한 주의가 필요하다.

 

[그림 5.] 정상문서로 사용자를 속이기 위해 띄운 '인쇄 작업창'

 

한편 Ahnlab V3제품에서는 해당 악성코드를 다음과 같은 진단명으로 진단하고 있다.

 

<진단명>

-       VBA/Dropper.S1~S6

-       Win-Trojan/Suspig9.Exp

-       Trojan/Win32.Trickbot

 

댓글