Jump to content

WSH-Security mal ganz schnell


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo liebe VBS Programmierer,

 

für alle die etwas mehr WSH-Sicherheit möchten, habe ich mal ein kleines VB Skript geschrieben!

 

Gruß

Tom Del Greco

 

'___________________________________________
'                                           
'             WSH Signed Scripts            
'       Create for Windows 2000/XP/2003     
'
'         from Tom Del Greco 15.12.07
'         last change:
'
'___________________________________________

'
' Mit dieses kleinen Skripte koennen die Ausführ-
' eigenschaften von VB-Skripten auf einen 
' Windows 2000/2003/XP gesteuert werden.

' ACHTUNG : Wenn das Argument "/cert" ausgeführt
' wird, können keine Skripte ausgeführt werden 
' die kein Zertifikat vom Betriebsystem erhalten
' haben. Sollte es dennoch vorkommen das man diese
' Option, ohne Zertifikat ausgeführt hat, kann man 
' den Registry DWORD Einträge von Hand wieder auf 
' NULL (0) zurück setzen!


On Error Resume Next

Function WSHSec(DWORD_Value)
' dwValue 0 /runall Alle Skripte werden ausgefuehrt.
'
' dwValue 1 /usermode Der Benutzer entscheidet, ob unsignierte
'                                  Skripte ausgefuehrt werden sollen.
'
' dwValue 2 /cert Nur signierte Skripte werden ausgefuehrt.
'	 
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."
  Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
      strComputer & "\root\default:StdRegProv")
          strKeyPath   = "SOFTWARE\Microsoft\Windows Script Host\Settings"
          strDWORD     = "TrustPolicy"
   strString    = "UseWINSAFER"
   String_Value = "0"

        'HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings
        oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strDWORD,DWORD_Value
        oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strString,String_Value

	'HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings
               oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strDWORD,DWORD_Value
End Function

Sub strRunAll 
Dim Answer
Set objShell=WScript.CreateObject("WScript.Shell")
   Answer = objShell.Popup("WSH Sicherheit deaktivieren?",1+64,"Warnung",1+64)
     If Answer = vbOk Then
        CALL WSHSec(0)
     End If
End Sub

Sub strCert
Dim Answer
Set objShell=WScript.CreateObject("WScript.Shell")
   Answer = objShell.Popup("Alle VB-Skript koennen nur noch mit einen gueltigen " & vbCrLf & _ 
                           "Zertifikat ausgefuehrt werden, wollen Sie diese" & vbCrLf & _
		    "Einstellung in der Registry wirklich uebernehmen?" ,1+64,"Warnung",1+64)
     If Answer = vbOk Then
        CALL WSHSec(2)
     End If
End Sub

Sub Help
  WScript.Echo ""
  WScript.Echo " Create by Tom Del Greco '2007"
  WScript.Echo ""
  WScript.Echo " vcert.vbs [/?] [/cert] [/usermode] [/runall]"
  WScript.Echo ""
  WScript.Echo " /?        - Help"
  WScript.Echo " /cert    - WSH-Skripte werden nur mit einen gültigen Zertifikat ausgeführt!"
  WScript.Echo " /usermode - Der Benutzer wird aufgefordert ob WSH-Skripte ausgeführt werden!"
  WScript.Echo " /runall   - Alle WSH-Skripte werden ohne Aufforderung ausgeführt!"
  WScript.Echo ""
  WScript.Quit
End Sub

iNumber = Wscript.Arguments.Count

If (WScript.Arguments.Count -1) OR (WScript.Arguments.Count > 1) Then
  CALL Help
End If

If (WScript.Arguments.Named.Exists("?")) AND iNumber = 1 Then 
   CALL Help
End If

If (WScript.Arguments.Named.Exists("cert")) AND iNumber = 1 Then 
  CALL strCert
  WScript.Quit
End If

If (WScript.Arguments.Named.Exists("usermode")) AND iNumber = 1 Then 
  CALL WSHSec(1)
  WScript.Quit
End If

If (WScript.Arguments.Named.Exists("runall")) AND iNumber = 1 Then 
  Call strRunAll
  WScript.Quit
End If

On Error Goto 0

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...