Skip to main content

SMB-Signierung: Verhindern Sie Netzwerkübernahme-Angriffe

Die Bedeutung der SMB-Signierung

Beim Testen von Windows-Umgebungen stellen wir regelmäßig fest, dass das verschlüsselte Kennwort eines Benutzers mit hohen Berechtigungen über das Netzwerk gesendet wird. In Kombination mit Systemen, bei denen die SMB-Signierung deaktiviert ist, kann ein Angreifer oder eine böswillige Person durch einen NTLM-Relay-Angriff die Privilegien innerhalb des Netzwerks erhöhen. Je nach Netzwerkumgebung kann ein Angreifer in der Lage sein, seine Privilegien auf die höchste Stufe zu erhöhen.

Net-NTLM verstehen

Windows verwendet viele verschiedene Protokolle für die Authentifizierung. Eines dieser Protokolle ist Net-NTLM. Dieses Protokoll wird verwendet, um Benutzer über das Netzwerk zu authentifizieren. Es gibt zwei Versionen: Net-NTLMv1 und Net-NTLMv2. Beide Versionen berechnen einen so genannten Net-NTLM-Hash, indem sie das verschlüsselte Passwort eines Benutzers in eine zufällige Zeichenfolge aus acht Bytes umwandeln. Net-NTLMv1 ist offensichtlich weniger sicher als Version 2 und ist seit Windows Vista und Windows Server 2008 standardmäßig deaktiviert.

Abfangen von Authentifizierungsanfragen

Mit dem Tool Responder können wir Authentifizierungsanfragen abfangen, die über das Netzwerk gesendet werden. Ein Beispiel finden Sie unten:

 

Ein Angreifer kann versuchen, mit diesem Hash zwei Dinge zu tun:

 

  1. Versuchen Sie, das Passwort offline mit Tools wie John the Ripper oder Hashcat zu knacken. Die Erfolgsquote hängt jedoch von der Stärke des Passworts ab. Ein starkes Passwort ist nicht leicht zu knacken.
     
  2. Führen Sie einen NTLM-Relay-Angriff auf alle internen Systeme durch, die keine SMB-Signierung erzwingen.

 

NTLM-Relay-Angriff

Der NTLM-Relay-Angriff nutzt das Net-NTLM-Protokoll aus. Ein Angreifer fängt eine legitime Authentifizierungsanfrage ab, ändert den Inhalt und leitet die Anfrage an einen Computer weiter, der die SMB-Signierung nicht durchsetzt. Dadurch wird der Angreifer auf dem Zielsystem mit dem Kontext des Benutzers authentifiziert, der die ursprüngliche Authentifizierungsanfrage gesendet hat. Im schlimmsten Fall kann der Angreifer dies nutzen, um Remotecode auf dem System auszuführen. Ein Angreifer könnte diesen Angriff auch nutzen, um auf Netzwerkfreigaben zuzugreifen, auf die er normalerweise keinen Zugriff hat.

 

 

 

Durchführen eines NTLM-Relay-Angriffs

Um den NTLM-Relay-Angriff durchzuführen, werden drei Tools verwendet: NetExec, Responder und ntlmrelayx. Da ein NTLM-Relay-Angriff nur auf Systemen funktioniert, auf denen die SMB-Signierung deaktiviert ist, wird eine Liste der Systeme benötigt, auf denen die SMB-Signierung deaktiviert ist. Diese Liste kann mit NetExec mit dem folgenden Befehl erstellt werden:

 

netexec smb 192.168.126.0/24 --gen-relay-list targets.txt

Dies prüft den Adressbereich für Rechner, bei denen SMB aktiviert und die SMB-Signierung deaktiviert ist. Die IP-Adressen, die übereinstimmen, werden in die Datei geschrieben.

 

Als Nächstes verwenden wir die Tools Responder und ntlmrelayx Utilities. Der Responder ist dafür verantwortlich, den Net-NTLM-Hash zu erfassen und ihn an ntlmrelayx weiterzuleiten, das sich dann auf dem/den angegebenen Host(s) über SMB mit dem erhaltenen Hash authentifiziert. Dazu müssen der SMB- und der HTTP-Server in der Konfiguration des Responders deaktiviert werden. Sie können dies tun, indem Sie die Konfigurationsdatei öffnen und die Werte hinter SMB und HTTP auf ‚Aus‘ ändern. Die Konfigurationsdatei sollte wie folgt aussehen:

 

 

 

Als nächstes muss Responder auf der aktiven Netzwerkschnittstelle gestartet werden, in diesem Fall eth0. Dazu können Sie den folgenden Befehl ausführen:

 

responder -I eth0 -d -w

Schließlich verwenden wir das Dienstprogramm ntlmrelayx, um den Inhalt der SAM-Datenbank von den Zielsystemen zu extrahieren. Dazu starten wir ntlmrelayx mit dem folgenden Befehl:

 

python3 ntlmrelayx.py -tf targets.txt

Sobald ntlmrelayx einen Net-NTLM-Hash von Responder erhält, versucht es, sich bei den Systemen in der Datei zu authentifizieren. Wenn die Authentifizierung erfolgreich ist, versucht ntlmrelayx, den Inhalt der SAM-Datenbank zu extrahieren. Dazu muss der Benutzer, dessen Hash erfasst wurde, über lokale Administrationsrechte auf dem Zielsystem verfügen. Neben der Extraktion der SAM-Datenbank ist es auch möglich, andere Systembefehle auszuführen.

Auswirkungen eines NTLM-Relay-Angriffs

