울지않는벌새 : Security, Movie & Society

Space와 Tab키를 이용한 보이지 않는 JavaScript를 이용한 악성코드 유포 (2012.1.1)

벌새::Analysis
최근 중국발 온라인 게임 계정 탈취를 목적으로 하는 악성코드 유포시 기존에 사용하던 자바 스크립트(JavaScript) 방식과는 다르게 Space와 Tab키를 이용하여 외형적으로 코드가 보이지 않도록 제작된 부분이 확인이 되고 있습니다.

해당 악성 스크립트에 대해 이미 보안 블로그에서 정보를 공개하였으며, 저와 같은 초보자를 위해 해당 악성 스크립트를 단순 무식하게 풀어보는 방법에 대해 살펴보도록 하겠습니다.

샘플에 사용된 스크립트는 이번 주말 모 언론사 웹 사이트에서 유포되는 것이며, 위와 같이 스크립트 내부가 어떠한 정보도 없이 공란(Blank)으로 처리가 되어 있는 것을 확인할 수 있습니다.

눈에 보이지 않는 공란 영역을 초보자가 이해하기 쉽게 숨겨진 부분을 표시해보면 그림과 같이 Space 키와 Tab 키로 입력한 정보가 포함되어 있는 것을 확인할 수 있습니다.

Dehydrate(숨겨진)된 문자열을 Hydrate(표시)하기 위해서는 Space 키는 "1", Tab 키는 "0"으로 표시하여 7 Bit 단위의 2진수로 표시를 하라고 안내되어 있습니다.

1차적으로 2진수로 작성된 수를 7 Bit 단위로 쪼개서 스크립트를 구성하면 위와 같은 모양을 갖추게 됩니다.

해당 "1100100 1101111 1100011 1110101 1101101 1100101 1101110 1110100 0101110 1110111 1110010 1101001 ~ (중략) ~ 1110011 1100011 1110010 1101001 1110000 1110100 0100101 0110011 1000101 0100010 0101001 0101001 0111011" 2진수 Binary 값을 다시 10진수 Decimal 값으로 변환을 하시기 바랍니다.

참고로 해당 스크립트 변환을 위해서는 변환툴을 반드시 이용하시기 바라며, 수동으로 무식하게 하시면 많이 힘듭니다.

변환이 완료되면 그림과 같은 형태를 갖추게 되며, 마지막으로 Malzilla 분석툴을 이용하면 다음과 같은 최종적으로 불러오는 악성 스크립트 주소 cc.js 파일을 확인할 수 있습니다.

참고로 cc.js 파일에 대하여 nProtect 보안 제품에서는 Script-JS/W32.Agent.CJV (VirusTotal : 1/43) 진단명으로 진단하며, 해당 악성 스크립트는 다음과 같은 추가적인 악성 파일을 실행시킵니다.

  • h**p://ojy**.com/css/ac/board.html
  • h**p://ojy**.com/css/ac/vvv.html
  • h**p://ojy**.com/css/ac/hhh.html
  • h**p://ojy**.com/css/ac/fff.html
  • h**p://ojy**.com/css/ac/ac1230.swf (avast! : SWF:CVE-2011-2140-A [Expl])
  • h**p://ojy**.com/css/ac/h6.html (Kaspersky : Exploit.HTML.CVE-2011-1255.a)
  • h**p://ojy**.com/css/ac/fff.html
  • h**p://ojy**.com/css/ac/h8.html
  • h**p://ojy**.com/css/ac/Applet.html
  • h**p://ojy**.com/css/ac/cc.html
  • h**p://ojy**.com/css/ac/Applets.jar (AhnLab V3 : JAVA/Jorik)
  • h**p://ojy**.com/css/ac/e.avi (Microsoft : Exploit:Win32/CVE-2011-2140.A)
  • h**p://ojy**.com/css/ac/s.exe (MD5 : d90ccc137ba09276d6800942bc732b88)

참고로 최종 파일(s.exe)에 대하여 BitDefender 보안 제품에서는 Trojan.Generic.KD.500437 (VirusTotal : 13/42) 진단명으로 진단되고 있습니다.

해당 악성 스크립트는 접속한 사용자가 Adobe Flash Player, Oracle JRE 프로그램이 설치된 환경에서 취약점을 가진 버전을 사용할 경우 자동으로 감염시키도록 구성되어 있으며, 최종적으로 ws2help.dll 시스템 파일을 변조하여 온라인 게임을 비롯한 특정 웹 사이트 계정 정보를 탈취하는 악의적인 동작을 합니다.

특히 ws2help.dll 시스템 파일의 백업 파일도 변조하여 백신 프로그램을 통한 치료를 어렵게 하고 있으며, 잘못 치료를 할 경우 시스템 부팅이 이루어지지 않는 문제가 발생하므로 반드시 Windows CD를 통해 복구를 해야 합니다.

참고로 해당 악성코드 감염시 가장 유사성이 강한 부분은 해당 링크 내용을 참고하시기 바랍니다.

이번 사례와 같이 웹 사이트 관리자가 숨겨진 악성 스크립트를 찾을 때 숨게 노출되지 않도록 하기 위해 점점 교묘하게 진화하고 있다는 점에서 주의가 요구되며, 개인 사용자들은 이런 악성코드에 근본적으로 감염되지 않기 위해서는 백신 프로그램에 의존하기 보다는 윈도우 보안 패치를 포함한 각종 소프트웨어의 최신 버전을 사용하는 습관이 중요하겠습니다.