Cool EK 소개 (Cool Exploit Kit)

Web Exploit Kit/Cool EK 2013. 8. 6. 23:15

q  Cool EK 소개

1.    History

1)  Cool EK BlackHole EK 를 제작한 해킹 그룹(러시아, Leader: Paunch)에서 만들어 졌다고 한다

2)  BlackHole EK 1달에 $500 인 반면, Cool EK 1달에 $100,000 로 알려져 있다 (really?)

3)  Cool EK CVE-2011-3402 EOT (Embedded OpenType) 파일 취약점을 사용한다 (EOT à 웹폰트)

4)  CVE-2011-3402 EOT 취약점을 이용하고, Duqu 라고 불려지고 있으며 특정 표식을 남긴다

 ☞ 출처: By Brian Krebs, malware dontneedcoffee

 

2.    Cool EK 패턴

1) CVE-2011-3402 EOT 파일 취약점에서 확인되는 특정 패턴

      - 코드 내부에 .eot 파일 뒷부분에 ‘duqu’ 라는 문자열과 :) 스마일 표식을 남긴다

[그림 1] Cool EK 특정 패턴

- Duqu 2011 9 1일 처음 발견 되었으며, Stuxnet Worm 과 연관성이 있다

[그림 2] Duqu Information

2) 실제 패킷에서 탐지된 패킷 확인

      - IgqaRKnXz.eot 코드 뒷부분에 ‘duqu’ 라는 문자열 대신 #MRnAKouG 문자열을 남겼지만 스마일 표식 :) 은 동일하게 남기고 있다

      * 위 조사한 내용으로 볼 때 아래 패킷은 CVE-2011-3402 를 이용한 Cool EK 라고 할 수 있겠다

[그림 3] 탐지된 패킷에서 특정 문자열 확인 

 

  ## Cool EK 에 대한 참고 사이트

  

http://malware.dontneedcoffee.com/2012/10/newcoolek.html

http://yomuds.blogspot.fr/2012/11/cve-2011-3402-and-cool-exploit-kit_28.html

https://krebsonsecurity.com/2013/01/crimeware-author-funds-exploit-buying-spree

http://en.wikipedia.org/wiki/Duqu

https://media.blackhat.com/bh-eu-12/Lee/bh-eu-12-Lee-GDI_Font_Fuzzing-Slides.pdf

http://threatpost.com/cool-blackhole-exploit-kits-created-same-hacker-010913

http://expertsupportnj.com/2013/02/exploit-kits-are-the-latest-weapons-of-cyber-destruction-warns-security-expert

 

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

Cool EK sample analysis 4  (0) 2013.11.02
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

설정

트랙백

댓글

사쿠라 툴킷 난독화 풀이

Web Exploit Kit/ Sakura EK 2013. 5. 15. 00:48

사쿠라 툴킷 난독화 풀이

 

1.      Sakura Exploit Toolkit 이란?

악성코드 유포에 이용되는 Web exploit Toolkit 중 하나이다. 국내에서는 많이 알려져 있지 않지만, 2012년 이뤄진 사이버 공격 유형에서 2(22%)를 차지하고 있다. 블랙홀 툴킷과 마찬가지고 pdf, java 등 다양한 취약점을 이용한다.

 

[그림 1] 2012년 발생한 툴킷 유형 (ETNEWS 기사 내용 중)

 

 

2.      Sakura Toolkit의 난독화

지인을 통하여 구하게 된 사쿠라 툴킷 샘플은 JAVA 취약점을 이용한 부분만 분석이 가능하였다.

Html input tag value 값을 자바스크립트의 함수로 복호화 하는 형식을 기본적으로 가지고 있으며, 독특한 점 스크립트의 특정 데이터를 자바(.Jar)파일의 Main.Class에서 복호화하여 동작하는 것이다.

 

 

3.      Sakura Toolkit의 난독화 분석

분석한 샘플은 지인(설원)이 제공해준 것으로 사쿠라 툴킷 중 일부에 대한 것이며 분석 시 악성 URL은 재현되지 않아 가능한 부분만 분석하였다.

 

3.1 Sakura Toolkit의 구조

[그림 2] Sakura Toolkit의 구조

 

 

3.2 난독화 스크립트 분석

 

3.2.1 난독화 분석 1 (‘데이터 A’ 부분 분석)

[그림 3] ‘데이터 A’ 부분과 관련 스크립트 정리

1)    데이터 A’ 부분과 데이터 A’ 복호화 스크립트 부분만 분리한다.

2)    input 부분의 value function hyurls(n)으로 복호화하는 형태로 구성되어 있다.

