Petya와 유사한 Diskcoder (혹은 Bad Rabbit) 랜섬웨어가 1025일 최초 동유럽에서 보고 되었다.

유포 방식은 DBD (Drive By Download) 로 추정 되며 가장 상위의 드롭퍼는 Adobe Flash Player 설치파일로 위장 되었다.

[그림 1] - 구조 흐름도


드로퍼는 주요 악성기능을 수행하는 DLL 파일을 드롭 한 후 Rundll32.exe 이용하여 실행한다. 아래 표와 같이 인자 값이 주어지는데 해당 인자 ‘15’는 추후 악성코드가 재부팅 명령을 수행할 때 시간 조건으로 사용한다. 자세한 내용은 아래에 언급된다


생성 경로 및 파일명

C:\windows\infpub.dat

실행 명령

C:\windows\system32\rundll32.exe C:\windows\infpub.dat”,#1 15


위와 같이 실행 된 DLL은 아래와 같은 기능을 한다.

- MBR 변조 및 부트 파티션 암호화 관련 파일 드롭

- 파일 암호화

- 네트워크 전파


MBR 변조 및 부트 파티션 암호화을 수행하는 파일은 위 infpub.dat에서 드롭되며 그 내용은 아래와 같다.


[MBR 변조]

생성 경로 및 파일명

C:\Windows\dispci.exe

rhaegal 스케줄 명령

schtasks /Create /RU SYSTEM /SC ONSTART /TN rhaegal /TR "C:\Windows\system32\cmd.exe /C Start

"" "C:\windows\dispci.exe" -id [랜덤숫자] && exit"


MBR
변조를 수행하는 dispci.exe파일은 schtasks를 통해 위와 같은 명령의 스케줄로 등록되어 동작한다. rhaegal이라는 이름의 스케줄로서 시스템 계정으로 ‘-id [랜덤숫자]’ 인자를 주어 dispci.exe를 실행하라는 의미를 가진다.

아래 그림과 같이 해당 파일 내부 Resource섹션에 MBR변조에 사용하는 데이터를 가지고 있으며, 해당 내용을 읽어 덮어씀으로써 MBR 변조가 수행된다.

[그림 2] - dispci.exe Resource영역에 존재하는 MBR변조 데이터


변조 후에 원본 MBR은 부트 파티션 하위 위치에 백업되며 사용자 정보 및 AES 키 값은 공개키로 암호화된다.


[부트 파티션 암호화]

생성 경로 및 파일명

C:\Windows\cscc.dat

레지스트리 등록

HKLM\SYSTEM\CurrentControlSet\Services\cscc\\ImagePath

"cscc.dat" -> 대상 파일

 

HKLM\SYSTEM\CurrentControlSet\Services\cscc\DisplayName

"Windows Client Side Caching DDriver" -> 서비스 이름

 

HKLM\SYSTEM\CurrentControlSet\Services\cscc\Type

0x1 -> 커널 초기화시 해당 드라이버가 로드


해당 파일은 오픈 소스로 제공되는 파티션 암호화 솔루션 드라이버 파일이다. 해당 파일은 재부팅 후 로드되어 동작한다. 또한 상위에 언급된 dispci.exe에서 DeviceIoControl API를 이용하여 ControlCode를 해당 드라이버에 보내어 제어 및 수행하게 함으로써 부트 파티션 암호화가 일어난다.

[그림 3] – dispci.execscc.dat(dcrypt)를 이용하는 부분

 

가장 상위에서 언급 된 infpub.dat은 자신이 받은 인자 값 ‘15’와 파일이 실행된 시간을 바탕으로하여 계산 된 값을 합한 숫자(분 단위)만큼 후에 재부팅 될 수 있도록 명령을 수행한다. 이때 한번 재부팅하면 해당 드라이버 파일이 로드 되며 실행된다.


drogon 스케줄 명령