Das Bild unten zeigt ein erfolgreiches NTLM-Relay, bei dem der Benutzer lokale Administratorrechte auf dem Zielsystem hatte und somit der Inhalt der SAM-Datenbank extrahiert werden konnte.

 

 

Ein Angreifer wäre nun im Besitz des verschlüsselten Passworts des lokalen Administrators. Dadurch erhält der Angreifer lokale Administratorrechte auf diesem System. Auf diese Weise kann der Angreifer die verschlüsselten Passwörter von Benutzern, die eine Sitzung haben oder kürzlich hatten, aus dem Speicher extrahieren. Falls es sich dabei um einen Domänenadministrator handelt, kann ein Angreifer seine Privilegien zum Domänenadministrator erhöhen und so die gesamte Domäne übernehmen.

Wir beobachten regelmäßig, dass das Passwort für den lokalen Administrator-Benutzer auf mehreren Computern wiederverwendet wird. Das bedeutet, dass ein Angreifer dasselbe Passwort verwenden kann, um sich bei mehreren Computern als lokaler Administrator anzumelden. Dies erweitert den Angriffsvektor und erhöht die Wahrscheinlichkeit, dass der Angreifer seine Privilegien erweitern kann.

 

Empfehlung: Aktivieren Sie die SMB-Signierung

Systeme sind anfällig für einen NTLM-Relay-Angriff, da der Empfänger den Inhalt und die Herkunft der Nachricht nicht verifiziert. Der effektivste Weg, diese Schwachstelle zu beheben, ist die Aktivierung der unternehmensweiten SMB-Signierung.

Die SMB-Signierung ist ein Sicherheitsmechanismus im SMB-Protokoll. Wenn diese Funktion aktiviert ist, wird jede SMB-Nachricht mit einer Signatur im SMB-Header-Feld gesendet. Die Signatur besteht aus dem Inhalt der SMB-Nachricht, die mit dem AES-Algorithmus verschlüsselt wurde. So kann der Empfänger der SMB-Nachricht überprüfen, dass der Inhalt der Nachricht nicht verändert wurde. Außerdem wird die Identität des Absenders überprüft. Wenn der Inhalt der Nachricht nicht mit dem SMB-Header übereinstimmt, weiß der Empfänger, dass die Nachricht manipuliert wurde. Der Empfänger verwirft dann die Nachricht. Dies macht es unmöglich, den NTLM-Relay-Angriff erfolgreich durchzuführen.

 

Wie kann ich die SMB-Signierung aktivieren?

Die SMB-Signierung kann aktiviert werden, indem der Inhalt der Registrierungswerte EnableSecuritySignature und RequireSecuritySignature auf 1 gesetzt wird. Dies muss sowohl auf den LanManServer als auch auf die LanManWorkstation angewendet werden. Dies kann auf zwei Arten geschehen: über einen Systembefehl oder über die grafische Anwendung ‚Local Group Policy Editor‘ (gpedit.msc).

 

1.Befehlszeile:

Führen Sie diese Befehle aus, um die Registrierungswerte zu aktualisieren:

-- reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters /v EnableSecuritySignature /t REG_DWORD /d 1

-- reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1

-- reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters /v EnableSecuritySignature /t REG_DWORD /d 1

-- reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1

Starten Sie das System neu, um die Änderungen zu übernehmen. 

2. Gruppenrichtlinien-Editor

Navigieren Sie zu Computer Configuration > Windows Settings > Local Policies > Security Options

Aktivieren Sie die folgenden Richtlinien:

-- Microsoft network client: Digitally sign communication (always)

-- Microsoft network client: Digitally sign communication (if server agrees)

-- Microsoft network server: Digitally sign communication (always)

-- Microsoft network server: Digitally sign communication (if client agrees)

Starten Sie das System neu, um die Änderungen zu übernehmen.

 

 

 

3. Linux Systeme: 

Bearbeiten Sie die Samba-Konfigurationsdatei, um sie einzuschließen: 

client signing = mandatory
server signing = mandatory

Starten Sie das System neu, um die Änderungen zu übernehmen.

 

Schlussfolgerung

Um Ihr Netzwerk vor NTLM-Relay-Angriffen zu schützen, ist die Aktivierung der SMB-Signierung entscheidend. Es gewährleistet die Integrität und Authentizität von SMB-Nachrichten und entschärft damit eine erhebliche Sicherheitslücke. Die Implementierung der SMB-Signierung in Ihrem gesamten Netzwerk kann Sie davor schützen, dass potenzielle Angreifer ihre Privilegien ausweiten und Ihr Netzwerk übernehmen.

Relevante Ressourcen

-- https://learn.microsoft.com/en-US/troubleshoot/windows-server/networking/overview-server-message-block-signing" target="_blank">Overview of Server Message Block Signing

-- https://github.com/lgandx/Responder

-- https://github.com/fortra/impacket/blob/master/examples/ntlmrelayx.py

-- https://github.com/Pennyw0rth/NetExec

Starten Sie mit den Cybersecurity Services von Securance

Sind Sie darauf vorbereitet, Ihr Unternehmen gegen Cyber-Bedrohungen zu verteidigen? Securance bietet robuste Cybersicherheitsdienste zum Schutz Ihrer digitalen Werte. Unsere Experten können umfassende Sicherheitsbewertungen durchführen, modernste Sicherheitsmaßnahmen implementieren und Ihr Netzwerk kontinuierlich überwachen, um es vor potenziellen Angriffen zu schützen. Kontaktieren Sie uns noch heute, um Ihre Cybersicherheit zu verbessern und die Zukunft Ihres Unternehmens zu sichern.