2013년 4월 15일 월요일

_ Dadong’s JSXX 0.44 VIP 분석 Part 1

 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'의 무차별 웹 공격이 시작됐다

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’을 이용하여 데이터를 복호화 시도하였다

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

2)     ‘alert’을 이용한 난독화 결과
         - 복호화 부분의 문자열을 나누었기 때문에 구조가 변화면서 오류가 발생하였다 

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

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


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

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

4)     해결 방법
- 값의 길이와 문자를 이용하여 변수를 구하는 부분이 변경되지 않게 하기 위해 [그림 5]의 정리된 복호화 부분 위에 
원래 복호화 부분을 추가하여 함수들이 참조할 수 있도록 한다


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



     5)     데이터 복호화 
        - 수정된 복호화 부분을 이용하여 데이터를 복호화 시 공격 스크립트를 확인 할 수 있다
[그림 10] 복호화에 성공한 화면

2013년 2월 22일 금요일

phpMyAdmin 취약점 웹서버 스캐닝 툴 ZmEu

언젠가부터 등장하여 꾸준히 발생되고 있는 ZmEu 웹서버 스캔 이벤트에 대해 알아보자

해당 스캐닝은 루마니아의 해킹 집단에서 제작된 ZmEu라고 불리는 툴을 이용하여 이루어지며 전세계적으로 지속적으로
발생되고 있다고 한다.

phpMyAdmin이 설치된 웹 서버 중 취약점이 존재하는 서버 대상으로 행해지는 이 공격은 성공시 해당 웹서버를 완전하게
장악할 수 있다

* phpMyAdmin은 웹서버상에서 MYSQL의 관리자로서 DB를 처리할 수 있도록 만들어진 PHP툴로  데이타베이스를 생성/삭제,       
테이블 생성/삭제, 필드 생성/삭제, SQL 문장 실행, 권한 관리 기능 실행가능하다

ZmEu 툴로 발생된 트래픽의 헤더부분은 특정한 문자열이 포함되어 있어 아래의 패턴으로 보안장비에서 탐지가능하다.
 →   0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 5A 6D 45 75       //     User-Agent:.ZmEu

[그림 1. 패킷 정보]










 ## 추가 정보
 * CVE ID : CVE-2009-1151 
 * 해결책: 서버 점검을 통해 취약점을 제거하도록 하며(버전업데이트 등), 보안장비에서 해당 스캐너의 접근을 차단한다.

혁명이란

The revolution is not an apple that falls when it is ripe. You have to make it fall. (Ernesto "Che" Guevara)
혁명은 다 익어 저절로 떨어지는 사과가 아니다. 떨어뜨려야 하는 것이다.

Welcome to Kwang Guevara's blog

혁명의 시작...2013.02.22