WinConfig-Toolkit

Die unter "Wie installiere und konfiguriere ich ein sicheres und robustes Windows-System?" gegebenen Hinweise sind im Skript WinConfig.bat zusammengefasst. Das Skript winconfig.bat können Sie durch Veränderungen von Variablen an Ihre Systeme anpassen.

Das Skript ist unter ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/WinConfig.cab zu finden.

 Weiterhin nutzt das Skript Funktionalitäten, welche in in separaten Scripts verfügbar sind:

  • Applocker-Toolkit (Software Whitelisting-Konfiguration) bestehend mehreren aus Powershell- und Batch-Scripts, s. Applocker-Toolkit.
  • Firewall-ToolKit (Firewall-Konfiguration) bestehend aus ConfigFW.Bat und ConfigFWAudit.bat, s. weiter unten "Anpassen des Skriptes ConfigFW.bat".

 Systemvoraussetzungen

  1. Windows 8/Windows Server 2012 oder höher.
  2. Administrative Kommandozeile.

Nachdem Sie die Systemvoraussetzungen überprüft haben, laden Sie sich das Skript WinConfig.bat von ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/WinConfig.cab herunter und entpacken die Datei z.B. in das Verzeichnis C:\Windows\TEMP per Explorer oder mit folgendem Befehl:

    expand winconfig.cab -F:* C:\Windows\TEMP
 

Alle vorgenommen Änderungen sind rücknehmbar.
 

Das Skript speichert vor jeder Konfigurationsänderung die Originalkonfiguration, so dass das mitgelieferte Skript WinConfigRemove.bat alle durchgeführten Änderungen am System rückgängig machen kann.

Die Originalkonfigurationsdaten werden unter %SystemtRoot%\System32\config\URZ gespeichert. 
 
Winconfig.bat führt standardmäßig  folgende Aktionen aus:

  1. Registry-Backup nach %Systemroot%\System32\Config\URZ\Registry.Org.

  2. Isolieren des Systems vom Internet durch Konfiguration des Windows Firewalls, wie folgt:

    sämtlicher eingehender und ausgehender Verkehr ist abgeschaltet,
    außer für folgende Ausnahmen:

    ausgehender und eingehender Verkehr für alle vorhandenen Regeln der Windows Firewall ist für alle Adressen des lokalen Subnetzes erlaubt
    ausgehender ICMP-Verkehr ist weltweit erlaubt
    ausgehender DNS-Verkehr auf UDP Port 53 ist weltweit erlaubt
    ausgehender DHCP-Verkehr auf UDP Port 67 ist weltweit erlaubt
    ausgehender NTP-Verkehr auf UDP Port 123 ist weltweit erlaubt
    ausgehender FTP-Verkehr zu ftp.uni-rostock.de ist erlaubt

    Dabei wird die aktuelle Windows Firewall- und IPsec-Konfiguration gesichert und anschließend überschrieben.

    Die Firewall-Konfiguration ist einfach anpassbar, s. Kurzanleitung zur Nutzung des WinConfig-Toolkits.

  3. Konfigurieren und Härten des Remotedesktopzuganges.

  4. UAC wird für alle Administratoren aktiviert und die UAC-Whitelist Funktionalität deaktiviert.  

  5. Der DLL-Suchpfad wird eingeschränkt.

  6. Die Schreibrechte für die Gruppe Benutzer werden aus der ACL der Wurzel des Systemlaufwerks entfernt.

  7. Ein neues zusätzliches Administrator-Konto "Admin" wird angelegt und mit einem Zufallspasswort oder einem Passwort Ihrer Wahl versehen (nur auf Servern).

  8. Der interne Administrator wird deaktiviert.

  9. Windows Backup wird installiert (nur auf Servern).

  10. Diverse Komfortkonfigurationsanpassungen werden durchgeführt.

  11. TCPIPv6 wird deaktiviert. Dies lässt sich über die Skriptvariable DISABLEIPV6 steuern, s. Tabelle der Konfigurationsvariablen weiter unten.

  12. Das "High Performance" Power-Schemas wird aktiviert. Dies lässt sich über die Skriptvariable ENABLEHIGHPERFPOWERSCHEME steuern, s. Tabelle der Konfigurationsvariablen weiter unten.

  13. Dem Programm ftp.exe wird erlaubt über das Firewall zu kommunizieren.

  14. Das Verzeichnis C:\Soft\Tools wird angelegt und der Systemsuchpfad wird um den Pfad C:\Soft\Tools erweitert.

  15. UAC-Helper-Skripte (WinConfigRemove.bat, ConfigFW.bat usw. s. Tabelle weiter unten), Applocker-Toolkit-Skripte (SRP-Enable.bat, SRP-Disable.bat, WUsInstall.bat usw. s. Tabelle weiter unten), Systemtools (SysInternals-Tools, portqry.exe usw.) werden per FTP kopiert und nach C:\Soft\Tools entpackt. Notepad++ wird nach C:\Soft\Apps\Notepad++ entpackt.

  16. UAC-Helper werden installiert. Dies lässt sich über die Skriptvariable ENHANCEUAC steuern, s. Tabelle der Konfigurationsvariablen weiter unten.
     
  17. GUI-Einstellungen des Explorers, der cmd.exe und des Desktops des aktuellen Nutzers und des Standardbenutzerprofils werden angepasst. Dies lässt sich über die Skriptvariable GUICONFIG steuern, s. Tabelle der Konfigurationsvariablen weiter unten.

  18. Installation aller sicherheitsrelevanten Updates.

  19. Wahlweise wird entweder Microsoft Security Essentials oder Sophos Anti-Virus automatisiert installiert.

  20. Konfiguration des "Versiegeln" des Systems per Software Whitelisting beim nächsten Reboot, wenn möglich, s. Systemvoraussetzungen in Dokument "Skriptbasierte "Versiegelung" des System mittels Applocker - Keine 0-Day-Exploits mehr". 

 

