Winscripter
  WSH
  Forums
  Downloads
  Books
  Links
  Amazon




Login
Register

© winscripter.com
1998-2004







Script: Removes "I Love You Virus" From a Machine

Posted by on Monday, January 19, 2004 (PST)

Script: Removes I love your virus. Submitted by Nathan Hartley

 

<!--
Title:   Remove-ILOVEYOU.wsf
Purpose: To completely remove the ILoveYou.A virus.
 
  Deletes the following files:
    mskernel32.vbs
    Win32dll.vbs
    LOVE-LETTER-FOR-YOU.TXT.VBS
    LOVE-LETTER-FOR-YOU.HTM
    Win-BugsFix.exe
    Recurses all drives deleting *.VBS files containing
      "I hate go to school" in the first line.
      (Creates a file named drclnily.txt at the
       root of each drive so that it will only scan a drive once.)
 
  Deletes the following registry entries:
    HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MSKernel32
    HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\WIN-BUGFIX
    HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices\\Win32DLL
 
  Changes Internet Explorers start page
 
  Creates a Tab-Seperated log file which includes:
    Field 1: Time and Date
    Field 2: Machine Name
    Filed 3: Messages - Infected, Clean, Infected that have been deleted
Usage:
  1. Set log file
  2. Set default IE start page URL
  3. Execute.
 
Author:  Nathan Hartley
Date:    5/5/00 11:08AM
Notes:  
-->
<package>
<job id="1">
<?job debug="false" error="false" ?>
<script language="VBScript">
</script>
<script language="JScript">
// To turn off logging set sLogFile=""
var sLogFile = "\\\\NTServer\\MainApps\\ILoveYou.log";
// Internet Explorer Start Page set on infected machines
var sURL     = "http://www.secu.org/default2.htm";

var oFso = new ActiveXObject("Scripting.FileSystemObject");
var oShell = new ActiveXObject( "WScript.Shell" );
var sDirWin = oFso.GetSpecialFolder(0);
var sDirSystem = oFso.GetSpecialFolder(1);
var sDirTemp = oFso.GetSpecialFolder(2);
var sDirDL = readReg("HKCU\\software\\microsoft\\internet explorer\\download directory");
var bInfected;
if (oFso.FileExists(sDirSystem + "\\mskernel32.vbs")){
  oFso.DeleteFile(sDirSystem + "\\mskernel32.vbs",true);
  bInfected = true;
  }
if (oFso.FileExists(sDirWin + "\\Win32dll.vbs")){
  oFso.DeleteFile(sDirWin + "\\Win32dll.vbs",true);
  bInfected = true;
  }
if (oFso.FileExists(sDirSystem + "\\LOVE-LETTER-FOR-YOU.TXT.VBS")){
  oFso.DeleteFile(sDirSystem + "\\LOVE-LETTER-FOR-YOU.TXT.VBS",true);
  bInfected = true;
  }
if (oFso.FileExists(sDirSystem + "\\LOVE-LETTER-FOR-YOU.HTM")){
  oFso.DeleteFile(sDirSystem + "\\LOVE-LETTER-FOR-YOU.HTM",true);
  bInfected = true;
  }
if (oFso.FileExists(sDirDL + "\\win-bugsfix.exe")){
  oFso.DeleteFile(sDirDL + "\\win-bugsfix.exe",true);
  bInfected = true;
  }
if (delReg("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MSKernel32")) bInfected=true;
if (delReg("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\WIN-BUGFIX")) bInfected=true;
if (delReg("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices\\Win32DLL")) bInfected=true;
if (bInfected) {
  var msg = "Your PC was infected with the ILOVEYOU virus.\n\n";
  msg += "Please wait while it is cleaned up.";
  oShell.Popup( msg ,10,"Notice:",48);
  writeReg("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page",sURL);
  log(sLogFile,"Infected with ILOVEYOU.A");
  drives();
   oShell.Popup("The ILOVEYOU virus has been removed from this system.",30,"Notice:",48);
  WScript.Quit(1);
  }
log(sLogFile,"Clean - ILOVEYOU.A was not detected.");
var msg = "Your PC was not infected with the ILOVEYOU virus!\n\n";
msg += "Thank you for not executing unknown e-mail attachments.";
oShell.Popup( msg ,30,"Notice:",64); 
WScript.Quit(0);

/* Functions */
function delReg( sName ){
  var oShell = new ActiveXObject("WScript.Shell");
  try{
  oShell.RegDelete( sName );
  return( true );
  }
  catch(error){ return( false )}
  }
 
