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

Petya와 유사한 Diskcoder(혹은 Bad Rabbit) 랜섬웨어

by 비회원 2017. 10. 27.

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)

댓글0