schtasks /Create /SC once /TN drogon /RU SYSTEM /TR "C:\Windows\system32\shutdown.exe /r /t 0 /f" /ST [재부팅시간]


위 스케줄은 시스템 재부팅을 한번 수행하는 명령이며, 아래 그림4는 MBR 및 부트 파티션이 모두 변조 및 암호화되고 재부팅 된 후에 보이는 화면이다.


[그림 4] – 부팅 변조 화면

 

[파일 암호화]

랜섬웨어의 가장 큰 특징으로 파일들에 대한 암호화를 수행하는데 확장자 비교 매칭으로 대상 파일들을 암호화 한다. CryptGenRandom API와 특정 루틴을 통해 AES 키를 생성하며 공개키는 코드에 하드코딩되어 있다.

[그림 5] – 하드코딩 된 공개키


감염

대상

확장자

.3ds.7z.accdb.ai.asm.asp.aspx.avhd.back.bak.bmp.brw.c.cab.cc.cer.cfg.conf.cpp.crt.cs.ctl

.cxx.dbf.der .dib.disk.djvu.doc.docx.dwg.eml.fdb.gz.h.hdd.hpp.hxx.iso.java.jfif.jpe.jpeg.jpg

.js.kdbx.key.mail.mdb.msg .nrg.odc.odf.odg.odi.odm.odp.ods.odt.ora.ost.ova.ovf.p12.p7b

.p7c.pdf.pem.pfx.php.pmf.png.ppt.pptx.ps1 .pst.pvi.py.pyc.pyw.qcow.qcow2.rar.rb.rtf.scm

.sln.sql.tar.tib.tif.tv.vb.vbox.vbs.vcb.vdi.vfd.vhd.vhdx .vmc.vmdk.vmsd.vmtm.vmx.vsdx.vsv

.work.xls.xlsx.xml.xvd.zip

 [표 1] – 암호화 대상 확장자

파일이 모두 암호화 된 후에 [그림 6]과 같이 Readme.txt라는 랜섬노트를 확인 할 수 있으며, 지불 페이지는 [그림 7]과 같다.

[그림 6] – Readme.txt 랜섬노트

[그림 7] – 지불 페이지

[계정정보 획득(Mimikatz)]

위의 방식 외에도 Diskcoder 랜섬웨어는 [랜덤숫자].tmp파일을 생성하여 원격지 접속을 위한 계정정보 획득을 시도한다.

생성 경로 및 파일명

C:\Windows\[랜덤숫자].tmp


[ADMIN$ SMB를 이용한 전파]

Diskcoder 랜섬웨어는 자신을 추가 전파하기 위해 ADMIN$ 공유폴더 및 SMB취약점을 이용한다.

SMB 취약점을 이용하기 위해 139 445 포트를 검색하며 IPC$ 연결을 위해 대입 할 특정 사용자 계정이름과 암호 리스트를 가지고있다. 연결이 수립되면 ADMIN$를 통해 파일복사를 진행한다.

아래는 악성코드가 대입하는 사용자 계정이름과 암호의 일부이다.


사용자 계정 이름

암호

administrator

netguest

superuser

nasadmin

nasuser

ftpadmin

ftpuser

backup

operator

other user

support

manager

rdpadmin

rdpuser

user-1

User1

Guest

Admin

Administrator

123321

zxc321

zxc123

qwerty123

qwerty

qwert

qwe321

qwe123

77777

55555

111111

password

test123

admin123Test123

Admin123

user123

User123

guest123

Guest123

 [표 2] – 취약한 계정 정보 리스트(일부) 


V3 제품군에서는 DiskCoder (혹은 Bad Rabbit) 랜섬웨어를 다음과 같은 진단명으로 탐지하고 있다.

 

<V3 제품군 진단명>

- Trojan/Win32.Diskcoder (2017.10.25.04)

- Trojan/Win64.WinCred (2017.10.25.04)

- Trojan/Win32.WinCred (2017.10.25.04)

신고
Posted by chloechoi