Cool EK sample analysis 4

Web Exploit Kit/Cool EK 2013. 11. 2. 22:24

4. EtQZAs.pdf 분석

요약: PDF 취약점을 이용하여 sR5L76pksF.exe 파일을 다운로드 및 실행하는 역할을 한다

 

4.1 PDF 파일에 삽입된 악성스크립트 확인

-       PDFStreamDumper 를 이용하여 PDF 파일에 삽입된 악성스크립트를 확인한다

[그림 28] PDF 파일에 포함된 악성스크립트 확인

-       불필요한 값(보기 어렵게 하기 위해 삽입) 제거 및 스크립트 구성 확인

[그림 29] 악성스크립트 구조

  ①    악성 URL 값을 특정 변수에 저장한 부분

  ②    악성스크립트를 난독화하여 특정 부분에 저장한 부분

  ③    난독화된 악성스크립트를 복호화하는 부분

 

4.2 악성스크립트 복호화 부분 분석

-       복호화 부분은 난독화된 데이터를 복호화 하는 Main 함수 부분과 분석을 어렵게 하기 위해

PDF 환경 변수 등을 사용하는 것이 특징이다.

[그림 30] 복호화 부분 분석

  ①    복호화된 스크립트를 PDF용 자바스크립트 양식인 app.변수에 저장한다

  ②    xfa.host.numpages PDF 파일의 총 페이지수를 의미한다 하지만 스크립트 부분만을 분석하면

  해당부분이 정의되지 않아 정상적으로 복호화가 불가능하다

      ð  어도비리더로 문서를 실행하여 총 페이지수를 확인할 수 있다

  ③    eval 함수를 감추기 위해 문자열의 조합으로 특정변수에 eval(or app.eval)을 저장하여 실행한다

      ð  PDF 에서 alert app.alert 으로 사용한다. 이처럼 PDF 스크립트 분석 시 자바스크립트 분석 환경에

               맞추어 변환해 주어야 정상적인 값을 구할 수 있다

 

▶▶ ① 부분을 alert(aTXAca); 으로 수정하거나, ③ 부분을 수정하면 결과값을 확인할 수 있다

 

         ----------------------------------------------------------------------------------------------------------------------------

  PDF 파일분석 시 Tip

  - PDF에 삽입된 자바스크립트를 분석 시 <, >, &, &qout; 들은 아래처럼 변경해 주어야 한다

                 •        &lt;         <

                 •        &gt;,        >

                 •        &amp;,      “ “ (공백, 스페이스)

                 •        &qout;     

        ----------------------------------------------------------------------------------------------------------------------------

 

4.3 복호화된 스크립트 추가 분석

-       [그림 30] ① 부분을 alert(aTXAca); 변경하여 실행시 아래와 같은 스크립트를 확인할 수 있다

-       Main 함수와 그 안에서 사용되는 값들을 구하는 함수로 이루어져 있으며, [그림 31]에 ① 부분의 변수를 사용한다 (분석 시 ① 부분을 추가해 주어야 한다)

[그림 31] 1차 난독화 해지 시 스크립트 확인

  ①    ①의 JDKPdPCkv 변수는 [그림 31]에 ①에서 정의되어 있는 것으로 악성코드가 존재하는 URL을 저장하고 있다

[그림 32] JDKPdPCkv 변수의 값

  ②    ② 부분은 main함수에 의해 만들어진 값을 hnPgL rawValue 값으로 저장한다

 

▶▶내용요약: shell 변수에 악성코드를 다운로드 하는 코드를 저장 후 오버플로우를 발생시키는

               코드를 추가하여 hnPgL.rawValue로 저장한다

 

[참고]  Malzilla 를 이용하면 shell 변수에 저장된 shellcode를 아래처럼 확인 할 수 있다

[그림 33] malzilla 를 이용한 shellcode 확인

 

-       hnPgL 은 악성스크립트가 삽입되어 있는 Object 부분에 field 값으로 정의되어 있다

[그림 34] hnPgL - field

 

-       PDF 파일을 실행 시 아래 [그림 35] 부분에 의해 악성스크립트에 의해 만들어진 값이 삽입되고

오버플로우가 발생되어 악성코드를 다운로드 한다

ð  해당 부분은 구글링을 통해 알게 된 정보를 참고하여 작성하였고, 잘못된 부분이 있을 수도 있다는 것을 참고하기 바란다

[그림 35] PDF 파일에서 hnPgL

 

PDF 취약점 참고자료: http://ahnlabasec.tistory.com/579 (CVE-2010-0188)

 

 

※ 블로그의 특성상 Coolkit의 난독화 부분에 대해 다루었습니다. Cool EK의 전체 분석 보고서는 제가 활동하는 볼라벤 소모임의 블로그에서 보실 수 있습니다.

- 바로가기: http://thebolaven.tistory.com/entry/13차-문서-Cool-Exploit-Kit-분석

 

  한글때문에 바로가기가 안될 경우 '분석'까지 복사하여서 주소창에 붙여넣기하시면됩니다.

 

 

 

'Web Exploit Kit > Cool EK' 카테고리의 다른 글

Cool EK sample analysis 3  (0) 2013.11.02
Cool EK sample analysis 2  (0) 2013.08.10
Cool EK sample analysis 1  (0) 2013.08.10
Cool EK 소개 (Cool Exploit Kit)  (0) 2013.08.06

설정

트랙백

댓글