NTLM-Hashes von einem Windows-System knacken

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab tauchen Sie in die Welt der Passwortsicherheit ein, indem Sie lernen, wie NTLM (NT LAN Manager)-Hashes geknackt werden. NTLM ist ein Hashing-Algorithmus, der von Microsoft Windows-Systemen zur Speicherung von Benutzerpasswörtern verwendet wird. Das Verständnis, wie diese Hashes geknackt werden können, ist eine grundlegende Fähigkeit beim Penetration Testing und bei der Sicherheitsüberprüfung.

Sie werden Hashcat, ein leistungsstarkes und beliebtes Tool zur Passwortwiederherstellung, verwenden, um einen Wörterbuchangriff gegen einen Beispiel-NTLM-Hash durchzuführen. Am Ende dieses Labs werden Sie den grundlegenden Prozess des Passwort-Crackings verstehen und die Bedeutung der Verwendung starker, komplexer Passwörter erkennen.

NTLM-Hashes verstehen

In diesem Schritt lernen Sie die Grundlagen von NTLM-Hashes kennen. Dieses grundlegende Wissen ist entscheidend, bevor Sie versuchen, sie zu knacken.

NTLM (NT LAN Manager) ist eine Suite von Sicherheitsprotokollen, die von Microsoft entwickelt wurde. Eine seiner Hauptfunktionen ist die Handhabung der Authentifizierung. Wenn Sie auf einem Windows-System ein Passwort festlegen, wird es nicht im Klartext gespeichert. Stattdessen wird es mithilfe des NTLM-Algorithmus in einen Hash-Wert umgewandelt.

Ein NTLM-Hash ist ein 128-Bit-Wert, der typischerweise als 32-stelliger Hexadezimalstring dargestellt wird. Zum Beispiel ist der NTLM-Hash für das Passwort "password" 8846f7eaee8fb117ad06bdd830b7586c.

Da Hashing ein Einwegprozess ist, können Sie ihn nicht direkt "ent-hashen", um das ursprüngliche Passwort zu erhalten. Angreifer können jedoch Techniken wie Wörterbuchangriffe oder Brute-Force-Angriffe verwenden, um das Passwort zu erraten, ihre Vermutung zu hashen und zu sehen, ob sie mit dem Ziel-Hash übereinstimmt. Dies ist der Prozess, den wir in diesem Lab untersuchen werden.

In diesem Schritt sind keine Befehle auszuführen. Bitte fahren Sie mit dem nächsten Schritt fort, um eine Beispiel-Hash-Datei zu erstellen.

Eine Beispiel-NTLM-Hash-Datei erstellen

In diesem Schritt erstellen Sie eine Datei, die einen Beispiel-NTLM-Hash enthält. Bei einem realen Penetrationstest müssten Sie diese Hashes zuerst aus der Security Account Manager (SAM)-Datenbank eines Windows-Systems extrahieren. Für dieses lehrreiche Lab erstellen wir einfach eine Textdatei mit einem bekannten Hash.

Ihre gesamte Arbeit wird im Verzeichnis ~/project stattfinden. Verwenden Sie zuerst den Befehl echo, um eine Datei namens ntlm_hash.txt zu erstellen und einen Beispiel-NTLM-Hash hineinzuschreiben. Dieser Hash entspricht einem gängigen, schwachen Passwort.

echo "8846f7eaee8fb117ad06bdd830b7586c" > ~/project/ntlm_hash.txt

Überprüfen Sie nun, ob die Datei korrekt erstellt wurde, indem Sie ihren Inhalt mit dem Befehl cat anzeigen.

cat ~/project/ntlm_hash.txt

Sie sollten die folgende Ausgabe sehen, die den gerade gespeicherten Hash darstellt:

8846f7eaee8fb117ad06bdd830b7586c

Nachdem die Hash-Datei bereit ist, können Sie nun mit der Vorbereitung für den Knackvorgang fortfahren.

Den richtigen Hash-Modus für NTLM auswählen

In diesem Schritt lernen Sie, wie Sie den richtigen Hash-Modus in Hashcat für NTLM-Hashes identifizieren.

Hashcat ist ein vielseitiges Werkzeug, das Hunderte verschiedener Hash-Typen unterstützt, von Webanwendungs-Passwort-Hashes bis hin zu Betriebssystem-Hashes. Um korrekt zu funktionieren, müssen Sie Hashcat genau mitteilen, welche Art von Hash Sie zu knacken versuchen. Dies geschieht über eine spezifische Modusnummer.

Sie können die Modusnummer für NTLM finden, indem Sie das Hilfe-Menü von Hashcat durchsuchen. Verwenden Sie den Befehl grep, um die Ausgabe nach "NTLM" zu filtern.

hashcat --help | grep NTLM

Die Ausgabe listet verschiedene Hash-Typen im Zusammenhang mit NTLM auf. Suchen Sie nach dem Eintrag für Standard-NTLM.

