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 |