Inhalt der WinConfig-Toolkit Archive

Archiv Inhalt
ApplockerToolkit.cab Im Dokument "Skriptbasierte "Versiegelung" des System mittels Applocker - Keine 0-Day-Exploits mehr" angegeben.
ConfigFW.cab ConfigFW.bat - Batchdatei: Isoliert das System vom Internet
ConfigFW.cab ConfigFWAudit.bat - Batchdatei: Konfiguriert das Windows Firewall Logging in das Sicherheitslog des Eventlogs. Skript-Parameter: 0 - Deaktiviert 1 - Aktiviert
Notepad++.exe Notepad++-Editor
SysTools.cab Sysinternals-Tools
UACHelper.cab ConfigGUI.bat - Batchdatei: setzt GUI-Konfiguration für den aktuellen Nutzer
UACHelper.cab WinConfigRemove.bat - Batchdatei zum Wiederherstellen der Ursprungskonfiguration

Anpassen des Skriptes WinConfig.bat

 

Die Systemkonfiguration des Winconfig-Skriptes ist einfach anpassbar, indem Sie eine Datei namens WinConfig.cfg im selben Verzechnis wie WinConfig.bat oder im Verzeichnis C:\Logs\WinConfig erstellen und diese Datei zeilenweise mit Konfigurationsparametern aus der nachfolgenden Tabelle füllen, z.B.
 

 

AVINS=0
ADMINPWD=Super langes Passwort für den Administrator

 

 
Die folgende Tabelle beschreibt Variablen, die Sie nutzen können, um das Skript Winconfig.bat an Ihre Umgebung anzupassen:

WinConfig.bat Variablen

