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

파일의 엑세스 권한을 변경하는 Matrixran 랜섬웨어

by 알 수 없는 사용자 2017. 4. 19.

지난 4 7 Matrixran 랜섬웨어가 국내로 유포되고 있음을 안랩의 악성코드 위협 분석 및 클라우드 진단 시스템인 ASD(AhnLab Smart Defense)에서 확인되었다. 해당 랜섬웨어는 RIG-Exploit Kit에 의해 유포되었으며 유포에 사용된 취약점은 CVE-2016-0189 / IE_VB, CVE-2015-2419 / IE _JSON이다. 위 취약점에 노출된 사이트에 접속하는 사용자는 RIG-Exploit Kit에 의해 사용자 모르게 시스템에 랜섬웨어가 감염될 가능성이 있다.

 

해당 랜섬웨어가 Matrixran 랜섬웨어라고 불리는 이유는 랜섬웨어의 첫 번째 버전에 감염되었을 경우 암호화 파일 확장자를 .matrix로 변경시켰기 때문이다. 하지만 현재 유포되고 있는 버전은 세 번째 버전으로서 암호화 파일 확장자는 변경하지 않는다.

 

또한, Matrixran 랜섬웨어는 감염됐을 때 생성되는 HTA 랜섬노트에 사용자는 미연방 정보부의 법률을 위반했다며 체포되지 않으려면 돈을 지급하라는 메시지를 띄운다.

 

[그림 1] 감염됬을 때 생성되는 .HTA 화면


랜섬웨어가 실행되면 [1]과 같은 파일들을 생성하고 %temp% 경로에 자신을 복제한 파일과 그 파일을 삭제하는 배치파일을 다량 생성한다.

 

파일 생성 경로

의미

C:\Users\[사용자명]\AppData\Roaming\Microsoft

\Windows\Start Menu\Programs\Startup\[랜덤8자리].exe.lnk

감염시킬 수 있는 파일을 모두 감염 시키면 [랜덤8자리].exe.lnk 파일을 삭제하고 랜섬웨어 노트를 띄우는 .hta 파일을 시작 프로그램에 등록

C:\Users\[사용자명]\AppData\Roaming\Microsoft

\Windows\Start Menu\Programs\Startup\[랜덤16자리].hta

%Appdata%\[랜덤16자리 폴더 명]\[랜덤8자리].exe

Matrixran 랜섬웨어

%Appdata%\[감염자ID].pek

암호화와 관련된 파일 1

%Appdata%\[감염자ID].sek

암호화와 관련된 파일 2

%Appdata%\errlog.txt

엑세스 거부 등 감염 시 일어나는 에러에 대한 기록

%Appdata%\[랜덤16자리].afn

0kb 크기의 파일로서 해당 파일 존재여부를 통해 처음 감염인지를 판단 1

%Appdata%\[랜덤16자리].ast

0kb 크기의 파일로서 해당 파일 존재여부를 통해 처음 감염인지를 판단 2

%Appdata%\[랜덤16자리].hta

랜섬노트이며 감염이 끝났을 때 시작 프로그램에 추가

%Temp%[랜덤16자리].elst

하드디스크, USB, 네트워크 드라이브 등을 탐색하며 어떠한 파일들이 있는지 크롤링한 결과를 담은 파일

WhatHappenedWithFiles.rtf

감염된 폴더마다 존재하는 랜섬노트

[1] 생성되는 파일 설명

 

생성되는 파일 중 elst 확장자를 갖는 파일을 보면 다음과 같은 내부 데이터를 갖는데 이러한 정보들은 C&C 주소에 업로드된다. 특히 [PRIORITY] – [PRIORITY_END] 사이의 내용은 랜섬웨어 제작자가 관심을 두는 확장자를 포함하고 있다. (DBS, DBF, DBX, MDB, MDF, SDF, XLS, DOC, ODS, ODT, PDF, JPG, TXT)

 

[그림 2] [랜덤16자리].elst 내부 데이터

 

또한, C드라이브, 네트워크 드라이브, USB 드라이브 등 파일 시스템 드라이브들을 검색하면서 발견한 확장자를 모두 [ALL] - [ALL_END] 사이의 태그에 저장하며 자신이 확인한 드라이브 목록은 [PLACES] - [PLACES_END] 태그로 구분하여 저장한다.

 

구분자

의미

[ALL] – [ALL_END]

시스템에 존재하는 모든 확장자

[PRIORITY] – [PRIORITY_END]

파일 암호화 확장자 (ex : TXT, XLS, PPT ..)

[PLACES] – [PLACES_END]

검색한 드라이브 목록

[2] *.elst 파일 내부 구분자 설명

 

아래 WhatHappenedWithFiles.rtf 파일은 감염시킨 폴더 내부마다 생성되는 랜섬노트이며 TAVAb1nrt1pLc2ui 옆에 16자리(8바이트) 숫자는 사용자의 ID를 나타낸다.(현재는 모자이크 처리 상태)

 

랜섬웨어 제작자는 해당 사용자 ID 정보를 통해서 사용자를 식별할 것으로 판단된다.


[그림 3] WhatHappenedWithFiles.rtf 파일

 

Matrixran 랜섬웨어는 암호화에 필요한 파일들을 %APPDATA% 경로에 생성하고 드라이브를 탐색하며 감염시킬 파일목록들을 메모리에 저장하는데 이 때 폴더명, 파일 확장자에 따라 감염 여부를 결정하게 된다.

 

감염에 제외되는 폴더명

\WINDOWS

\PROGRAM FILES

\GAMES

\APPDATA\

\APPLICATION DATA\

\LOCAL SETTINGS\

\TEMP\

\PROGRAMDATA\

