Petya와 유사한 Diskcoder (혹은 Bad Rabbit) 랜섬웨어가 10월25일 최초 동유럽에서 보고 되었다.
유포 방식은 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.exe이 cscc.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) | 2018.01.17 |
---|---|
랜섬웨어에서 비트코인 실행으로 변경된 LNK(바로가기)파일 주의 (0) | 2018.01.12 |
ISO파일 첨부 악성코드 유포 주의 (0) | 2017.10.19 |
10년 가까이 군 정보 노리고 있는 오퍼레이션 비터 비스킷 (0) | 2017.10.16 |
이모텟 악성코드가 다운로드하는 추가 모듈 분석 (네트워크 전파 모듈) (0) | 2017.09.29 |
댓글