Variable Mögliche Werte Standard Bedeutung
ADMID Bis zu 64 Zeichen - Administratorname
ADMPWD Bis zu 64 Zeichen pwd- %RANDOM% %RANDOM% -adm# Passwort des Administrator-Kontos
ADMWKs DNS-Namen oder Computernamen %PCNAME% Erlaubte Systeme für die Benutzung des Administrator-Kontos
ALLOWEDIPS IP-Adresse(n) oder NONE NONE Zugelassenene Subnetze und /oder IP-Adressen für ausgehenden und eingehenden Netzwerkverkehr
AUTOREBOOT 0 oder 1 0 Automatischer Neustart (0=nein, 1=ja)
CISEAL 0 oder 1 0 Versiegelung des Systems per Software Whitelisting mit Code Integrity (0=nein, 1=ja)
DISABLEESC 0 oder 1 1 Deaktivieren der Enhanced Security Configuration (ESC) des Internet Explorers (0=nein, 1=ja)
DISABLEIPV6 0 oder 1 1 Deaktivierung von IPv6 (0=nein, 1=ja)
DISABLEPS2 0 oder 1 1 Deaktivierung von PowerShell 2 (0=nein, 1=ja)
DNS1 DHCP oder IP-Adresse DHCP DNS-Server-Adressen des Systems
DNS2 DHCP oder IP-Adresse DHCP DNS-Server-Adressen des Systems
DOWNLOADENGINE BITSADMIN oder FTP oder LOCAL BITSADMIN Download-Engine der winconfig.bat
ENABLEHIGHPERFPOWERSCHEME 0 oder 1 1 Aktiviere High Performance Power-Schema (0=nein, 1=ja)
ENABLEINETSVCPORTs 0 oder 1 0 Konfiguration von zugelassenen Ports für Internetdienste (FTP, SSH, HTTP, HTTPS) (0=nein, 1=ja)
ENHANCEUAC 0 oder 1 1 Aktiviere UAC-Helper
FIREWALLCONFIG 0 oder 1 1 Konfiguration der Windows Firewall (0=nein, 1=ja)
FIREWALLENABLED 0 oder 1 0 Aktiviere Windows Firewall (0=nein, 1=ja)
GUICONFIG 0 oder 1 1 Konfiguration der GUI (0=nein, 1=ja)
GW DHCP oder IP-Adresse DHCP Gateway-Adresse des Systems
ICMPv4INEXCEPTIONIPs IP-Adressen oder Subnetze - Zugelassene IPv4-Adressen für eingehenden ICMP-Verkehr
ICMPv6INEXCEPTIONIPs IP-Adressen oder Subnetze ANY Zugelassene IPv6-Adressen für eingehenden ICMP-Verkehr
INTNAME Alphanumerische Zeichen - Name der Netzwerkverbindung
IP DHCP oder IP-Adresse DHCP IP-Adresse des Systems
IPCONFIG 0 oder 1 0 Konfiguration der IP-Adressen (0=nein, 1=ja)
KMSIP IP-Adresse - IP-Adresse des Key Management Servers
MASK DHCP oder IP-Adresse DHCP Subnetzmaske des Systems
MAILSERVERIPs IP-Adresse(n) - IP-Adresse(n) des Mailsystems für HTTPS,IMAP,POP3,SMTP
NTPSERVERIP IP-Adresse - IP-Adresse des NTP Servers
PCNAME Bis zu 15 alphanumerische Zeichen PC %RANDOM% Name des Systems
OUTIPEXCEPTIONS 127.0.0.1, 224.0.0.0/8, 169.254.0.0/16 Erlaube sämtlichen ausgehenden Verkehr für angegebene IP-Adressen und/oder Subnetze  
PROXYBYPASS DNS-Name - Direkt ansprechbare Adressen
PROXYSERVERIPs IP-Adresse (n) - IP-Adresse(n) des Proxy-Servers
PROXYSERVERNAME DNS-Name - DNS-Name des Proxy-Servers
PROXYSERVERPORT TCP-Port - TCP-Port des Proxy-Servers
RDIPs NONE oder IP-Adressen NONE Erlaubte IP-Adressen für Remotedesktopzugriff auf das System
RESTRICTOUTBOUNDTRAFFIC 0 oder 1 1 Beschränke ausgehenden Verkehr
SETCOMPNAME 0 oder 1 0 Konfiguration des Computernamens (0=nein, 1=ja)
SRPSEAL 0 oder 1 1 Versiegelung des Systems per Software Whitelisting mit Applocker (0=nein, 1=ja)
SHOWPWDs 0 oder 1 1 Zeige gesetzte Passwoerter an (0=nein, 1=ja)
SYSTOOLSINS 0 oder 1 1 Installation von Systemtools nach C:\Soft\Tools wie Sysinternals-Tools
TCPOUTAPPEXCEPTIONS 0 oder 1 1 Definiere Ausnahmen für Programme durch die Variable TRUSTEDTCPOUTAPPs festgelegte Programme
TCPOUTEXCEPTIONS 0 oder 1 1 Definiere Ausnahmen für TCP-Out-Verkehr RDP, SSH
TRUSTEDIPS IP-Adresse(n) oder NONE NONE Erlaubte Subnetze und /oder IP-Adressen für den IPSec-Packetfilter
TRUSTEDTCPOUTAPPs %ProgramFiles(x86)%\ Internet Explorer\ iexplore.exe, %ProgramFiles%\ Internet Explorer\ iexplore.exe Liste von Programmen für die keine Restriktionen beim ausgehenden Verkehr gelten.  
UNATTENDED 0 oder 1 0 Startet die Konfiguration ohne Abfrage (0=nein, 1=ja)
USEALTNOTEPAD 0 oder 1 1 Installation und Nutzung von Notepad++ für UAC-Helper Editor... und Elevated Editor...
USEPROXY 0 oder 1 0 Benutze Proxy-Server (0=nein, 1=ja)
USRID Bis zu 64 Zeichen - Standardbenutzername
USRPWD pwd-%RANDOM% %RANDOM% -usr# - Passwort des Standardbenutzerkontos
WUINS 0 oder 1 1 Installation von Windows Updates (0=nein, 1=ja)

