In unserem aktuellen Artikel Untersuchung eines NTLM Brute-Force-Angriffs mit Bloodhound zeigten wir, wie Angreifer weiterhin das NTLM-Authentifizierungsprotokoll missbrauchen. In diesem Beitrag gehen wir ganz allgemein auf grundlegende Angriffe auf SAM, LSA Secrets, SYSKEY und LSASS ein. Wir erklären, wie Angreifer damit an Anmeldedaten von Windows-Computern gelangen und warum Sicherheitsteams diese Methoden überwachen müssen. Obwohl diese Taktiken für Anmeldedatendiebstahl bekannt und relativ einfach sind, werden sie aktiv eingesetzt – ein Hinweis darauf, dass Sicherheitsteams diese bewährten Techniken nicht auf dem Radar haben.
Die Suche nach Klartext-Anmeldedaten per LSASS oder durch das Beschaffen des SAM für die NTLM- oder LSA-Schlüssel der Geheimnisse hat für Angreifer großen Nutzen. Der bloße Zugriff auf einen Computer wird Angreifern nicht genügen, wenn sie mit gültigen Benutzername-Kennwort-Kombinationen in weiteren Schritten des Angriffs (während der „Kill Chain“) viel mehr Möglichkeiten haben.
Dementsprechend häufig wird das Herunterladen von Anmeldeinformationen (Credential Dumping) von den Angreifern bei der lateralen Bewegung genutzt. Nachdem sie an die Konto-Anmeldenamen und Kennwörter gelangt sind, können die Angreifer sich weiter im Unternehmensnetzwerk ausbreiten, auf zugangsbeschränkte Daten zugreifen und Befehle sowie Programme mit höheren Berechtigungen ausführen.
Überblick über Anmeldedaten-Exfiltration
Vereinfacht ausgedrückt haben potenzielle Angreifer folgende Ziele:
1. NTLM-Hash-Werte für Offline-Cracks und Manipulationen erlangen
- HKLM\SAM: enthält die NTLMv2-Hash-Werte von Benutzerkennwörtern
- HKLM\Security: enthält Cache-Domänendatensätze von LSA Secrets/LSA-Schlüsseln
- HKLM\System (auch als SYSKEY bezeichnet): enthält Schlüssel, mit denen LSA Secrets und die SAM-Datenbank verschlüsselt werden können
2. LSASS speichern, entweder um an das Klartext-Kennwort oder nur die NTLM-Hash-Werte zu gelangen (abhängig von der angegriffenen Windows-Version)
Hinweis: Die Funktionalität sowie die gespeicherten Informationen können sich unterscheiden. Beispielsweise gibt es Unterschiede zwischen Computern inner- und außerhalb von Active Directory-Domänen.
Betrachten wir die Details der unterschiedlichen oben genannten Komponenten.
1. SAM: HKLM\SAM
In der Datenbank der Sicherheitskontenverwaltung (Security Account Manager, SAM) speichert Windows Informationen zu Benutzerkonten. Diese Datenbank speichert die Benutzernamen und Hash-Werte der Benutzerkennwörter, um Benutzer bei der Anmeldung und Eingabe ihrer Kennwörter zu authentifizieren.
Die Länge und Komplexität des Hash-Werts hängen vom Algorithmus ab, mit dem das Kennwort verschlüsselt wurde. Dabei kann es sich um einen einfachen DES-basierten LM (Lan Manager)-Verschlüsselungsalgorithmus oder eine der beiden Versionen des NTHash-Algorithmus handeln: NTLMv1 oder NTLMv2 geben beide 32 Hexadezimalziffern aus und sind vom MD4 Digest abgeleitet.
Eine der häufigsten Methoden, um an Benutzerkennwörter zu gelangen, ist das Speichern der SAM-Datenbank mit einem Tool, das die Kennwort-Hash-Werte extrahieren kann. Die Registrierung kann aber auch direkt in eine Datei kopiert werden [reg.exe save hklmSAM
], um sie offline mit einer Software zu bearbeiten, die gespeicherte Benutzerkonto-Kennwort-Hash-Werte extrahieren kann.
Sobald der LM- oder NTLM-Hash-Wert im Besitz des Angreifers ist, kann dieser offline einen Brute-Force-Angriff auf den Kennwort-Hash-Wert durchführen, wie wir weiter unten ausführlicher erklären.
2. LSA Secrets: HKLM\Security
LSA Secrets ist ein Speicher, der von der lokalen Sicherheitsautorität (LSA) in Windows genutzt wird.
Die lokale Sicherheitsautorität verwaltet die lokale Sicherheitsrichtlinie eines Systems. Das bedeutet per Definition, dass sie beispielsweise private Daten zu Benutzeranmeldungen, zur Authentifizierung von Benutzern sowie zu ihren LSA Secrets speichert. Der Zugriff auf LSA Secrets wird nur für SYSTEM-Kontoprozesse gewährt.
LSA Secrets speichert vertrauliche Systemdaten wie:
- Benutzerkennwörter
- Internet Explorer-Kennwörter
- Kennwörter von Dienstkonten (Dienste auf dem Computer, die eine Authentifizierung mit Geheimnis erfordern)
- Zwischengespeicherter Verschlüsselungsschlüssel des Domänenkennworts
- SQL-Kennwörter
- SYSTEM-Kontokennwörter
- Kontokennwörter für konfigurierte geplante Aufgaben
- Zeitspanne bis zum Ablauf einer nicht aktivierten Windows-Kopie
Das sind nur einige Beispiele. Frühe Implementierungen von LSA-Geheimnissen wurden schnell gecrackt und Tools wie Mimikatz können auf einigen Windows-Versionen auch LSA Secrets aus Arbeitsspeicher- und Registrierungsstrukturen extrahieren.
3. SYSKEY: HKLMSystem
Syskey, das auch als SAM Lock Tool bezeichnet wird, war in früheren Windows-Versionen enthalten. Diese Funktion soll die Datenbank für die Sicherheitskontenverwaltung (SAM) verschlüsseln und damit während des Bootvorgangs des Computers eine zusätzliche Schutzebene für den SAM bereitstellen.
Dabei schützt Syskey die Sicherheitsdaten nur, wenn das Betriebssystem nicht ausgeführt wird. Sobald das Betriebssystem läuft, wird der Syskey-Wert in den Arbeitsspeicher geladen, um später den SAM zu entschlüsseln. HKLM\SAM ist mit dem SECURITY-Unterschlüssel unter HKLM\SECURITY\SAM verknüpft.
Die Syskey-Funktion wird seit 2017 nicht mehr genutzt, ist jedoch in relevanten Windows-Versionen unter HKLM\SYSTEM zu finden, wo sie aktiviert und konfiguriert ist.
4. Speichern von Anmeldeinformationen mit LSASS
Bis zur Veröffentlichung von Windows 8 ließen sich die Anmeldedaten mit Mimikatz im Klartext vom Subsystemdienst für die lokale Sicherheitsautorität (Local Security Authority Subsystem Service, LSASS) abrufen.
Im Laufe der Zeit wurden mehrere Behebungsmaßnahmen vorgeschlagen, die LSASS jeweils stärker absichern und das Abgreifen selbst des gehashten Kennworts erschweren. In Windows 10 Enterprise kann der LSASS-Prozess mithilfe der Funktion Credential Guard sogar von Benutzern mit SYSTEM-Berechtigungen isoliert werden.
Kennwortextraktion in Windows 7 mit Mimikatz:
Die Änderungen werden sichtbar, wenn das Tool unter Windows 10 ausgeführt wird. Auch wenn das Kennwort nicht im Klartext angezeigt wird, lässt sich der NTLMv1-Hash-Wert abrufen.
Kennwortextrahierung aus dem NTLMv2-Hash-Wert
Selbst wenn Sie keinen lokalen Zugriff auf den Zielcomputer haben, gibt es viele Möglichkeiten zum Abrufen des NTLM-Hash-Werts.
Das Responder-Tool ist eines der beliebteren Hilfsmittel für diese Aufgabe.
Beispiel des NTLMv2-Hash-Werts, der sich mit dem Responder-Tool ausgeben lässt:
admin::M57oDBrlht:08ca45b7d6da58ee:88dcbe4346168966a153a0064958dae6:5b6740315c7830310000000000000b45c67103d07d7b95acd12dea11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
Dieses Tool bietet viele Funktionen, wobei nur eine für uns relevant ist: die Möglichkeit, Benutzer zur Eingabe von Anmeldedaten aufzufordern, wenn bestimmte Netzwerkdienste angefordert werden. Das Ergebnis können Klartext-Kennwörter oder Kennwort-Hash-Werte sein.
Bei diesem Angriff erfasst das Tool die LLMNR-Pakete und extrahiert den Hash-Wert aus der Abfrage/Antwort. Wir haben das Tool so eingestellt, dass es das Netzwerk auf die richtigen Pakete überwacht. Anschließend versuchen wir, auf dem Zielcomputer eine nicht vorhandene Netzwerkressource aufzurufen. Dadurch können wir den Datenverkehr erfassen und daraus den NTLM-Hash-Wert erhalten.
Auf einem Windows-Computer haben wir versucht, auf eine nicht vorhandene Dateifreigabe namens „MadeUpNetworkShare“ zuzugreifen. Das Tool lief auf einem Computer im gleichen Netzwerk und zeichnete die Abfrage/Antwort auf, was die NTLM-Hash-Werte offenlegte.
Wie lassen sich Kennwort-Hash-Werte verwenden?
Nachdem wir an den Hash-Wert gelangt sind, haben wir mehrere Möglichkeiten zum Extrahieren des Klartext-Kennworts.
Wörterbuchangriff/Brute-Force-Angriff: Bei dieser Methode kommt eine Wortliste zum Einsatz, die mit den Kennwörtern abgeglichen wird. Dafür können wir öffentlich verfügbare Tools wie John the Ripper, hashcat, Cain & Abel sowie Ophcrack nutzen.
Rainbow Table-Angriff: Diese Methode ist günstiger, wenn es um das Cracken eines Hash-Werts geht. Sie erfordert jedoch eine vorhandene Datenbank möglicher Kennwörter sowie ihrer zuvor berechneten Hash-Werte.
Beispiel für das Cracken eines NTLMv1-Kennworts mit einer Rainbow Table (Quelle: https://crackstation.net/):
Zu beachten ist, dass sich auf diese Weise lediglich aus bekannten und nicht gesalzenen Hash-Werten ein Kennwort ableiten lässt.
Wenn das Knacken des Kennworts zu schwer ist, gibt es weitere Möglichkeiten wie einen Pass-the-Hash-Angriff. Dazu werden beliebige Dienste im Netzwerk missbraucht, die zur Authentifizierung nicht das Kennwort, sondern seinen Hash-Wert nutzen. Ein gutes Beispiel sind psexec und andere Dienste, die per SMB kommunizieren.
Empfehlungen zur Verhinderung von Anmeldedaten-Exfiltration
Um zu verhindern, dass Anmeldedaten heruntergeladen und exfiltriert werden können, sollten Unternehmen sicherstellen, dass auf älteren Systemen im Netzwerk keine LM-verschlüsselten Kennwörter in der SAM-Datenbank enthalten sind. Außerdem sollte der (standardmäßig deaktivierte) LM auf neueren Systemen nicht aktiviert werden. LM-Kennwörter nutzen lediglich einen eingeschränkten Zeichensatz und lassen sich leicht knacken.
Ebenso wird empfohlen, NTLMv1 zu deaktivieren. Es ist relativ einfach, das Kennwort aus einem NTLMv1-Hash-Wert zu extrahieren. Zudem funktionieren die meisten Dienste mit NTLMv1-Unterstützung auch mit NTLMv2 – sofern nichts anders konfiguriert wurde.
Auf der GPO-Seite können sowohl LM als auch NTLMv1 deaktiviert werden:
Ändern Sie die Konfiguration in der GPO wie folgt, um die Nutzung von NTLMv1 zu unterbinden:
Wenn das Kennwort lang und einmalig ist, lässt sich der NTLMv2-Hash-Wert nicht leicht knacken. Außerdem gibt der bloße Besitz des Hash-Werts einem Angreifer spätestens dann keinen Vorteil, wenn die Dienste sich gar nicht mit NTLM authentifizieren.
Auf Windows 10-Computern wird empfohlen, Credential Guard zu aktivieren, um NTLM- und Kerberos-Anmeldedaten zusätzlich zu schützen.
Unternehmen können die Angriffsfläche am effektivsten verringern und die Anmeldedaten am besten vor Exfiltration schützen, indem sie eine Sicherheitslösung der nächsten Generation wie SentinelOne bereitstellen, die Machine Learning und Active EDR nutzt.
Abschließende Hinweise
Diese grundlegenden Angriffe können verhindert werden, wenn Sie Ihre Netzwerkarchitektur sowie die in Ihrer Umgebung genutzten Dienste lückenlos überwachen. Solche Angriffe sind insbesondere unter Windows 7 (und älteren Versionen) effektiv, die trotz ihres EOL-Status immer noch in vielen Unternehmensnetzwerken zu finden sind. Heutzutage setzen zum Glück viele Unternehmen auf sicherere Implementierungen wie Kerberos in einer Gruppendomäne, um die hier vorgestellten Schwachstellen zu vermeiden. Außerdem nutzen sie eine vertrauenswürdige Endpunkt-Sicherheitsplattform für den Schutz ihrer Geräte und Netzwerke.
MITRE ATT&CK Referenzen
Credential Dumping – T1003
Pass the Hash – T1075
Brute Force – T1110