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=alert ;
≫ 난독화된 데이터 패턴을 계산하여 ‘PDIK6=alert ;’의 값을 구한다
PDIK6=pVYAmQ8; ⇒ 25491BC74F2C0BE6245412E5B922
PDIK6=alert ; ⇒ 25491BC74F2C1ADC18670B94A122
④ Dadong’s 0.44 패턴으로 변환해주는 간단한 툴을 이용하여 코드 변경
[그림 3] 실제 코드 정상 변환여부 확인
[그림 4] 코드 변경 후 변환
⑤ ‘PDIK6=alert’을 난독화한 데이터를 원래 데이터 부분에 삽입한다
[그림 5] 수정된 난독화 코드 삽입
⑥ 스크립트를 실행하면 첫 부분이 변경된 복호화된 스크립트를 확인 할 수 있다
[그림 6] 코드 변조를 통한 복호화 결과
나중에 오프모임에서 제가 만든 툴도 보여드릴께요^^멋진글입니다
답글삭제