Ausführliche Erläuterungen zu den Variablen für die Sophos-Installation finden Sie im Abschnitt "Anpassen des Skriptes SophosInstall.bat" weiter unten.

Anpassen des Skriptes WinConfigRemove.bat

Das Skript WinConfigRemove.bat macht alle sicherheitsrelevanten Änderungen des Skriptes WinConfig.bat rückgängig und stellt die Ursprungskonfiguration vor dem Start des Skriptes WinConfig.bat wieder her.

Folgende Änderungen werden vom Skript WinConfigRemove.bat nicht rückgängig gemacht:

  1. Die Nutzerkonten werden nicht in Ihren ursprünglichen Zustand zurückgestellt, d.h. der interne Administrator bleibt deaktiviert und nur im abgsicherten Modus benutzbar und die neuangelegten Konten bleiben mit ihren Einstellungen bestehen.
  2. Die angelegten Snapshots und Snapshot-Schedulertasks werden nicht gelöscht.
  3. Die unter den Pfaden C:\Logs\Schedule, C:\Soft und %Systemroot%\System32\Config abgelegten Programme und Daten werden nicht gelöscht.

Die Konfiguration des WinconfigRemove-Skriptes ist einfach anpassbar, indem Sie eine Datei namens WinConfigRemove.cfg im selben Verzeichnis wie WinConfigRemove.bat oder im Verzeichnis C:\Logs\WinConfig erstellen und diese Datei zeilenweise mit Konfigurationsparametern aus der nachfolgenden Tabelle füllen, z.B.
 

 

AVUNINS=0
AUTOREBOOT=0

 

Die folgende Tabelle beschreibt die Variablen, welche Sie nutzen können, um das Skript Winconfig.bat an Ihre Umgebung anzupassen:

Variable Mögliche Werte (Standard) Bedeutung
AVUNINS 0 oder 1 (1) Deinstallation von Sophos (0=nein, 1=ja)
AUTOREBOOT 0 oder 1 (1) Automatischer Neustart (0=nein, 1=ja)

Anpassen des Skriptes ConfigFW.bat

Das Skript ConfigFW.bat isoliert das System per Windows Firewall vom Internet wie folgt:

sämtlicher eingehender und ausgehender Verkehr ist abgeschaltet,
außer für folgende Ausnahmen:

eingehender und ausgehender Verkehr für alle vorhandenen Regeln der Windows Firewall ist für alle Adressen des lokalen Subnetzes erlaubt
ausgehender ICMP-Verkehr ist weltweit erlaubt
ausgehender DNS-Verkehr auf UDP Port 53 ist weltweit erlaubt
ausgehender DHCP-Verkehr auf UDP Port 67 ist weltweit erlaubt
ausgehender NTP-Verkehr auf UDP Port 123 ist weltweit erlaubt
ausgehender HTTP/HTTPS-Verkehr für den Prozess %systemroot%\system32\svchost.exe ist weltweit erlaubt
ausgehender RDP-Verkehr für den Prozess %systemroot%\system32\mstsc.exe ist weltweit erlaubt
ausgehender SSH-Verkehr für den Prozess %systemdrive%\Soft\Tools\putty.exe ist weltweit erlaubt
beliebiger ausgehender Verkehr ist für folgende Anwendungen erlaubt:

  • Internet Explorer

