In einer Windows-Umgebung wird das Kennwort nicht direkt gespeichert, sondern in einer mathematisch verschlüsselten Form als Hash-Wert. Sehr vereinfacht beschrieben, wird beim Anmelden an einem System das vom Benutzer eingegebene Kennwort in einen Hash-Wert umgerechnet. Der Hash-Wert wird anschliessend an einen Anmeldeserver übertragen und mit dem Hash-Wert aus der Datenbank verglichen. Bei einem lokalen System wird mit der SAM-Datenbank und bei einer Windows-Domänen-Umgebung mit der Active-Directory-Datenbank (ntds.dit) verglichen. Stimmen die Hashes überein, wird der Benutzer authentifiziert.

Ein Angreifer sucht meistens die einfachste Angriffsfläche, um ans Ziel zu kommen. Dazu zählt auch das Auslesen der Anmeldeinformationen (Kennwörter in Klartext oder als Passwort-Hash), um diese für einen späteren Angriff wiederzuverwenden oder um höhere Berechtigungen zu erzielen. Haben die Angreifer Ihre Anmeldeinformationen, können diese sich am System anmelden, vertrauliche Daten auslesen und in Ihrem Namen Aktionen ausführen.

Im nächsten Schritt werden die Angreifer versuchen, auf andere Systeme zuzugreifen. Eine gängige Methode ist beispielsweise der Pass-the-Hash Angriff (PtH). Mit dieser Methode werden die gekaperten Passwort-Hashes aus dem Arbeitsspeicher oder der lokalen Passwortdatenbank wiederverwendet, um auf andere Systeme zuzugreifen. Das wird solange wiederholt, bis der Angreifer beispielsweise die Berechtigung eines Domänen-Administrators erlangt und auf alles im Netzwerk zugreifen kann. Hier wird auch von Lateral Movement (seitliche Bewegung) gesprochen. Häufig gelingt Lateral Movement, da bei unterschiedlichen Systemen die gleichen Kennwörter verwendet werden. Eine ähnliche Methode wir PtH ist der Pass-the-Ticket Angriff (PtT), bei welcher das Kerberos-Ticket anstatt eines Passwort-Hashes verwendet wird.

Ablauf

Um Zugriff auf ein System zu erlangen, werden häufig Elemente des Social Engineerings verwendet, beispielsweise durch ein Phishing E-Mail (Abbildung, Schritt 1) mit einem Anhang. Öffnet der Benutzer den Anhang in der E-Mail, bekommt der Angreifer Zugriff auf dessen System. Falls es sich um einen unprivilegierten Benutzer handelt, versucht der Angreifer die Berechtigung des Benutzers durch Privilege Escalation auf einen lokalen Administrator zu erweitern. Mit dieser Berechtigung kann der Angreifer Anmeldeinformationen aus der lokalen SAM-Datenbank oder aus dem Arbeitsspeicher auslesen, um diese anschliessend zur Kompromittierung weiterer Systeme im Netzwerk zu verwenden. Diese Aktion kann beliebig oft durchgeführt werden, bis der Angreifer im schlimmsten Fall auf alle Systeme Zugriff hat (Abbildung, Schritt 2-4).

Die folgende Grafik zeigt einen möglichen Ablauf des Angriffs:

8964 lateral movement 02

Durchführung

In unserem Test-Lab hat der Benutzer (Administrator) bereits auf die Datei geklickt und der Angreifer eine Verbindung auf das System. Dabei handelt es sich um ein Windows 10 System (Siehe Abbildung). In unserem LAB haben wir Metasploit verwendet.

8964 lateral movement 03

Bei diesem Angriff werden wir zum einen aufzeigen, wie Passwort-Hashes aus der lokalen Passwortdatenbank und zum anderen aus dem Arbeitsspeicher ausgelesen werden können.

Passwort-Hashes aus der lokalen Passwortdatenbank (SAM) mit Hashdump auslesen

Windows speichert Passwort-Hashes in der lokalen SAM-Datenbank (Security Accounts Manager, Sicherheitskontenverwaltung). Die SAM-Datenbank ist verschlüsselt und wird von internen Prozessen verwendet. Daher kann diese nicht einfach so im Windows geöffnet und ausgelesen werden. Die Passwort-Hashes aus der SAM können jedoch mit speziellen Tools, wie beispielsweise hashdump im Metasploit ausgelesen werden. Dabei werden die Registryzweige HKLM\SAM und HKLM\SYSTEM exportiert, mit dem Syskey wird der Bootkey berechnet und zum Schluss wird die SAM-Datenbank mit dem Bootkey entschlüsselt. Das Ergebnis ist eine Liste mit Benutzern und Passwort-Hashes. Um einen Hashdump auszuführen, werden administrative Berechtigungen benötigt.

8964 lateral movement 04

Mit den gekaperten Passwort-Hashes kann der Angreifer versuchen, weitere Systeme im Netzwerk zu übernehmen oder diese zu cracken, um an das Kennwort in Klartext zu kommen. Um nun auf weitere Systeme mit dem Hash zuzugreifen, kann beispielsweise das Metasploit Module psexec verwendet werden. Wie das funktioniert, wird weiter unten unter "Pass-the-Hash" beschrieben.

