'SMB'에 해당되는 글 2건

  1. 2017.10.27 Petya와 유사한 Diskcoder(혹은 Bad Rabbit) 랜섬웨어
  2. 2009.10.13 Conficker 조치 가이드 (1) (2)

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

1. Conficker 개요
-------------------------------------------------------------------------------------------------------

해당 악성코드는 윈도우 보안 취약점(MS08-067), 관리공유 및 이동디스크를 통해 빠르게 확산되어 네트워크 자원(랜덤 및 B클래스 IP대역을 대상으로 Remote TCP 445포트로 대량의 트래픽 발생)을 소모시킨다. 추가적으로 진단을 어렵게 하는 기법이 사용되었는데, 악성코드 원본을 Svchost.exe Remote Handle(원격핸들)로 오픈하여 실행되며, 악성코드가 등록한 레지스트리 서비스 및 악성파일 원본에 Read권한을 없애 파일/레지스트리에 접근을 불가능하게 한다.


2. Conficker 증상 확인 방법
-------------------------------------------------------------------------------------------------------

 A. 네트워크를 통한 확인 방법

[주요 증상]

- TCP 445 포트로 다량의 트래픽을 발생

- DNS 쿼리를 후킹하여 보안 사이트만 접속되지 않도록 하는 증상 발생

(ex) MS 사이트, ahnlab.com

 

[의심 증상]

- 랜덤 및 B클래스 IP대역을 대상으로 Remote TCP 445포트를 통한 대량의 트래픽 발생시키는 시스템 존재

 

[세부 확인]

- 의심 증상이 발생되는 시스템에서 패킷 덤프를 저장한 후 Wireshark 등의 툴을 이용하여 확인한다. (네트워크 환경에 따라 다르기 때문에 네트워크 담당자의 도움을 받아 메인 라우터나 혹은 Conficker 의심 증상이 발생하는 네트워크 단에서 저장한다.)

 

1. Filter 항목에 smb 입력한 후 엔터



  2. Conficker
임을 확인하는 방법

 A) 취약점 서비스 String 검색 : ‘Edit’ > ‘Find Packet’을 선택, Search In 항목의  ‘Packet list’ 선택, 최종적으로 String을 선택한 후 NetPathCanonicalize(Conficker가 이용하는 취약점 서비스명) 입력하고 Find를 클릭한다.(추가 의심정보 : IPC$를 대상으로 Scanning, srvsvc API 요청)



B) 동일한 취약점에 대한 다른 검색 방법 : Filter항목에 srvsvc.opnum == 31 입력 후 엔터
- srvsvc API(취약한 NetPathCanonicalize 함수를 포함)에 바인드 요청하는 취약점 패턴



- 문자열 중에 \..... 되어 있는 부분에 ‘2e 00 2e 00 5c 00 2e 00 2e 00’ 값이 있는지 확인하며, 이 문자열은 Conficker에서 많이 볼 수 있는 취약점 패턴이다.



 

B.    안리포트를 통한 확인 방법(의심 시스템 찾은 경우) 

- Packet 덤프 분석이 아니더라도, 의심 시스템에서 AhnReport를 통하여 Conficker인지 확인할 수 있다.
- 네트워크 연결 : svchost.exe 프로세스를 이용하여, 원격 포트 445를 통해 SYN Sent 시도

신고
Posted by 비회원