3)    복호화된 데이터가 q 변수에 저장되기 때문에 그림에서 방법 또는 방법으로 값에

 저장되는 데이터를 확인 할 수 있다.

 

[그림 4] ‘데이터 A’ 부분 복호화 결과

 

3.2.2 난독화 분석 2

 

- ‘데이터 A’ 복호화된 부분 추가 분석

[그림 5] 1차 결과 추가 분석

1)    데이터 A’ 복호화 부분은 if절을 사용하여 java 버전에 따라 동작하도록 구성되어 있다

2)    document.write를 사용하고 있고, 빨간 박스 부분은 base64로 인코딩되어 있다.

 

- base64 decoding

[그림 6] malzilla를 이용한 base64 decoding

 

- document.write 적용 후 정리

[그림 7] document.write base64 디코딩 후 모습

1)    정리된 데이터를 보면 value 값 난독화된 문자로 된 것을 확인 할 수 있다.

2)    의 부분을 보고 Main.class에서 해당 부분을 복호화 한다는 힌트를 얻을 수 있었다

 

- Java Decompiler를 이용한 Main.class 분석

[그림 8] Java Decompiler Main.class 확인

1)    샘플에 포함된 자바(.jar)파일을 Java Decompiler로 확인한다.

2)    Main.class 확인 시 복호화 시 이용될 듯한 함수를 찾을 수 있었다.

3)    의 부분을 보고 Main.class에서 해당 부분을 복호화 한다는 힌트를 얻을 수 있었다

 

- Main.class 코드를 이용한 난독화 해지

[그림 9] 코드 수정

1)    자바스크립트로 복호화를 하기 위해 Main.class의 함수를 [그림 9] 처럼 수정한다.

2)    난독화된 데이터를 s 변수로 삽입하고 결과값을 alert을 이용하여 확인한다.

 

[그림 10] 최종 결과 값

확인된 URL은 재현되지 않아 추가 분석은 불가능 하였다.

 

3.3 PluginDectect (0.8.0) 정보

PluginDectect 부분은 블랙홀 툴킷에서도 자주 보았던 부분으로 java, pdf, flash 등 다양한 Plugin 정보를 수집해 주는 스크립트다. 이 수집된 정보를 통해 공격코드에서 취약점이 존재하는 부분을 공격하여 악성행위를 하게 된다.

 

해당 스크립트는 아래의 사이트에서 누구나 쉽게 원하는 부분만 포함하여 제작할 수 있다.

 

- http://www.pinlady.net/PluginDetectArchive/0.8.0/download/

 

3.4 PDF 취약점 관련 부분 (재현되지 않아, 다음 기회 ~ ㅠㅠ)

 

설정

트랙백

댓글

Dadong’s JSXX 0.44 VIP 툴 소개

q  Dadongs 0.44 전용 툴 소개

 

1.    Dadong’s JSXX 0.44 VIP Decoder

 

1)     Decoder Tool 사용법

     Data Inpu              난독화 Data 값 입력

     Func Input                    난독화 Data 를 풀어주는 복호화 부분 입력

     Key Input                      복호화 함수에 포함된 Key 값 입력

     Data Output       복호화 Data 출력

 

[그림 1] Dadong’s JSXX 0.44 VIP Decoder

 

2)     Decoder Tool 실행 화면

- [그림 1]을 참조하여 아래의 그림처럼 데이터 입력 후 Decoding을 실행 시 우측 부분에 복호화된 데이터가 출력된다

 

[그림 2] Dadong’s JSXX 0.44 VIP Decoder 출력화면

 

자바스크립트로 만든 툴입니다. 해당 툴이 필요한 분은 글남기시면 보내드리겠습니다.

* 디코딩 툴은 파일 첨부하였습니다. (공유시 출처만 ^^;;)

dadongs Decoder.zip

 

 

 

'Web Exploit Kit > Dadong's JSXX 0.44' 카테고리의 다른 글

Dadong’s JSXX 0.44 VIP Part III  (0) 2013.05.03
Dadong’s JSXX 0.44 VIP Part II  (0) 2013.04.28
Dadong’s JSXX 0.44 VIP Part I  (2) 2013.04.28

설정

트랙백

댓글

Dadong’s JSXX 0.44 VIP Part III

q  쉽게 푸는 Dadongs 0.44

 

Dadong’s 0.44 변조 방지기능 때문에 복호화가 어렵다

물론 분석 팀이나 어느 정도 실력을 갖춘 사람들은 자신만의 방식으로 복호화를 하고

있지만 일반적으로 방법을 찾는 것은 쉽지 않다

 

누구나 쉽게 Dadong’s 0.44를 풀 수 있는 방법에 대해 고민을 하였고, 좋은 방법을

