※ 주의사항
아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.
악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.
해당 문서의 저작권은 해당 저자에게 모두 있습니다. 외부에 공개시 법적 조치가 가해질 수 있습니다.
pyew에 포함되어 있는 콘솔환경 도구(pdfid, pdfparser 등)가 아닌 PDF악성코드 분석 대표적인 도구인 PDFStreamDumper를 활용하겠다. PDFStreamDumper는 로우포멧에서 PDF 파일을 파싱하고 분석할 수 있도록 구성된 도구이다. 도구의 주요 기능은 아래와 같이 포함되어 있으며 이외에도 많은 플러그인형태 기능이 포함되어 있다.
 
  • 모든 PDF오브젝트를 분석
  • 압축되어 있는 스트림값들을 분석
  • 파일 오프셋(offset), 헤더 등 스트림 상세내역 분석
  • AS3 Sorcerer를 이용하여 플래시 액션스크립트 3를 복원 가능
  • 인코드되어 있는 PDF헤더들을 복호화 가능
  • 스트림값들 안에 문자열들을 검색 가능
  • 헥스 덤프파일들로 스트림값들 확인 가능
  • 암호화되어 있는 PDF파일을 복호화
  • js beautifier를 이용하여 자바스크립트 포멧으로 변환
  • 난독화 되어 있는 자바스크립트 함수들, 인자값들을 다시 정의하여 표시
 
PDFStremDumper 프로그램은 친절하게 마지막 메뉴 Help_Videos에 메뉴얼 동영상을 링크걸어두었다. 프로그램 소개부터 활용하는 것까지 동영상 강의 형식으로 제공하기 때문에 사용을 할 시에 동영상을 참고하여 기능을 습득해보자.
 

그림 37 PDFStreamDumper 도움말 동영상 다운로드
 
 
문자열에서 악의적으로 이용되는 스크립트를 발견하였지만, 이문자열을 바로 분석하기에는 어려움이 발생한다. 상단에 Javascript_UI를 클릭하면 스크립트 분석용 윈도우가 나타난다.
 

그림 38 PDFStreamDumper를 활용한 코드 분석
 
 
정리가 되지 않은 스크립트를 상태에서 상단의 Format_Javascript를 클릭하면 스크립트 문법에 맞게 함수와 변수 및 제어문들이 분석할 수 있는 수준까지 정리가 된다. 여기에서 Exploit_Scan을 클릭하면 취약점 데이터베이스와 비교를 하여 해당 스크립트를 사용하고 있는 취약점들에 대한 목록을 출력한다. PDF파일은 이와 같이 손쉽게 취약점 여부를 판단할 수 있다.
 

그림 39 PDFStreamDumper를 활용한 자바스크립트 분석
 
 
공격 스크립트가 포함된 다른 PDF문서도 분석을 한 결과, 취약점에 대한 정보가 한번에 나타난다.
 

그림 310 PDFStreamDumper를 활용한 Exploit정보 확인
 
 
Shellcode_Analysis > Shellcode2 Exe를 이용하여 파일내 악성코드 바이너리 파일을 분류한다. 생성된 EXE파일을 바이러스토탈 서비스를 통해 분석하면 대부분 벤더사에서 악성코드로 판별을 한다.
 

그림 311 스크립트내에서 확인한 Shellcode 저장
 
 

그림 312 스크립트내에서 확인한 Shellcode 저장

출처: http://blog.naver.com/PostView.nhn?blogId=chogar&logNo=80195561205


'PDF' 카테고리의 다른 글

pdfid.py  (0) 2019.01.03
pdf-parser.py  (0) 2019.01.03
peepdf - PDF Analysis Tool  (0) 2019.01.03
PDFDot PDF 분석 및 시각화 도구  (0) 2019.01.03
PDF 분석 툴 모음  (0) 2019.01.03

+ Recent posts