1. 분석 도구

1.1 Virus Total [1]

- 무료로 파일 검사를 제공하는 웹사이트로, 파일, URL 내의 바이러스를 검사해주는 사이트 (IP 조회도 가능)

 

1.2 HxD [2]

- 파일에 저장된 HEX(16진수) 값을 읽고 수정하는데 이용

 

1.3 rtfdump.py [3][4]

- Github에서 다운받을 수 있는 파이썬으로 작성된 RTF 파일을 분석하는데 사용되는 Open Source

 

1.4 oledump.py [8]

- OLE 파일을 분석하는 프로그램

 

2. 분석

 Virus Total 조회

- 실습에서 진행한 RTF 파일을 Virus Total에서 조회한 결과는 다음과 같음

> 58개의 벤더사 중 39개의 벤더사가 악성 파일로 탐지

> 탐지명을 확인해보면 CVE-2017-0199와 관련된 것임을 알 수 있음

[사진 1] Virus Total 조회 결과

 

② 파일 속성 및 HxD 조회

- 파일 속성과 HxD 확인 결과 해당 파일이 RTF 파일임을 확인

> RTF 파일은 파일 시그니처7B 5C 72 74 66 31 ({rtf1)를 가짐 [5]

[사진 2] 파일 속성 및 HxD 확인 결과

 

③ rtfdump.py 파일 덤프

- 먼저 -m 옵션을 사용해 rtfdump.py의 사용법에 대해 확인

[사진 3] rtfdump.py -m 결과

 

- yeahhub.rtf 파일 덤프 결과 문서에 포함된 객체들이 조회됨

> [사진 5]를 통해 RTF 문서에서 원격 객체와 연결을 하기위해 "objautlink"를 사용하며, 그 중 "objdata"에 OLE 객체를 포함하고 있는것을 확인 [6]

> objautlink ⊃ objdata ⊃ OLE 객체로 정리함

※ [사진 4]에서 첫 번째 열의 숫자는 rtfdump에서 파생된 출력 값으로 파일의 일부가 아님

[사진 4] objdata

 

[사진 5] RTF 내 objdata 객체

 

- 분석 후 추가 구글링 결과 rtfdump.py의 경우 아래 명령으로 문서에 포함된 OLE 객체를 찾을 수 있다고 확인됨

rtfdump.py -f O 파일명

 

- [사진 4]에서 확인된 objdata의 값을 -s 옵션으로 확인한 결과 "01050000 02000000"이 확인

> "01050000 02000000"는 각각 01050000 OLE 버전 정보, 02000000 임베디드 객체를 뜻함 [7]

> -H 명령을 추가해 확인하면 더욱 명확히 OLE 객체임을 알 수 있음

[사진 6] -s 10 명령 결과

 

[사진 7] -H 추가 결과

 

④ oledump.py

- [사진 7]의 결과에서 두 가지 옵션 추가 및 "|"를 사용해 oledump.py의 입력으로 전달

> -E: 포함된 객체 덤프

> -d: 출력된 내용 덤프

[사진 8]에서 첫 번째 열의 숫자는 oledump에서 파생된 출력 값으로 파일의 일부가 아님

[사진 8] 덤프 파일 출력

 

- -s 옵션으로 각각의 스트림을 확인한 결과 첫 번째 스트림에서 악성 URL 확인

[사진 9] 문자 스트림 출력

 

- [사진 9]에서 확인된 악성 URL로 HTA 파일을 요청하고, HTA 파일에 포함된 리버스쉘 생성 명령이 실행

[사진 10] 패킷 일부

 

3. 참고

[1] https://www.virustotal.com/gui/home/upload
[2] https://mh-nexus.de/en/hxd/
[3] https://github.com/DidierStevens/DidierStevensSuite/blob/master/rtfdump.py
[4] https://blog.didierstevens.com/2016/07/29/releasing-rtfdump-py/
[5] http://forensic-proof.com/archives/300
[6] https://www.mcafee.com/blogs/other-blogs/mcafee-labs/an-inside-look-into-microsoft-rich-text-format-and-ole-exploits/
[7] https://github.com/houjingyi233/office-exploit-case-study/blob/master/CVE-2017-11882%26CVE-2018-0802%26CVE-2018-0798/cve-2018-0802%20poc%20with%20comments.rtf
[8] https://github.com/DidierStevens/DidierStevensSuite/blob/master/oledump.py

+ Recent posts