...
1000 | NTLM                                             | Operating System
...

Wie Sie aus der Ausgabe ersehen können, ist die Modusnummer für NTLM 1000. Sie werden diese Nummer im nächsten Schritt verwenden, um Hashcat mitzuteilen, wie der Hash in Ihrer Datei ntlm_hash.txt interpretiert werden soll.

Einen Wörterbuchangriff gegen den NTLM-Hash starten

In diesem Schritt verwenden Sie Hashcat, um einen Wörterbuchangriff gegen den NTLM-Hash zu starten. Ein Wörterbuchangriff ist eine Methode zum Knacken eines Passworts, indem eine Liste gängiger Wörter und Phrasen ausprobiert wird, die als "Wortliste" oder "Wörterbuch" bekannt ist.

Das Setup-Skript für dieses Lab hat bereits eine beliebte Wortliste namens rockyou.txt in Ihr Verzeichnis ~/project heruntergeladen. Nun erstellen Sie den Hashcat-Befehl, um den Angriff zu starten.

Die Befehlsstruktur ist wie folgt:

  • hashcat: Der Programmname.
  • -m 1000: Der Hash-Modus für NTLM, den Sie im vorherigen Schritt identifiziert haben.
  • ~/project/ntlm_hash.txt: Der Pfad zu Ihrer Datei, die den Ziel-Hash enthält.
  • ~/project/rockyou.txt: Der Pfad zur Wortliste.
  • --force: Diese Option weist Hashcat an, auch dann auszuführen, wenn es potenzielle Probleme mit der Umgebung erkennt, was in virtualisierten Labs nützlich sein kann.

Führen Sie nun den vollständigen Befehl in Ihrem Terminal aus:

hashcat -m 1000 ~/project/ntlm_hash.txt ~/project/rockyou.txt --force

Hashcat wird gestartet. Der Vorgang kann einige Momente dauern, während die Wortliste geladen und mit dem Vergleichen der Hashes begonnen wird. Sie sehen eine Ausgabe, die der folgenden ähnelt:

hashcat (vX.X.X) starting...

...

Session..........: hashcat
Status...........: Running
Hash.Type........: NTLM
Hash.Target......: 8846f7eaee8fb117ad06bdd830b7586c
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (~/project/rockyou.txt)
...

Session..........: hashcat
Status...........: Cracked
...

Die Meldung "Status...........: Cracked" zeigt an, dass Hashcat das Passwort erfolgreich gefunden hat.

Den geknackten NTLM-Passwort analysieren

In diesem Schritt sehen Sie sich das von Hashcat entdeckte Passwort an und analysieren es.

Sobald Hashcat einen Hash erfolgreich geknackt hat, speichert es das Ergebnis in einer Datei namens "Potfile" (wie in "Topf voll Gold"). Dies erspart Ihnen, denselben Hash in Zukunft erneut knacken zu müssen. Der Standardpfad für diese Datei ist ~/.local/share/hashcat/hashcat.potfile.

Der einfachste Weg, das geknackte Passwort anzuzeigen, ist die Verwendung der Option --show von Hashcat. Dieser Befehl weist Hashcat an, alle geknackten Passwörter für die in Ihrer Eingabedatei bereitgestellten Hashes anzuzeigen.

Führen Sie den folgenden Befehl aus:

hashcat -m 1000 ~/project/ntlm_hash.txt --show

Hashcat prüft seine Potfile und zeigt das Ergebnis für Ihren Hash an:

8846f7eaee8fb117ad06bdd830b7586c:password

Das Ausgabeformat ist hash:plaintext_password. Wie Sie sehen können, ist das ursprüngliche Passwort für den Hash 8846f7eaee8fb117ad06bdd830b7586c password.

Sie können die rohe Potfile auch direkt mit dem Befehl cat anzeigen:

cat ~/.local/share/hashcat/hashcat.potfile

Dies zeigt dasselbe Ergebnis. Sie haben nun erfolgreich einen NTLM-Hash geknackt und das ursprüngliche Passwort wiederhergestellt.

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen grundlegenden Passwort-Cracking-Angriff gegen einen NTLM-Hash durchgeführt.

Sie haben gelernt:

  • Was NTLM-Hashes sind und wie sie in Windows-Systemen verwendet werden.
  • Wie man Hashcat, ein leistungsstarkes Passwort-Recovery-Tool, verwendet.
  • Das Konzept eines Wörterbuchangriffs und die Bedeutung von Wortlisten wie rockyou.txt.
  • Den Prozess der Identifizierung des richtigen Hash-Typs, des Startens eines Angriffs und des Anzeigens des geknackten Passworts.

Diese Übung zeigt, wie leicht schwache Passwörter kompromittiert werden können. Sie unterstreicht die entscheidende Bedeutung der Verwendung starker, einzigartiger und komplexer Passwörter sowie robuster Hashing-Mechanismen, um Systeme und Daten vor unbefugtem Zugriff zu schützen.