IT-Sicherheit in Produktion und Technik
12.09.17 - 13.09.17
In Berlin

Be CIO: IT Management im digitalen Wandel
13.09.17 - 13.09.17
In Köln

IBC 2017
14.09.17 - 18.09.17
In Amsterdam

Orbit IT-Forum: Auf dem Weg zum Arbeitsplatz der Zukunft
27.09.17 - 27.09.17
In Leverkusen

it-sa 2017
10.10.17 - 12.10.17
In Nürnberg

HackDiese Artikel-Serie ist inzwischen an einem Punkt angelangt, an dem sämtliche Standardtricks zum Stehlen von Zugangsdaten ausgeschöpft wurden – das Erraten von Passwörtern und Brute-Force-Attacken auf die Hashwerte.

Jetzt bleibt nur noch eine clevere Methode übrig: Ein Pass-the-Hash-Angriff, bei dem ein Passwort-Hash für ein anderes Programm wiederverwertet wird. Das Klartext-Passwort braucht man dazu nicht mehr.

mimikatz

Erinnern Sie sich an die einfache Testumgebung, die eingerichtet wurde? Sie besteht aus einer Windows-Domäne mit zwei Servern des imaginären Unternehmens Acme, das häufig Namen von Biermarken verwendet um seine Server zu benennen. In der Rolle als Penetrationstester landete man mithilfe eines RAT auf dem Server von Mitarbeiterin Jane. Auf diesem Server wurde dann eine Shell erstellt, mit dem Ziel an die Zugangsdaten eines weiteren Nutzers mit umfassenderen Zugriffsrechten zu gelangen.

Im letzten Artikel wurde erläutert wie man die Hashwerte lokaler Nutzerkonten mithilfe von fgdump knacken kann. Heute wird das von Benjamin Delpy entwickelte „mimikatz“ vorgestellt. Dabei handelt es sich um ein extrem leistungsstarkes Tool. Es durchsucht den LSASS-Prozess nach Hashwerten und kann unter diesen Hash-Zugangsdaten Programme ausführen. Die mimikatz-Binärdatei steht auf github zum Download bereit. mimikatz läuft übrigens mit nur 395 KB tadellos.

Die Software verfügt über ihre eigene Mini-Befehlssprache. Der erste Befehl, den man benötigt, ist privilege::debug. Er stellt sicher, dass Sie über den erforderlichen Zugriff verfügen (siehe unten).

Penetrationstests Teil 6: Bild 1

Genau wie für fgdump benötigt man um mimikatz auszuführen Administratorenrechte.

Klartext-Passwörter?

Gibt man sekurlsa::logonpasswords ein, erhält man eine Liste sämtlicher aktiver Nutzer und Dienste mit den zugehörigen NTLM- und SHA1-Hashwerten. Die erste Überraschung: Das Pass-the-Hash-Tool zeigt auch die Klartext-Passwörter der Nutzer an. Das wirkt auf den ersten Blick vielleicht etwas dumm von Windows ist es aber aus technischer Sicht nicht. Denn der Speicherbereich des LSASS-Prozesses, in dem sich das Windows-Passwort befindet, ist verschlüsselt. mimikatz ist jedoch in der Lage eine bestimmte Microsoft-API auszuführen, die diesen Speicher entschlüsselt.

Die Recherche ergab, dass Windows Klartext-Passwörter für die so genannte HTTP-Digest-Authentifizierung verwendet. Hier erfahren Sie mehr dazu.

Microsoft hat diese Sicherheitslücke 2014 mit einem Patch gestopft, der es Systemadministratoren ermöglicht, das Speichern von WDigest-Passwörtern zu verhindern. In dieser Microsoft-Sicherheitsempfehlung wird erklärt, welcher Registrierungseintrag dafür geändert werden muss. Ab Windows 8 ist die Standardeinstellung übrigens, keine Klartext-Passwörter in LSASS zu speichern.

In der Rolle als Penetrationstester musste man feststellen, dass der betreffende Server von Jane sicherer geworden ist und im schlimmsten Fall der Patch installiert werden muss.

Die Pass-the-Hash-Methode

mimikatz bietet den enormen Vorteil, dass man nicht das eigentliche Passwort, sondern lediglich den NTLM-Hash benötigt. Wenig überraschend, dass Hacker es auf Nutzer mit Administratorrechten abgesehen haben. Hat ein Angreifer solche Rechte, ist es spielend leicht sich mit Hilfe von mimikatz im System seitwärts weiter fortzubewegen.

In dem Penetrationstest-Szenario hat sich der Tester an Janes Rechner als Nutzer „bigadmin“ angemeldet, einem Domänenkonto mit erweiterten Rechten. Als Proof of Concept meldete er sich nun direkt an Janes Server an. Denn mit dem pth-Befehl von mimikatz lässt sich ein NTLM-Hash für ein anderes Programm wiederverwenden.

Penetrationstests Teil 6: Bild 2

In dem Testszenario wurde dann der NTLM-Hash von bigadmin an psexec weiter gegeben.

psexec erlaubt es Nutzern, Befehle per Remote-Zugriff auszuführen, in diesem Fall das Windows CMD-Shell-Programm. Wie auf dem Screenshot zu erkennen, befindet man sich nun wie geplant auf Amstel, dem zweiten Server der Acme-Umgebung, ist aber weiterhin als bigadmin angemeldet. Technisch gesehen „überführen“ wir den Hash auf psexec. Dazu mehr im nächsten und letzten Beitrag dieser Serie.

Die Verwendung von mimikatz lehrt uns einige wichtige Dinge: Man sollte die Zugangsberechtigungen der Nutzer einschränken und eine Richtlinie einführen, um Domänenadministratoren davon abzuhalten, sich per Fernzugriff an den Rechnern normaler Nutzer anzumelden. Denn wie gesehen, kann ein cleverer Hacker mit mimikatz im Gepäck diese Hashwerte nutzen, um sich in einem Zielsystem weiter fortzubewegen.

www.varonis.com/de

Das könnte Sie ebenfalls interessieren:

Penetrationstests, Teil 1: Kalkuliertes Risiko
Penetrationstests, Teil 2: RATs
Penetrationstests, Teil 3: RATs und Reverse-Shells
Penetrationstests, Teil 4: Die Seitwärtsbewegung
Penetrationstests, Teil 5: Hashwerte knacken

Frische IT-News gefällig?
IT Newsletter Hier bestellen:

Newsletter IT-Management
Strategien verfeinert mit profunden Beiträgen und frischen Analysen

Newsletter IT-Security
Pikante Fachartikel gewürzt mit Shortnews in Whitepaper-Bouquet