Pass-the-Hash-Attack

Ein Pass-the-Hash-Angriff (PtH) verwendet eine Technik, bei der ein Angreifer Anmeldeinformationen von einem Konto erfasst und sich mit diesen bei einem anderen Computer über das Netzwerk authentifiziert. Der Angriff basiert darauf sich mit Hilfe der ausgelesenen Passwort-Hashwert, die als Authentifikation dienen, Zugriff auf Dienste im Namen des Benutzers durch Single Sign-On zu verschaffen.

Grundlagen

Passwörter von Benutzerkonten in Windows werden im Security Account Manger (SAM) verwaltet und von dem Windows Local Security Authority Subsystem (LSASS) verwendet. Diese Informationen werden im Dateisystem gespeichert: C:\Windows\system32\config\sam. Passwörter werden in Windows nicht im Klartext, sondern nach einem bestimmten Verfahren abhängig von der Windows-Version als HASH-Wert abgelegt. Ein Passwort-Hash ist eine direkte mathematische Einweg-Ableitung des Klartext-Passwortes und ändert sich nur wenn ein Benutzer sein Passwort ändert. Die Speicherung erfolgt dabei auf drei unterschiedlichen Arten: LM (LandMan) Hash, NT hash und cached-credentials hash. Mit speziellen Tools wie bspw. „mimikatz“ ist es möglich Angriffe durchzuführen, um Kennwort-Hashes auszulesen, die dann verwendet werden können, um einen Identitätswechsel von Benutzern und den Zugriff auf Ressourcen in einem Netzwerk zu ermöglichen.

Technischer Ablauf des Angriffs

Bei einer Passwort-Authentifizierung wird aus dem vom Anwender eingegebenen Passwort der Hashwert ermittelt und mit dem im System zuvor abgespeicherten Hashwert verglichen. Stimmen die beiden Werte überein, ist der Anwender gegenüber dem System authentifiziert. Der Pass-the-Hash-Angriff (PtH) verwendet einen iterativ zweistufigen Prozess, um die Kontrolle eines Benutzerkontos und den Zugriff auf alle Ressourcen und Berechtigungen dieses Kontos zu erhalten. Zunächst muss sich ein Angreifer lokalen Administratorzugriff auf einem Computer verschaffen. Im zweiten Schritt wird versucht den Zugriff auf andere Computer auszuweiten: 1. Stehlen eines oder mehrerer Authentifizierungsdaten des kompromittierten Computers 2. Wiederverwenden der gestohlenen Anmeldeinformationen für den Zugriff auf andere Computersysteme und Dienste. Es können immer nur die Kontoanmeldeinformationen entwendet werden, die auf einem Computer gespeichert sind, einschließlich Domänenbenutzerkonten und Dienste-Konten. Konten, die noch nie auf dem System angemeldet waren sind nicht sichtbar. Deswegen wird diese Sequenz ggf. mehrmals wiederholt, um auf das gezielte Computersystem mit den benötigten Rechten zu gelangen. Beispielangriff Mimikatz Mit dem Programm Mimikatz ist es möglich über den Befehl „sekurlsa“ Passwörter aus der SAM-Datenbank als SYSTEM-Benutzer unter Windows auszulesen. Sie enthält SHA1, NTLM oder LM-Hashwerte von Benutzerkennwörtern. Eine Ausgabe des Befehls sieht wie folgt aus:

mimikatz # sekurlsa::logonpasswords

Authentication Id : 0 ; 88038 (00000000:000157e6) Session  : Interactive from 1 User Name  : Administrator Domain  : Desktop-FNOOBSP SID  : S-1-5-21-2044528444-627255920-3055224092-1000

       msv :
        [00000003] Primary
        * Username : Administraor
        * Domain   : Desktop-FNOOBSP
        * LM       : d0e9aee149655a6075e4540af1f22d3b
        * NTLM     : cc36cf7a8514893efccd332446158b1a
        * SHA1     : a299912f3dc7cf0023aef8e4361abfc03e9a8c30
       

Mimikatz bietet den Vorteil, dass lediglich der NTLM-Hash benötigt wird, um mit Hilfe des pth-Befehls ein anderes Programm unter anderem Benutzernamen zu starten: Sekurlsa::pth /user:Administrator /domain: . /ntlm: cc36cf7a8514893efccd332446158b1a /run:powershell.exe

Der NTLM Hash wird in diesem Beispiel in das zu startende Programm „Powershell“ überführt.

Sicherheitsmaßnahmen

Der Diebstahl und die Wiederverwendung von Anmeldeinformationen ist kein Problem, dass mit einem einfachen Sicherheitsupdate behoben werden kann. Damit PtH-Angriffe wirksam abgeschwächt werden können, müssen den Angreifern folgende Möglichkeit genommen werden: - Herausfinden wo Zugangsdaten gespeichert werden: Änderungen an den Verschlüsselungs- oder Verschleierungsmethoden können entwickelt und implementiert werden. Allerdings ist es unwahrscheinlich, dass sie effektiv sind, da sie innerhalb kurzer Zeit entdeckt und rückentwickelt werden können. Security by obscurity wird Angreifer auf lange Sicht nicht abschrecken - Anmeldeinformationen extrahieren: PtH-Angriffe nutzen den Zugriff den ein Angreifer durch die Gefährdung eines Kontos in der lokalen Administratorgruppe erhält aus. Diese Konten haben den vollen Zugriff auf Festplatten und Prozessorressourcen des Computers. Während die Verschlüsselungs- und Verschleierungsmethoden von Anmeldeinformationen geändert werden können, muss das Betriebssystem in der Lage sein diese weiterhin abzurufen. Ein Angreifer der Code als lokaler Administrator ausführen kann, verfügt über dieselben Rechte wie das Betriebssystem und kann Anmeldeinformationen auf die gleiche Weise abrufen. Ein richtiger Schritt besteht darin, Angreifer daran zu hindern die Kontrolle über diese Konten zu erhalten indem die lokalen Verwaltungszugriffe von Standardbenutzern abgeschwächt werden. - Anmeldeinformationen wiederverwenden: Anmeldeinformationen müssen zwischengespeichert werden, damit das Betriebssystem im Auftrag des Benutzers Aktionen ausführen kann. Bei einer Unterbindung dieser Wiederverwendung, müsste der Benutzer die Authentifizierungsinformationen ständig erneut eingeben, um das System nutzen zu können.

Um nun zu verhindern, dass ein Angreifer sich mit Hilfe der Hashwerte von einem System auf andere Zielsysteme fortbewegen kann, sollten die Zugangsberechtigungen von Nutzer eingeschränkt werden. Eine Änderung zum Speichern von Anmeldeinformationen wie bspw. am LSASS-Prozess von Windows, erfordert nur, dass Angreifer vorhandene Tools wie z.B. Mimikatz zur Unterstützung modifizieren müssen.

Weiterführende Literatur:

https://docs.microsoft.com/de-de/windows/security/threat-protection/security-policy-settings/network-security-do-not-store-lan-manager-hash-value-on-next-password-change

http://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating%20Pass-the-Hash%20(PtH)%20Attacks%20and%20Other%20Credential%20Theft%20Techniques_English.pdf

https://github.com/gentilkiwi/mimikatz/releases