\BOOT\

\MSOCACHE\

\DEFAULT USER\

\SAMPLE

\EXAMPLE

\I386

\TEMPORARY

\TOR BROWSER\

\BROWSER

BROWSER\

[3] 감염 제외 폴더 명


감염에 제외되는 확장자명

AST, AFN, EXE, LNK, HTA, PEK, SEK, TMP, ICO, SYS, DAT, RTF, INF, DLL, DAT, REG, DRV, DEV, PIF, MBR, INI, XML, TTF, LOG, JA, COM, BAT, CMD, VBS, JS, CFG, NFO, MSI, CHK, DMP, MUI, DUN, ISP, ISW, CAB, EFI, HELP, MSU, BIN, LNG, HTM, CHM, MP3, OGG, WMA, GIF, CUR, ANI

[4] 감염 제외 확장자명

 

위에서 언급한 확장자, 폴더명을 제외한 나머지 파일에 대해 Matrixran 랜섬웨어는 암호화를 수행하며 네트워크가 차단된 상태에서도 사용자 시스템을 감염시킨다.

 

[그림 4] 감염된 txt 파일과 감염 폴더에 생성되는 rtf 파일

 

랜섬웨어의 감염 코드를 살펴보면 암호화시키려는 파일 크기를 먼저 구하고 암호화를 시키는데 파일 크기를 0x4로 나누어 특정 부분들을 암호화시킨다. 그러므로 4바이트 이하의 파일들은 감염목록에서 제외된다.

 

[그림 5] 파일 암호화 과정

 

[그림 5]에서 명시된 것처럼 파일 크기를 0x4로 나누었을 때 암호화가 이루어지는 부분은 1,2,4번째 부분이다. 그리고 원본 파일의 끝에 [감염자 ID].sek 파일의 데이터(총 크기 0x3DC)와 암호화된 0x10C만큼의 데이터가 덧붙여져 총 파일의 크기는 원본사이즈에 0x4E8(0x3DC + 0x10c)만큼 더해진다.

 

그리고 Matrixran 랜섬웨어는 파일 끝에서의 0x4E8 위치에 0xD1CD9549 문자열을 확인하여 암호화된 파일인지를 확인한다.

 

[그림 6] 암호화된 txt 파일

 

시스템에 존재하는 파일들을 감염시킬 때 다른 랜섬웨어와 달리 Matrixran 랜섬웨어는 특정 파일에 대해 접근권한이 없는 경우 CACLS, ATTRIB 프로그램을 이용하여 파일에 대한 권한 변경 및 속성을 제거 기능을 수행한다. 이때 사용되는 명령어는 5와 같다.

 

명령어

CACLS "[파일명]" /E /G %사용자명%:F /C & ATTRIB -R -A -H "[파일명]"

[5] ACL 권한 변경 기능

 

위 명령어는 파일에 대한 모든 권한을 %사용자명%에 부여하고 ATTRIB 명령어를 통해 해당 파일에 대한 읽기, 숨김, 보관 속성을 지우는 기능을 수행한다.

 

Matrixran 랜섬웨어는 파일 암호화 기능 외에도 WMIC 호출을 통한 볼륨 쉐도우 삭제 기능과 C&C 서버에 접속하여 암호화시킨 파일에 대한 정보를 서버에 전달하는 기능을 갖고 있다.

 

WMIC 명령어

process call create "cmd.exe /c vssadmin.exe delete shadows /all /quiet & bcdedit.exe /set {default}"

[6] WMIC 명령어 수행

 

명령어

기능

vssadmin.exe delete shadows /all /quiet

볼륨 쉐도우 삭제

bcdedit.exe /set {default}

Windows 오류 복구 알림창 표시 끔

bcdedit.exe /set {default} bootstatuspolicy ignoreallfailure

복구 모드 사용 안함

[7] 볼륨 쉐도우 삭제 기능

 

현재 랜섬웨어의 DNS 서버가 차단되어 있어 어떤 정보를 유출하는지 확인할 수 없지만, 분석 결과 다음과 같은 정보들이 유출되는 것을 예상할 수 있다.

 

[그림 7] DNS 쿼리 실패

 

C&C 주소

http://**at6.s*6.r*3.com.ua/uploadexlist.php

http://**at6.s*6.r*3.com.ua/addrecord.php?apikey=” “&compuser=” “&sid=” ”&phase=” ”

[표 8] 네트워크 접속 시도

먼저 Matrixran 랜섬웨어는 C&C 서버의 /uploadexlit.php 페이지에 *.elst 파일에 저장된 데이터를 전송한다. 이때 전송되는 데이터는 위에서 언급한 것처럼 사용자 시스템에 존재하는 파일들의 확장자 정보와 시스템 내에서 암호화시킬 확장자 정보를 전달한다.

 

/addrecord.php 페이지에는 사용자 이름, 감염 ID 값 등을 전달한다.

 

/addrecord.php에 전달되는 파라미터

의미

apikey=

랜섬웨어가 생성하는 16자리 문자열

compuser=

사용자 이름, 컴퓨터 정보

sid=

랜섬웨어가 생성하는 16자리 sid

phase=

랜섬웨어의 동작상태(START, LOCAL_랜덤 16자리 문자열, WIN_운영체제 버젼정보_32|ADMIN_YES, FILESEXLIST )

[9] /addrecord.php에 전달되는 파라미터 설명

 

랜섬웨어의 특성상 완벽한 복구 방법이나 예방법은 없지만, 피해를 최소화하기 위해서 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다.

 

또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

 

현재 V3 에서 Matrixran 랜섬웨어는 다음 진단명으로 진단하고 있다.

Trojan/Win32.Matrixran (2017.04.08.00)

댓글