Author Topic: Two sides of the coin- automated script!  (Read 2548 times)

0 Members and 1 Guest are viewing this topic.

Offline polonus

  • Avast Überevangelist
  • Probably Bot
  • *****
  • Posts: 33900
  • malware fighter
Two sides of the coin- automated script!
« on: March 15, 2007, 08:31:22 AM »
Hi malware fighters,

If you want to enroll an anti-spyware program on a couple of machines, the following can be a usefull script:
It was used to enroll MS antispyware on various machines.
Code: [Select]
----------------------------------------------------------


'MSAS Install Script - ryan@overdose.net

'ipFile = path to list of hosts
ipFile = "C:\scripts\installmsas\list.txt"

'execPath = path to executable file
execPath = "C:\scripts\installmsas\msantispy.msi"

'execCommand = command to execute, including path, switches, etc
execCommand = "msiexec.exe /i c:\msantispy.msi /qn INSTALLDIR=c:\MSAS\"
execCommand2 = "C:\msas\gcasDtServ.exe /regserver"

'fileName = filename of executable
fileName = "msantispy.msi"

'pathToLog = path to the logfile
pathToLog = "C:\scripts\installmsas\install_log.txt"

On Error Resume Next
Set oNet = CreateObject("WScript.Network")
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oSvcLocal = GetObject("winmgmts:root\cimv2")
Set oIPFile = oFS.OpenTextFile(ipFile, 1, false)
Set oOutputFile = oFS.CreateTextFile(pathToLog, TRUE)


If (Err.Number <> 0) Then
     WScript.Echo "Cannot open " & ipFile
     WScript.Quit
End If


While Not oIPFile.atEndOfStream
     ip = oipFile.ReadLine()
     oOutputFile.WriteLine(vbCrLf & "Connecting to " & ip & "... ")
     WScript.Echo vbCrLf & "Connecting to " & ip & "... "

     Err.Clear
     Set oSvcRemote = GetObject("winmgmts:\\" & ip & "\root\cimv2")

     If (Err.Number <> 0) Then
          oOutputFile.WriteLine("Failed to connect to " & ip & ".")
          WScript.Echo "Failed to connect to " & ip & "."
     Else
          oNet.RemoveNetworkDrive "x:"
          oNet.MapNetworkDrive "x:", "\\" & ip & "\C$"

          ' copy msas file to remote pc
  Set oSourceFile = oSvcLocal.Get("cim_datafile=""" & replace(execPath, "\", "\\") & """")
          returnCode = oSourceFile.Copy("x:\\" & fileName)

If (returnCode <> 0 and returnCode <> 10) Then
' Failure detected and failure was not "file already exists."
oOutputFile.WriteLine("Failed copy " & fileName & " to " & ip & " - Error Code: " & returnCode)
WScript.Echo "Failed copy " & fileName & " to " & ip & " - Error Code: " & returnCode
        oNet.RemoveNetworkDrive "x:"
Else
oOutputFile.WriteLine(fileName & " copied to " & ip)
                WScript.Echo fileName & " copied to " & ip
                Set oProcess = oSvcRemote.Get("win32_process")
              returnCode = oProcess.Create(replace(execCommand, "\", "\\"))
                    If (returnCode <> 0) Then
                        oOutputFile.WriteLine("Failed to start install on " & ip & " Error Code: " & returnCode)
                        WScript.Echo "Failed to start install on " & ip & " Error Code: " & returnCode
                        oNet.RemoveNetworkDrive "x:"
                    Else
                        Set oDestFile = oSvcLocal.Get("cim_datafile=""x:\\" & fileName & """")
                        'Wait for the installation to complete.
                          For waitTime = 0 To 120   ' Lay and wait--up to two minutes for the installation to complete.
                        WScript.Sleep 10000     ' Sleep
                                'Delete temporary file as soon as possible after it is freed.
                              If (oDestFile.Delete() = 0) Then
                                  Exit For
                              End If
                          Next ' Otherwise, loop again and keep waiting...
                          oOutputFile.WriteLine("Installation successful on " & ip & ".")
                          WScript.Echo "Installation successful on " & ip & "."

                    End If     'Create process succeeded.

'now register server
returnCode = oProcess.Create(replace(execCommand2, "\", "\\"))
If (returnCode <> 0) Then
                        oOutputFile.WriteLine("Failed to register server on " & ip & " Error Code: " & returnCode)
                        WScript.Echo "Failed to register server on " & ip & " Error Code: " & returnCode
Else
                        oOutputFile.WriteLine("Registration successful on " & ip & ".")
                        WScript.Echo "Registration successful on " & ip & "."
                    End If
            End If
      End If
WEnd
oOutputFile.Close
If we analyse this script for what it is worth through for instance ScriptSentry it can also come in handy to enroll malicious code onto machines. Are you alerted now to the two-sidedness of the sword, called SCRIPT!,

polonus
« Last Edit: March 15, 2007, 08:34:28 AM by polonus »
Cybersecurity is more of an attitude than anything else. Avast Evangelists.

Use NoScript, a limited user account and a virtual machine and be safe(r)!