'PDF분석'에 해당되는 글 1건

  1. 2011.03.14 [Malware Analysis] 난독화된 PDF 파일 분석(CVE-2009-4324)
악성이라 의심되는 PDF 파일에 대하여 분석한 내용에 대해 정리해 보려고 한다.


먼저 pdfid.py 파이썬 스크립트를 이용하여 구성을 살펴보면 [그림 1]과 같이 내부에 자바 스크립트가 포함되어 있는 것을 볼 수 있다.

[그림 1]

[그림 2]와 같이 pdf-parser.py 스크립트를 이용하여 자바 스크립트를 포함한 오브젝트를 검색해 본다.

[그림 2]
총 3번, 6번 2개의 오브젝트가 결과로 출력되는 것을 볼 수 있다. 이 중 6번 오브젝트의 경우 111611 번 오브젝트를 참고하는 볼 수 있다. 번호부터가 의심스럽다 111611이라니...

111611 오브젝트에 어떤 값이 있는지 확인하면 [그림 3]과 같이 의심스러운 값들이 들어있는 것을 확인할 수 있다.

[그림 3]

악성 PDF 파일 분석 도구인 PDFStreamDumper를 이용하여 각 오브젝트의 내용을 확인해 봐도 111611 오브젝트에 위와 같이 의심스러운 스크립트가 존재함을 확인할 수 있다.

[그림 4]

111611 오브젝트에 있는 스크립트를 확인해 보면 [그림 5]와 같이 주석문을 포함한 자바 스크립트인 것을 확인할 수 있으며, 주석문을 제거한 뒤 확인해 보면 replace 함수를 이용하여 특정 문자열을 치환한 뒤에 eval 함수를 이용하여 실행하는 것을 확인할 수 있다.

[그림 5]
replace에 의해서 치환되는 문자열을 살펴보면 "Hueputol" 문자열을 "%" (Hex 값 25)로 변경하는 것을 확인할 수 있다. [그림 6]과 같이 PDFStreamDumper를 이용하여 치환 대상이 되는 문자열들을 확인할 수 있다.

[그림 6]

Malzilla 또는 에디터등을 이용하여 수동으로 해당 문자열을 치환해 보자. [그림 7]과 같이 Malzilla의 "Misc Decoders" 탭 기능을 이용하여 "Hueputol" 문자열을 "%"로 치환해 준다.

[그림 7]

변환된 문자열을 확인해 보면 "%xx" 형식의 Hex 값으로 구성되어 있는 것을 확인할 수 있다. 변환된 문자열을 다시 "Decode Hex (%)" 버튼을 클릭하여 변환한다.

[그림 8]

디코딩 결과 자바 스크립트가 출력되는 것을 확인할 수 있으며 좀 더 확인이 쉽게 정리를 해보면 중간에 UCS-2 형식의 쉘코드가 존재하는 것을 볼 수 있다. 해당 스크립트는 구글링 결과 Adobe Reader(PDF) 제로데이 취약점인 CVE-2009-4324를 이용하는 것임을 알 수 있다.

[그림 9]

쉘코드 분석을 위해 Shellcode 2 EXE(http://sandsprite.com/shellcode_2_exe.php)를 이용하여 PE 포맷으로 변경한다. Shellcode 2 EXE는 말 그래도 윈도우 상의 쉘코드를 PE 포맷형식으로 변경해 줌으로써 특정 쉘코드의 동작에 대한 분석이 용이하다.

[그림 10]

Shellcode 2 EXE로 생성한 실행 파일을 분석해 보도록 하자. 먼저 동작 중에 필요한 DLL 파일을 로딩한 후에 함수들의 주소를 얻어오는 부분을 확인할 수 있다. 이어서 [그림 11]과 같이 URLDownloadToFileA 함수를 이용하여 특정 URL의 파일을 %temp% 경로에 다운로드 하는 것을 확인할 수 있다.

[그림 11]
이후 WinExec 함수를 이용하여 다운로드 받아온 파일을 실행하는 것을 확인할 수 있다.

[그림 12]

□ 사용된 툴 정리

- pdfid.py, pdf-parser.py : http://blog.didierstevens.com/programs/pdf-tools/
- Shellcode 2 EXE : http://sandsprite.com/shellcode_2_exe.php
- PDFStreamDumper : http://sandsprite.com/blogs/index.php?uid=7&pid=57


저작자 표시 비영리 변경 금지
신고
Posted by By. PHR34K

티스토리 툴바