Das Firewall-Logging wird wie folgt konfiguriert:

  • Log-Dateiname: C:\Logs\Firewall\firewall.log
  • Maximale Größe: 32 MB
  • Aufgezeichneter Verkehr: eingehend und ausgehend

Die Konfiguration des ConfigFW-Skriptes ist einfach anpassbar, indem Sie eine Datei namens im Verzeichnis C:\Logs\WinConfig erstellen und diese Datei zeilenweise mit Konfigurationsparametern aus der nachfolgenden Tabelle füllen, z.B. 
 

TCPOUTEXCEPTIONS=1

RDIPs=192.168.100.99/32,192.168.200.0/24 

 
Die folgende Tabelle beschreibt Variablen, die Sie nutzen können, um das Skript Winconfig.bat an Ihre Umgebung anzupassen:

ConfigFW.bat Variablen

Variable Mögliche Werte Standard Bedeutung
ALLOWEDIPS IP-Adresse(n) - Zugelassenene Subnetze und /oder IP-Adressen für alle bestehenden Firewall-Regeln
DNSIPs IP-Adresse(n) - DNS-Servers IP-Adresse(n)
ENABLEINETSVCPORTs 0 oder 1 0 Konfiguration von zugelassenen Ports für Internetdienste (FTP, SSH, HTTP, HTTPS) (0=nein, 1=ja)
FIREWALLCONFIG 0 oder 1 1 Konfiguration der Windows Firewall (0=nein, 1=ja)
FIREWALLENABLED 0 oder 1 0 Aktiviere Windows Firewall(0=nein, 1=ja)
ICMPv4INEXCEPTIONIPs IP-Adressen oder Subnetze - Zugelassene IPv4-Adressen für eingehenden ICMP-Verkehr
ICMPv6INEXCEPTIONIPs IP-Adressen oder Subnetze ANY Zugelassene IPv6-Adressen für eingehenden ICMP-Verkehr
IPSECCONFIG 0 oder 1 0 Konfiguration des IPSec-Packetfilters (0=nein, 1=ja)
IPSECENABLED 0 oder 1 0 Aktiviere IPSec-Packetfilter (0=nein, 1=ja)
KMSIP IP-Adresse - IP-Adresse des Key Management Servers
MAILSERVERIPs IP-Adresse(n) - Mailserver IP-Adresse(n)
OUTIPEXCEPTIONS IP-Adresse(n) 127.0.0.1, 224.0.0.0/8, 169.254.0.0/16 Erlaube sämtlichen ausgehenden Verkehr für angegebene IP-Adressen und/oder Subnetze
PROXYBYPASS DNS-Name - Direkt ansprechbare Adressen
PROXYSERVERIPs IP-Adresse (n) - IP-Adresse(n) des Proxy-Servers
PROXYSERVERNAME DNS-Name - DNS-Name des Proxy-Servers
PROXYSERVERPORT TCP-Port - TCP-Port des Proxy-Servers
RDIPs NONE oder IP-Adressen - Erlaubte IP-Adressen für Remotedesktopzugriff auf das System
RESTRICTOUTBOUNDTRAFFIC 0 oder 1 1 Beschränke ausgehenden Verkehr
TCPOUTAPPEXCEPTIONS 0 oder 1 1 Definiere Ausnahmen für Programme durch die Variable TRUSTEDTCPOUTAPPs festgelegte Programme
TCPOUTEXCEPTIONS 0 oder 1 1 Definiere Ausnahmen für TCP-Out-Verkehr RDP, SSH
TRUSTEDIPS IP-Adresse(n) - Subnetze und /oder IP-Adressen für die das Firewall deaktiviert ist
TRUSTEDTCPOUTAPPs Programme %ProgramFiles(x86)%\ Internet Explorer\ iexplore.exe,%ProgramFiles%\ Internet Explorer\iexplore.exe Liste von Programmen für die keine Restriktionen beim ausgehenden Verkehr gelten.
UNATTENDED 0 oder 1 0 Startet die Konfiguration ohne Abfrage (0=nein, 1=ja)
USEPROXY 0 oder 1 0 Benutze Proxy-Server (0=nein, 1=ja)



     