function drives(){
  var fso, e ;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  e = new Enumerator(fso.Drives);
  for (; !e.atEnd(); e.moveNext()){
    if ((e.item().DriveType == 2) || (e.item().DriveType == 3)){
      if (!fso.FileExists(e.item().RootFolder+"drclnily.txt")){
        cleanFiles( e.item() );
        var msg = "This drive has been cleaned of ILoveYou virus infected files.\n";
        writeText(e.item().RootFolder + "drclnily.txt", msg );
        }     
      }
    }
  }
 
function cleanFiles( dir ){
   var f;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   // Get Current Folder  
   var srcFolder = fso.GetFolder( dir );
   // Get Files in current directory  
   var files = new Enumerator( srcFolder.files );
 
  // Loop through files 
   for(; !files.atEnd(); files.moveNext() ){
      f = files.item();
      if (fso.GetExtensionName(f.Path).toLowerCase() == "vbs"){
        var f2 = fso.OpenTextFile( f.Path , 1);
        var sLine = f2.ReadLine();
        f2.Close();
        if ( sLine.indexOf("i hate go to school") > 0 ){
        try{
          log(sLogFile,"Deleted ILOVEYOU infected file: " + f.Path);
          f.Delete(true); }
        catch( oError ){}
        }
        }
      else if ( fso.GetFileName(f).toLowerCase() == "script.ini" ){
      try{
        log(sLogFile,"Deleted file: " + f.Path);
        f.Delete(true);
        }
      catch( oError ){}
        }
    }
 
   // Get any sub folders to current directory 
    var subs = new Enumerator( srcFolder.SubFolders );
 
  // Loop through sub folder list and scan
  // through a recursive call to this function
   for(; !subs.atEnd(); subs.moveNext() ){
       cleanFiles( subs.item() );
      }
    }
function log(sLogFile, sMessage){
  if ( sLogFile == "" ) return(false);
  var ForAppending = 8;
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var WshNetwork = new ActiveXObject("Wscript.Network");
  var failed=0 
  while ( (failed < 20) && (failed != -1) ){
    try{
  f = fso.OpenTextFile( sLogFile , ForAppending, true);
  f.WriteLine(new Date().toUTCString() + "\t" + WshNetwork.ComputerName + "\t" + "\t" + sMessage);
  f.Close();
  failed=-1;
  }
    catch(err){
  failed++;
  WScript.Sleep(1000);
    }
  }   
  return( ( failed=-1)? true : false);
}
function readReg( sName ){
  var oShell = new ActiveXObject("WScript.Shell");
  try{
  return( oShell.RegRead( sName ) );
  }
  catch(error){ return( null )}
  }
 
function writeReg( sName, aData, sType ){
  var oShell = new ActiveXObject("WScript.Shell");
  if ( writeReg.arguments.length < 3 ) sType = "REG_SZ";
  try{
    oShell.RegWrite( sName, aData, sType );
    return(true);
    }
  catch(error){ return(false); }
  }
function writeText(sLogFile, sMessage){
  if ( sLogFile == "" ) return(false);
  var ForAppending = 8;
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var WshNetwork = new ActiveXObject("Wscript.Network");
  var failed=0 
  while ( (failed < 20) && (failed != -1) ){
    try{
      f = fso.OpenTextFile( sLogFile , ForAppending, true);
      f.Write(sMessage);
      f.Close();
      failed=-1;
      }
    catch(err){
      failed++;
      WScript.Sleep(1000);
      }
    }   
  return( ( failed=-1)? true : false);
  }
 
 
</script>
</job>
</package>

Comments:

Other virus, worms, trojans and etc!
By Vinicius on Friday, December 16, 2005 (PST)

Hi Daren,

 

My name is Vinicius, i´m from Brasil and I want to know if this script that remove the I love you virus can be used to remove others unpleasement files?

 

 

Reply to this Comment

Add Your Comment



WSH and ADSI Administrative Scripting

New Articles
  • List installed COM objects and associated ProgIDs
    Script: Lists all COM Objects and their associated ProgIDs (If available). Win32_ClassicCOMClassSetting

  • Script: File Rotator
    Script: Rotate files where the most current file has the lowest number in the archive. When files exceed the retention period, they are deleted. Typically used for log files, backups, etc..

  • Script: Create IIS Website and DNS record
    Script: Dan Casier sent me this script that will create a website and appropriate DNS record. The script is intended for Windows 2000 Server with local DNS and necessary DNS mof installed.


  • Winscripter   |  WSH   |  Forums   |  Downloads   |  Books   |  Links   |  Amazon