찾았다. 방법은 단지 alert(key); 가지고 Dadong’s 0.44 복호화 있었다

 

[그림 1] 코드 수정

해당 방법 사용시 주의사항

 - 해당방법으로 복호화시 스크립트가 실행되어 악성코드에 감염될 있기 때문에

  반드시 가상환경(VMware )에서 사용해야 한다

 

- 환경설정에 따라 경고창이 전체데이터를 보여주지 않는 경우가 있다

 

 - 복호화된 공격코드에 쉘코드가 있는 경우 행이 걸려 동작하지 않을 있다

 

 

 

'Web Exploit Kit > Dadong's JSXX 0.44' 카테고리의 다른 글

Dadong’s JSXX 0.44 VIP 툴 소개  (76) 2013.05.03
Dadong’s JSXX 0.44 VIP Part II  (0) 2013.04.28
Dadong’s JSXX 0.44 VIP Part I  (2) 2013.04.28

설정

트랙백

댓글

Dadong’s JSXX 0.44 VIP Part II

     1.    카후시큐리티(kahusecurity.com) 복호화 방법 재현

1)     카후시큐리티 소개

 - 난독화 등 Malicious 컨텐츠를 분석하여 공유하는 보안프로젝트 그룹으로,

   다른 분석가들보다 빠르고 창의적인 방법으로 분석하는 것으로 유명하다

 

 [참고] Java 0-Day Using Latest Dadong’s JS Obfuscator

http://www.kahusecurity.com/2012/java-0-day-using-latest-dadongs-js-obfuscator

2)     카후시큐리티의 Dadong’s JS Obfuscator 복호화 방법 소개

     Dadong’s 0.44 실행 시 스크립트의 복호화 기능이 특정 변수에 저장되는 것을 이용

     변수에 ‘alert’ 등의 자신의 코드를 삽입하여 복호화 시도

     Dadong’s 0.44의 변조방지기능 때문에 복호화 부분은 수정하지 않고, 데이터

    부분에서 실행 함수가 저장되는 변수 부분을 변조하여 난독화 해지

  ☞ 상세내용은 [참고 2]에서 확인 할 수 있습니다

 

3)     카후시큐리티 복호화 방법 따라하기

     스크립트를 실행하는 함수가 저장되는 변수 확인

  

[그림 1] 스크립트를 실행하는 함수가 저장된 변수 확인

 

    난독화된 데이터의 첫 부분 복호화 시 아래의 그림처럼 변화는 것을 확인

 

 [그림 2] 난독화된 코드의 일부 복호화

 

 

     ‘PDIK6’ 변수에 실행함수가 저장되므로 ‘PDIK6=alert’으로 임의로 수정하여 복호화된 데이터를 경고창으로 확인 한다

    (변조방지기능 때문에 난독화된 데이터 부분 수정 시도)

 

≫ 데이터의 길이를 유지하기 위해 공백을 이용하여 글자수를 맞춘다

   PDIK6=pVYAmQ8;

   PDIK6=alert     ;

≫ 난독화된 데이터 패턴을 계산하여 PDIK6=alert     ;’의 값을 구한다

PDIK6=pVYAmQ8;      25491BC74F2C0BE6245412E5B922

PDIK6=alert     ;        25491BC74F2C1ADC18670B94A122

 

     Dadong’s 0.44 패턴으로 변환해주는 간단한 툴을 이용하여 코드 변경

 

[그림 3] 실제 코드 정상 변환여부 확인

 

[그림 4] 코드 변경 후 변환

 

 

     ‘PDIK6=alert’을 난독화한 데이터를 원래 데이터 부분에 삽입한다

[그림 5] 수정된 난독화 코드 삽입

 

     스크립트를 실행하면 첫 부분이 변경된 복호화된 스크립트를 확인 할 수 있다

 

 

[그림 6] 코드 변조를 통한 복호화 결과

 

'Web Exploit Kit > Dadong's JSXX 0.44' 카테고리의 다른 글

Dadong’s JSXX 0.44 VIP 툴 소개  (76) 2013.05.03
Dadong’s JSXX 0.44 VIP Part III  (0) 2013.05.03
Dadong’s JSXX 0.44 VIP Part I  (2) 2013.04.28

설정

트랙백

댓글

Dadong’s JSXX 0.44 VIP Part I

q  Gongda Pack ?

1.    History

1)  Dadong’s JSXX 0.XX VIP 내부 공격 코드 중 중국어로 ‘공격’ 을 의미하는 ‘공다(gongda)’ 라는 변수명(gondad) 이 상당 부분 사용되는 점을 특징으로 이름이 지어졌으며, Gongda Pack 또는Gongda Exploit Kit 으로 알려져 있다

 

