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 Dadong’s 0.44 구조
※ 이 문서에서는 Dadong’s 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으로 복호화 시도]
[그림 7] 변조방지 기능에 의한 오류
발생
- 수정된 스크립트부분을
처음 구조와 동일하게 변경 후 실행해도 오류가 발생하였다
3)
복호화 실패 원인
-
제작자는
복호화를 어렵게 하기 위해 함수를 문자열로 묶어놓았고, 문자열을 변경할 경우 함수의 변수 값이 변하여
원래 데이터를 얻을 수 없도록 만들었다 (변조방지기능)
[그림 8] 변조방지기능의
역할을 하는 부분
4)
해결 방법
-
값의
길이와 문자를 이용하여 변수를 구하는 부분이 변경되지 않게 하기 위해 [그림 5]의 정리된 복호화 부분 위에
원래 복호화 부분을 추가하여 함수들이
참조할 수 있도록 한다
[그림 9] 변조방지를 우회하기 위해 복호화 부분을 추가 삽입
5)
데이터 복호화
-
수정된
복호화 부분을 이용하여 데이터를 복호화 시 공격 스크립트를 확인 할 수 있다
[그림 10] 복호화에
성공한 화면