LLMNR/NBT-NS Poisoning und NTLM-Relay: vom Hash zum Zugriff ohne Cracking
Der NTLMv2-Hash aus Responder muss nicht gecrackt werden. Relay leitet die Authentifizierung live an ein anderes Ziel weiter, in Echtzeit.
Responder liefert einen NTLMv2-Hash. Der
naheliegende nächste Schritt ist Cracking, offline, mit hashcat, und das
funktioniert, solange das zugrunde liegende Passwort schwach genug ist. Der
deutlich wirksamere nächste Schritt überspringt das Cracking komplett:
NTLM-Relay leitet die eingehende Authentifizierung live an ein anderes
Ziel weiter, während der Login-Vorgang noch aktiv läuft.
Warum Relay überhaupt funktioniert
NTLM-Authentifizierung ist ein Challenge-Response-Verfahren zwischen Client
und genau einem Server. Das Protokoll selbst bindet die Authentifizierung
nicht zwingend an ein konkretes Ziel, es verlässt sich historisch auf
SMB Signing, um Manipulation der Nachrichten auf dem Weg zu verhindern.
Ist SMB Signing auf dem Zielserver nicht erzwungen, kann ein
Angreifer in der Mitte die Challenge des Opfer-Servers unverändert an den
authentifizierenden Client weiterreichen und dessen Antwort unverändert an
einen dritten Server durchleiten, als wäre er selbst der Client. Aus
Sicht des dritten Servers hat sich der ursprüngliche Nutzer ganz normal
authentifiziert.
Vom Poisoning zum Relay
# Auf eingehende LLMNR/NetBIOS-Anfragen hören, aber NICHT selbst antworten
sudo responder -I eth0 --disable-ess
# Eingehende NTLM-Authentifizierung live an ein Ziel ohne SMB-Signing weiterleiten
ntlmrelayx.py -tf targets.txt -smb2support
targets.txt enthält die IPs von Hosts, auf denen SMB Signing nicht
erzwungen ist, typischerweise reguläre Workstations, nicht Domain
Controller (die erzwingen Signing standardmäßig). Fragt irgendein Host im
Segment per LLMNR nach einem nicht existierenden Namen, leitet
ntlmrelayx.py die resultierende Authentifizierung direkt an einen der
Ziel-Hosts weiter. Ist der authentifizierende Account lokaler Administrator
auf dem Relay-Ziel, folgt eine vollständige Session auf diesem Host, ganz
ohne dass ein Passwort oder Hash je gecrackt werden musste.
Achtung
Relay ist zeitkritisch: Der Angriff funktioniert nur, während die Authentifizierungs-Session aktiv ist, nicht nachträglich mit einem gespeicherten Hash. Das macht ihn schwerer reproduzierbar als reines Cracking, aber auch unabhängig von Passwortkomplexität, der Hash selbst wird nie offline angegriffen.
Erkennung
Windows Event-ID 4624 (Logon) mit Logon Type 3 (Network) von einem Host,
der normalerweise nicht mit dem Zielserver kommuniziert, kombiniert mit
auffälligen LLMNR-/NetBIOS-Antworten aus dem
Responder-Artikel, ist der verlässlichste
Korrelationspunkt. Microsoft Defender for Identity und vergleichbare
AD-spezifische Detection-Tools markieren NTLM-Relay-Muster inzwischen
weitgehend zuverlässig, vorausgesetzt sie sind aktiv im Netzwerksegment
platziert.
Härtung
Hardening-Tipp
Die wirksamste Einzelmaßnahme: SMB Signing auf allen Hosts erzwingen
(Microsoft network server: Digitally sign communications (always) per
GPO), nicht nur auf Domain Controllern. Zusätzlich LLMNR und NetBIOS
Name Service deaktivieren, wo fehlerfreie, vollständige interne
DNS-Auflösung das überflüssig macht (Turn OFF Multicast Name Resolution
per GPO für LLMNR, NetBIOS über die Netzwerkadapter-Einstellungen oder
DHCP-Option 001). Beide Maßnahmen zusammen schließen sowohl den
Poisoning- als auch den Relay-Schritt der Kette, einzeln genommen reicht
keine der beiden vollständig aus.