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. 나중에 오프모임에서 제가 만든 툴도 보여드릴께요^^멋진글입니다

    답글삭제