Passwort-Hashes im Arbeitsspeicher (LSASS) mit Mimikatz auslesen

Ein Windows-Betriebssystem speichert die Anmeldedaten der aktuell oder kürzlich angemeldeten Benutzer im Speicher in den LSASS-Prozess (Local Security Authority Subsystem Service, Subsystemdienst für die lokale Sicherheitsautorität). Vor Windows 8.1 und Windows Server 2012 R2, konnte ein Angreifer diese sogar in Klartext auslesen. Das geht heute nicht mehr so einfach. Was bei aktuellen Windows Systemen aber immer noch funktioniert, ist beispielsweise das Auslesen der Passwort-Hashes.

Ein Tool zum Auslesen der Anmeldedaten ist Mimikatz. Dieses kann unteranderem die Anmeldedaten direkt aus dem Arbeitsspeicher oder aus einem Speicherdump auslesen. Der Vorteil beim Auslesen des Arbeitsspeichers, im Gegensatz zum Auslesen der SAM, liegt ganz klar darin, dass auch angemeldete Domänen-Benutzer im Arbeitsspeicher ausgelesen werden können. Was sonst nur direkt an einem Domänencontroller möglich wäre. Um auf dem LSASS-Prozess zuzugreifen, werden lokale Administratorenberechtigungen benötigt.

8964 lateral movement 05

Pass-the-Hash

Beim Pass-the-Hash Angriff werden jetzt die erbeuteten Passwort-Hashes verwendet, um sich auf anderen Systemen im Netzwerk anzumelden, ohne das eigentliche Kennwort zu kennen. Da häufig dasselbe Kennwort für mehrere Systeme verwendet wird und der gebildete Passwort-Hash für das selbe Kennwort auf jedem System gleich ist, hat ein Angreifer häufig Erfolg mit dieser Methode.

Für den Angriff haben wir wiederum das Metasploit Module psexec verwendet.

8964 lateral movement 06

Mit dem ausgelesenen Benutzer und Passwort-Hash vom Windows 10-System, kann der Angreifer jetzt versuchen, sich auf dem nächsten System anzumelden. In unserem LAB verwenden wir die ausgelesenen Anmeldedaten auf einem Windows 8.1-System.

8964 lateral movement 07

Die Anmeldung auf dem System war erfolgreich. Jetzt kann der Angreifer weitere Passwort-Hashes auslesen und diese Schritte beliebig oft wiederholen.

Empfehlungen

Um sich vor solchen Angriffen besser zu schützen, empfehlen wir Ihnen folgende Aspekte in Erwägung zu ziehen:

  • Auf jedem System ein anderes Kennwort setzen
  • LAPS (Local Administrator Password Solution) einsetzen
  • In einer Domäne lokale Administrator-Accounts deaktivieren
  • Least-Privilege-Richtlinien, nur so viel Berechtigung wie nötig
  • Kennwörter regelmässig ändern, bei jedem Kennwortwechsel wird ein neuer Hash generiert
  • Lokale Firewall aktivieren, damit nur die benötigten Dienste erreichbar sind
  • Security Audits: Mit regelmässigen Kontrollen können die Schwachstellen in Ihrer IT-Infrastruktur rechtzeitig entdeckt und korrigiert werden
  • Windows Defender Credential Guard einsetzen
  • Remote Credential Guard aktivieren
Informationen zum Autor
Autor: Marius Hamborgstrøm und Samel Murati
Marius Hamborgstrøm
Im Jahre 2014 ist es mir gelungen goSecurity von meinem Talent zu überzeugen. Als Experte für Penetration Tests konnte ich schon viele Schwachstellen aufdecken, bevor dies einem Hacker gelungen ist. Zudem bin ich für die Gestaltung und die Durchführung unserer goTraining-Kurse Hack to PROTECT (H2P) und Hack to PROTECT [ADVANCED] (H2PA) verantwortlich. Durch meine jahrelange Erfahrung als IT-Leiter einer mittelständischen Bank, kenne ich auch die Seite des Administrators und des IT-Managers in einer Umgebung mit hohen Sicherheitsanforderungen. Aus dieser Erfahrungskiste kann ich die Anforderungen unserer Kunden auch bei Audits und umfassenden Beratungen schnell verstehen und Sie zielgerichtet und praxisnah beraten. Jede Sicherheitslücke bei Ihnen zu finden, bevor dies jemand anderem gelingt, ist leider nicht immer realistisch. Und dennoch ist es mein Antrieb und mein Anspruch.

Samel Murati
IT war für mich keine zufällige Berufswahl. Computer haben mich schon als kleinen Jungen fasziniert. Bereits während meiner Ausbildung zum Informatiker Support begann die Leidenschaft zum Thema IT-Sicherheit. Konsequenterweise bildete ich mich direkt weiter zum Informatiker Systemtechnik. Aktuell bin ich zudem an der HF-Ausbildung und konnte bereits Anfang 2017 die Experten der goSecurity von meinem Fachwissen und meiner Persönlichkeit überzeugen. Ich bin stolz, Teil des goSecurity-Teams zu sein und mein ganzes Können für Ihre IT-Sicherheit einzusetzen.