2)  2010 Dadong’s JSXX 0.39 VIP 를 시작으로 잠시 등장했던 Dadong’s JSXX 0.41 VIP 버전을 지나 Dadong’s JSXX 0.44 VIP 버전이 2012 4월부터 현재까지 등장하고 있다

2.    Gongda Pack 0.44

1) 주석 스크립트 변화 과정

    - Gongda Pack 0.44 주석 스크립트 부분이 변화되는 원인은 고정적인 문자열을 이용한

      패턴 탐지를 우회하기 위해 변화되는 것으로 판단된다

  

[그림 1] Gongda pack 0.44 주석 스크립트 변화 과정

 

 

 

 

q  Dadongs 0.44 구조

※ 이 문서에서는 Dadongs 0.44의 난독화를 해제하는데 중점을 두겠다 취약점을 이용하는 부분과문서에서 다루지 않는 부분은 아래의 사이트를 참조하기 바란다

 

[참고 1] 'GongDa'의 무차별 웹 공격이 시작됐다

http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=19418

 

1.    전체 구조

1)     난독화된 Dadong’s 0.44은 아래 그림처럼 크게 3부분으로 나누어 진다

 

[그림 2] Dadong’s 0.44 전체구조

 

      ①   번째 부분: 플래시, 자바 관련 스크립트 삽입 쿠키 값을 이용하여 중복 실행을

         방지하는 부분이다

해당부분은 [참고 1] 상세히 설명되어 있다

      ②   번째 부분: 난독화된 데이터 부분으로 부분을 복호화하면 실제 공격코드가 된다 

      번째 부분: 난독화된 데이터를 복호화하는 스크립트 부분으로 부분을 중점적으로           분석 한다

2.    복호화 스크립트 정리 ( 번째 부분)

1)     복호화 스크립트에서 불필요한 부분 제거 및 일차원적 난독화 부분에 대해 정리

 [그림 3] 복호화 부분 스크립트 정리

 

2)     정리 후 복호화 함수의 구조

   - 보기 어렵게 작성된 부분 및 제거되는 코드를 정리하면 아래 그림처럼 된다

 

[그림 4] 복호화 스크립트 정리 결과

3)     이 복호화 부분은 함수변조방지 기술로 묶여져 있기 때문에 위와 같이 정리 후 Key값을 찾아도 복호화가 정상적으로 이루어 지지 않는다

 

 

q  난독화 풀이

1.    ‘alert’ 이용한 데이터 부분 복호화  

1)     복호화 시 일반적으로 ‘alert’이나 ‘document.write’ 등을 사용하여 실행되는 스크립트를 문자로 확인한다 여기서는 ‘alert’을 이용하여 데이터를 복호화 시도하였다

 

 

[그림 5] 그림 4의 스크립트에서 Key값을 alert으로 복호화 시도

 

2)     ‘alert’을 이용한 난독화 결

   - 복호화 부분의 문자열을 나누었기 때문에 구조가 변화면서 오류가 발생하였다

 

[그림 6] 변조방지 기능에 의한 오류 발생

- 수정된 스크립트부분을 처음 구조와 동일하게 변경 후 실행해도 오류가 발생하였다

 

 

3)     복호화 실패 원인

- 제작자는 복호화를 어렵게 하기 위해 함수를 문자열로 묶어놓았고, 문자열을 변경할 경우 함수의  변수 값이 변하여 원래 데이터를 얻을 수 없도록 만들었다 (변조방지기능)

 

[그림 7] 변조방지기능의 역할을 하는 부분

 

4)     해결 방법

- 값의 길이와 문자를 이용하여 변수를 구하는 부분이 변경되지 않게 하기 위해

[그림 5]의 정리된 복호화 부분 위에 원래 복호화 부분을 추가하여 함수들이 참조할 수

있도록 한다  

 

[그림 8] 변조방지를 우회하기 위해 복호화 부분을 추가 삽입

 

 5)     데이터 복호화

    - 수정된 복호화 부분을 이용하여 데이터를 복호화 시 공격 스크립트를 확인 할 수 있다

[그림 9] 복호화에 성공한 화면

 

'Web Exploit Kit > Dadong's JSXX 0.44' 카테고리의 다른 글

Dadong’s JSXX 0.44 VIP 툴 소개  (76) 2013.05.03
Dadong’s JSXX 0.44 VIP Part III  (0) 2013.05.03
Dadong’s JSXX 0.44 VIP Part II  (0) 2013.04.28

설정

트랙백

댓글