SMBv1 netzwerkweit deaktivieren

Autor: Norbert Fehlauer - vom 28.07.2017 - Kategorie(n): Anleitungen

SMBv1 netzwerkweit deaktivieren

Nach den diesjährigen Angriffen auf Netzwerke durch Verschlüsselungstrojaner wie WannaCry oder NotPetya, sollte man die Gelegenheit nutzen und das durch die Sicherheitslücke EternalBlue betroffene Protokoll SMBv1 netzwerkweit deaktivieren bzw. deinstallieren.

Seit Windows Vista (erschienen Januar 2007) nutzt jede Windows Version mindestens auch das Protokoll SMBv2 oder neuer. Nur Windows XP oder Windows Server 2003 können nur mit der alten SMBv1 Variante kommunizieren. Wer also kein Windows XP oder ähnliche alte Windows OS mehr im Einsatz hat, benötigt mit hoher Wahrscheinlichkeit das alte Protokoll nicht mehr, und wird es im Normalfall nicht mal benutzen. Da es aber standardmäßig immer noch aktiv ist, können Schwachstellen im Protokoll auch bei neuen Betriebssystemen ausgenutzt werden.

Nachfolgend wird die Herangehensweise beschrieben, wie man das Protokoll in einem Domänen-Netzwerk mittels Gruppenrichtlinie deaktiviert. Ab Windows 8.1 und neuer kann das komplette Protokoll auch deinstalliert werden, was natürlich die bessere Option darstellt.

Bevor man den folgenden Artikel komplett abarbeitet, hilft Blick auf diese Liste, welche Produkte SMBv1 verwenden:

SMB1 Product Clearinghouse
https://blogs.technet.microsoft.com/filecab/2017/06/01/smb1-product-clearinghouse 

Deaktivierung SMBv1
Für Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 sowie Windows Server 2008, Windows Server 2008R2, Windows Server 2012, Windows Server 2012R2 und Windows Server 2016 kann die Deaktivierung mittels Gruppenrichtlinie erfolgen. Die notwendigen admx/adml Dateien finden wir in den ehemaligen Security Compliance Manager Vorlagen, die mittlerweile als Zip geliefert werden:

Security baseline for Windows 10 "Creators Update" (v1703) – DRAFT
https://blogs.technet.microsoft.com/secguide/2017/06/15/security-baseline-for-windows-10-creators-update-v1703-draft 




Für Betriebssysteme älter als Windows 8.1 sind drei Richtlinien zu konfigurieren. Hierbei ist zwingend die Richtlinie „Configure SMB v1 client (extra setting needed for pre-Win8.1/2012R2)" korrekt zu konfigurieren. Ältere Windows Versionen besitzen eine Dienstabhängigkeit des Anmeldedienstes vom SMBv1 Client. Wird der SMBv1 Client also deaktiviert, startet der Anmeldedienst nicht mehr. Die erwähnte Richtlinie entfernt diese Abhängigkeit.



Zusätzlich sind dann noch die clientseitige Komponente (euer Windows kann nicht mehr mit einem SMBv1 Server kommunizieren) und die serverseitige Komponente (euer Windows stellt keine SMBv1 Schnittstelle mehr zur Verfügung bspw. für Admin- oder Druckerfreigaben).
Es sollten also sowohl für Serverbetriebssysteme als auch für Clientbetriebssysteme sowohl clientseitige als auch serverseitige SMBv1 Komponenten deaktiviert werden!





Zum Testen kann das Tool „Eternal Blues“ verwendet werden, welches hier zur Verfügung steht: http://omerez.com/eternalblues

Mit Hilfe des Tools kann das eigene Netzwerk auf EternalBlue Schwachstellen gescannt werden. Zusätzlich zeigt es aber auch an, ob SMBv1 in Verwendung ist.




Deinstallation SMBv1
Ab Windows 8.1 kann SMBv1 auch komplett deinstalliert werden. Das kann bspw. über Powershell erfolgen.

# check OS version as we can only run on Winodws 2012R2/Windows 8.1 or laterIf ([int](Get-CimInstance Win32_OperatingSystem).BuildNumber -lt 9600){     '#' * (76 + ($LocalHostName).Length)    "Sorry, the script cannot execute on $LocalHostName. It needs at least Windows Server 2012R2 or Windows 8.1."    Return}$check = Get-WindowsOptionalFeature -online | Where-Object {$_.FeatureName -eq "SMB1Protocol"}if ($check.State -eq 'enabled') {    Disable-WindowsOptionalFeature -FeatureName "SMB1Protocol" -Online -Norestart    Restart-Computer


}


 

Das Skript kann bspw. mittels GPO als geplanter Tasks auf die Computer verteilt werden. Das Skript prüft, ob es auf einem Windows 8.1 oder höher ausgeführt wird und danach ob das SMBv1 Protokoll installiert ist. Falls ja, dann wird es deinstalliert und direkt ein Neustart ausgeführt. Man den geplanten Task also auf den Computerstart triggern.



Als Aktion für den Task wählt man „Programm starten“ aus:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe


Und als Argument dann das entsprechende Powershellskript:

-executionpolicy bypass -file \\fileserv.domain.tld\sharename\SMB1\SMB1.ps1


Für neue Deployments sollte man natürlich gleich darauf achten, dass SMBv1 gar nicht erst installiert ist.  Microsoft hat bereits angekündigt, Windows 10 RS3, welches im Herbst 2017 erscheinen soll, standardmäßig ohne SMBv1 zu installieren.



Weiterführende Links zum Thema SMBv1: