Active Directory Hacking: Angriffe mit mimikatz - Pass-the-Hash (PtH)

Active Directory Hacking: Angriffe mit mimikatz - Pass-the-Hash (PtH)

Beitragsseiten

Pass-the-Hash (PtH)

Bei Pass-the-Hash handelt es sich um eine Angriffstechnik, bei der Angreifer nicht das Klartextkennwort, sondern den NTLM (oder LanMan) Hash eines Benutzers stehlen, um sich damit direkt bei einem Server oder Dienst zu authentifizieren. Aufgrund von Abwärtskompatibilität wird eine solche Authentifizierung mittels NTLM-Hash auch von neueren Windows-Versionen noch unterstützt.

Die Vorteile dieser Angriffstechnik sind, dass gestohlene Hashes nicht gecrackt werden müssen und dass auch lokale Benutzer-Hashes zur Authentifizierung auf Remote Dienste/Server genutzt werden können – sofern der Benutzer dort dasselbe Passwort verwendet.

Reguläre Authentifizierung über NTLM

Um das Problem besser zu verstehen, schauen wir uns zunächst einmal an, wie eine Authentifizierung mittels NTLM funktioniert:

NTLM Authentifizierung

 

In diesem Beispiel authentifiziert sich der Benutzer „whitehat.de\user1” bei einem Server, indem er sein Klartextpasswort in den Anmeldedialog eingibt. Das lokale Authentifizierungspaket MSV1_0 (msv1_0.dll) generiert daraufhin den entsprechenden NTLM-Hash und sendet diesen zur Authentifizierung an den Server. Das Klartextpasswort selbst wird zu keinem Zeitpunkt an den Server verschickt. Auch von der Erstellung des Hashes bekommt der Server nichts mit, bei ihm kommt lediglich der fertige Hash an.

Pass-the-Hash Authentifizierung

Pass-the-Hash

 

Da der Server zur Authentifizierung nur den Hash erwartet, kann ein Angreifer auf das MSV1_0 Authentifizierungspaket verzichten und sich stattdessen direkt mit dem gestohlenen NTLM-Hash authentifizieren. Das Klartextpasswort muss er hierfür nicht kennen. Der Server merkt keinen Unterschied, da bei ihm – wie immer und wie erwartet – ein Hash ankommt.

Pass-the-Hash Angriff durchführen

Um einen solchen Angriff durchzuführen, kann ein Angreifer beispielsweise mimikatz auf einem System ausführen, auf dem zeitgleich ein weiterer Benutzer eingeloggt ist, um dessen NTLM-Hash zu extrahieren. Der Befehl hierfür lautet in mimikatz wie folgt:

sekurlsa::msv

sekurlsa::msv

Alternativ könnten z. B. auch Hashes aus dem lokalen SAM (Security Account Manager) extrahiert werden:

token::elevate # mimikatz Berechtigung zu SYSTEM erhöhen
lsadump::sam

lsadump::sam

Ist ein entsprechender Hash einmal extrahiert, kann dieser dazu verwendet werden, mittels mimikatz einen neuen cmd.exe Prozess (Windows-Eingabeaufforderung) mit der gestohlenen Identität zu erzeugen. Hierbei setzt mimikatz dann bei NTLM-Authentifizierungen den gestohlenen Hash ein, um gegenüber dem Server als dieser Benutzer in Erscheinung zu treten. Der Befehl zum Starten der cmd.exe (benötigt Debug-Privilegien) lautet in mimikatz:

sekurlsa::pth /user:BENUTZERNAME /domain:DOMÄNE /ntlm:NTLM-HASH

Für unser zuvor gezeigtes Beispiel könnte der PtH Angriff also mit folgendem Befehl gestartet werden:

sekurlsa::pth /user:Administrator /domain:whitehat.de /ntlm:6d4f17e12f9a4a194f8a22430a42d4e4

sekurlsa::pth

Nachdem die cmd.exe erfolgreich erzeugt wurde, kann der Angreifer im Kontext der gestohlenen Identität mit dem Server interagieren, um z. B. auf entsprechende Shares oder andere Ressourcen zuzugreifen.

sekurlsa::pth cmd.exe


1000 Zeichen übrig


Haftungsausschluss
«Nur wer versteht, wie Angreifer handeln, kann effektive Schutzmaßnahmen treffen.»

Die hier zur Verfügung gestellten Informationen dienen ausschließlich zu Lern- und Forschungszwecken. Der Missbrauch dieser Informationen kann zu strafrechtlichen Konsequenzen führen. Wir raten dringend davon ab und übernehmen keinerlei Haftung für etwaige Schäden.

Folge WhiteHat.de