Firewallregeln festlegen

Weiterhin ist es möglich zusätzliche Filterregeln zu konfigurieren, indem Sie eine Datei namens ConfigFW_Rules.cfg im Verzeichnis C:\Logs\WinConfig erstellen und diese Datei zeilenweise mit Regeln der folgenden, mit Semikolon getrennten, Spalten füllen.

Kommentare werden mit dem Rautenzeichen # als erstes Zeichen in einer Zeile gekennzeichnet.

 

  Spalte1 Spalte2 Spalte3 Spalte4
Bedeutung Adresse(n) Port Protokoll Richtung
Pflichtfeld ja ja ja ja
Mögliche Werte mehrere beliebige Adressen mit Komma getrennt im CIDR-Format oder ANY Quell- oder Zielportnummer oder ANY TCP oder UDP oder ANY IN oder OUT
Beispiele ANY 53 UDP OUT

  

 

  Spalte5 Spalte6
Bedeutung Programm Dienst
Pflichtfeld nein nein
Mögliche Werte Vollständiger Pfad zum Programm Eventuell zum Programm gehörender Windows-Dienst
Beispiele C:\Windows\system32\lsass.exe NTDS

  

 

Beispiele

 

ANY;80;TCP;IN

 

Erlaubt eingehenden Verkehr auf den TCP-Port 80 von beliebigen IP-Adressen.

 

192.168.2.1/32,139.30.0.0/16;636;TCP;IN

 

Erlaubt eingehenden Verkehr auf den TCP-Port 636 von der IP-Adresse 192.168.2.1 und aus dem IP-Subnetz 139.30.0.0.
 

 

139.30.8.7/32,192.168.0.0/16;53;UDP;OUT

 

Erlaubt ausgehenden Verkehr auf den UDP-Port 53 zu der IP-Adresse 139.30.8.7 und zu dem IP-Subnetz 192.168.0.0.

 

ANY;ANY;ANY;IN;C:\Program Files (x86)\jre1.6.0_13\bin\java.exe

 

 

Erlaubt beliebigen eingehenden Netzwerkverkehr für das Program 'C:\Program Files (x86)\jre1.6.0_13\bin\java.exe'

Weitere nützliche Kommandos zum Umgang mit der Firewall

GetDrops.bat - Anzeige von abgewiesenen Verbindungen aus dem Firewall-Log

  • Syntax:
    • GetDrops.bat [A] [S] [R] [?]

      ? = Show help
      No Parameter = Show dropped packets except NetBIOS and Multicast
      A = Show all dropped packets
      R = Show all dropped packets (received)
      S = Show all dropped packets (sent)

SortFWLogs.bat - Separieren der Firewall-Logdatei in einzelne Logdateien für abgewiesene, zugelassene, empfangene, gesendete und nicht aufgezeichnete Verbindungen

  • Starten Sie den Prozess mit dem Aufruf "SortFWLogs.bat"

    Folgende Dateien werden unter C:\Logs\Firewall erzeugt:

    FW_ALLOW.txt
    FW_DROP.txt
    FW_INFO-EVENTS-LOST.txt
    FW_RECEIVE.txt
    FW_SEND.txt


ConfigFWAudit.bat - Ein/Auschalten der Aufzeichnung von Firewallereignissen in das Sicherheits-Eventlog

  • Einschalten der Aufzeichnung von Firewallereignissen in das Sicherheits-Eventlog

    ConfigFWAudit.bat 1
  • Ausschalten der Aufzeichnung von Firewallereignissen in das Sicherheits-Eventlog

    ConfigFWAudit.bat 0


ControlFW.bat - Konfigurieren von globalen Firewall-Parametern, z.B. nur definierten ausgehenden Verkehr zulassen

  • Zulassen von beliebigem ausgehenden ausgehenden Verkehr, jeglicher ausgehender Verkehr ist erlaubt.

    ControlFW.bat outrulesoff
     
  • Deaktivierung von beliebigem ausgehenden Verkehr, nur definierte Ausnahem sind erlaubt.

    ControlFW.bat outruleson

Bei Fragen oder Hinweisen zu diesem Dokument melden Sie sich bitte per E-Mail bei joerg.maletzky(at)uni-rostock.de.