본문 바로가기

Analysis

04. Shamoon

Dropper, MBR Wiper, Reporter 의 세개의 악성코드로 이루어진 Shamoon 악성코드 중 MBR Wiper를 분석한다.


Malware

Shamoon 

OS 

Windows 7 

action

MBR Wiper 




아래 그림 1은 Shamoon 악성코드의 전체 도식도이다. Dropper가 실행되게 되면, Dropper는 MBR을 변조하는 Wiper와 C&C 서버와 통신하는 Reporter, 만약 운영체제가 64비트 일 경우에는 64비트 Dropper를 드롭하고 실행시킨다. Wiper의 경우에는 MBR을 변조 및 파일을 삭제하며 Reporter 의 경우에는 C&C 서버와 통신으로 상황을 보고하는 역할을 한다.

[그림 1] 전체 도식도


MBR Wiper 파일을 실행하게 되면 공격 대상 PC의 MBR 변조를 위해 Harddisk와 Partition을 찾는다.

[그림 2] Harddisk

[그림 3] Partition


Harddisk 와 Partition을 문자열로 저장해 둔 뒤에는 hdv_725x.sys 라는 파일을 실행하는데, 해당 파일은 Dropper 에서 드롭되는 파일이다. hdv_725x.sys 파일의 주요 행위는 MBR에 접근해 MBR을 변조하는 것이며 따라서 MBR Wiper에서는 해당 파일을 실행한다.

[그림 4] hdv_725x.sys 불러옴

[그림 5] hdv_725x.sys 불러옴

[그림 6] hdv_725x.sys 불러옴


명령어를 이용해 hdv_725x.sys 파일을 서비스로 등록한 후에 해당 서비스를 실행하게 한다. 해당하는 명령어는 "type= kernel start= demand binpath= C:\\Window\hdv_725x.sys 2>&1 >nul" 이다.

[그림 7] hdv_725x.sys 실행


hdv_725x.sys 를 실행할 때에 플래그를 갖고 실행하게 되는데 F,R,E 세개의 플래그 중 하나를 갖고 실행한다. F의 경우에는 GRANT 라는 모듈을 사용해 MBR 에 덮어씌울 값을 생성하며 그 값을 덮어씌우게 되고 R과 E 같은 경우에는 단순 랜덤바이트를 생성해 MBR에 값을 덮어씌우게 된다.

[그림 8] hdv_725x.sys 실행


E 플래그를 갖고 실행하게 되면 날짜 설정도 더불어 되는데, 해당하는 날짜는 2012년 8월이다.

[그림 9] 날짜 설정

이후에는 레지스트리 값을 탈취해 공격 대상 PC에 디스크 개수, 파티션 개수 등을 알아낸다.

[그림 10] 레지스트리 값 탈취

[그림 11] 레지스트리 값 탈취



파티션 갯수를 탈취한 뒤에는 공격 대상 PC에 존재하는 전체 파일을 알아내 핸들로 갖는다.

[그림 12] 전체 파일 찾음


이후 과정은 생성되는 쓰레드에서 진행되며 주소를 406C20으로 갖는 쓰레드에서는 파일의 삭제를, StartAddress로 갖는 쓰레드에서는 이전 과정들이 정상적으로 이루어지지 않았을 경우 직접적인 하드웨어 통신을 한다.

[그림 13] 쓰레드 생성


406C20 주소로 생성되는 쓰레드에서는 갖고 있는 전체 파일의 핸들을 계산해 파일을 삭제한다.

[그림 14] 파일 삭제


주소를 StartAddress로 갖는 쓰레드에서는 이전 작업들이 제대로 이루어졌는지를 확인하며 만약 제대로 이루어지지 않았을 경우에는 하드웨어 직접 통신으로 직접 명령어를 보내 동일한 행위를 일어나게 한다.

[그림 15] 하드웨어 직접통신


모든 행위를 완료한 후, 공격 대상 PC를 재부팅 시킨다.

[그림 16] 재부팅


반응형

'Analysis' 카테고리의 다른 글

06. LokiBot  (0) 2019.05.30
05. TrickBot  (0) 2019.05.29
03. CVE-2018-4878  (0) 2019.01.04
02. GandCrab Ransomware V5.0  (0) 2018.11.30
01. USCYBERCOM Malware Alert's APT Malware  (0) 2018.11.22