2013년 5월 6일 월요일

Dadong’s JSXX 0.44 VIP Part II

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

1)     카후시큐리티 소개
 - 난독화 등 Malicious 컨텐츠를 분석하여 공유하는 보안프로젝트 그룹으로,
   다른 분석가들보다 빠르고 창의적인 방법으로 분석하는 것으로 유명하다

 [참고] Java 0-Day Using Latest Dadong’s 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] 코드 변조를 통한 복호화 결과

댓글 1개:

  1. 나중에 오프모임에서 제가 만든 툴도 보여드릴께요^^멋진글입니다

    답글삭제