Einleitung
In diesem Lab lernen Sie eine der gängigsten Post-Exploitation-Techniken kennen: das Auslesen von Passwort-Hashes von einem kompromittierten Windows-Ziel. Speziell verwenden Sie den Befehl hashdump, der in Metasploits Meterpreter-Payload verfügbar ist. Diese Hashes können, sobald sie erhalten wurden, offline geknackt werden, um Benutzerpasswörter aufzudecken und so eine weitere Privilegieneskalation oder laterale Bewegung innerhalb eines Netzwerks zu ermöglichen.
Für diese Bildungsübung arbeiten wir in einer simulierten Metasploit Framework-Umgebung. Dies ermöglicht es Ihnen, die genauen Befehle und den Workflow zu erlernen, ohne ein komplexes Opfer-/Angreifer-Netzwerk einrichten zu müssen. Sie beginnen mit einer voreingestellten Meterpreter-Sitzung auf einer simulierten Windows-Maschine.
Ihre Ziele sind:
- Zugriff auf eine aktive Meterpreter-Sitzung erhalten.
- Den Befehl
hashdumpverwenden, um Passwort-Hashes zu extrahieren. - Die Struktur der extrahierten Hashes verstehen.
- Die Hashes für die zukünftige Verwendung in einer Datei speichern.
Erlangung einer Meterpreter-Sitzung mit SYSTEM-Privilegien
In diesem Schritt starten Sie die simulierte Metasploit-Konsole und interagieren mit der vorab bestehenden Meterpreter-Sitzung. In einem realen Szenario würde die Erlangung dieser Sitzung die Ausnutzung einer Schwachstelle auf der Zielmaschine beinhalten. Für dieses Lab wurde die Sitzung für Sie vorbereitet.
Navigieren Sie zunächst in das Simulationsverzeichnis, das vom Setup-Skript erstellt wurde.
cd ~/project/metasploit-simulation
Starten Sie nun die simulierte Metasploit-Konsole, indem Sie das Skript msfconsole ausführen.
./msfconsole
Sie sollten ein Willkommensbanner und die Eingabeaufforderung msf6 > sehen. Dies zeigt an, dass Sie sich in der Haupt-Metasploit-Konsole befinden. Um aktive Sitzungen anzuzeigen, verwenden Sie den Befehl sessions mit dem Flag -l (list).
sessions -l
Sie sehen die folgende Ausgabe, die eine aktive Sitzung mit der ID 1 zeigt.
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WIN-PC 10.0.2.15:4444 -> 10.0.2.16:49152
Die Ausgabe zeigt, dass wir eine meterpreter-Sitzung haben, die als NT AUTHORITY\SYSTEM läuft, was die höchste Berechtigungsstufe auf einem Windows-System ist. Dies ist entscheidend für das Auslesen von Hashes.
Interagieren Sie nun mit dieser Sitzung unter Verwendung ihrer ID.
sessions -i 1
Ihre Eingabeaufforderung ändert sich von msf6 > zu meterpreter >, was bestätigt, dass Sie sich nun innerhalb der Meterpreter-Sitzung auf der Zielmaschine befinden.
Laden der priv-Standard-API-Erweiterung bei Bedarf
In diesem Schritt laden Sie die priv-Erweiterung. Diese Meterpreter-Erweiterung stellt Befehle zur Privilegieneskalation und zum Zugriff auf sensible Teile des Betriebssystems bereit, wie z. B. die Security Account Manager (SAM)-Datenbank, in der Passwort-Hashes gespeichert sind.
Während viele moderne Meterpreter-Payloads notwendige Erweiterungen automatisch laden, wenn ein Befehl aufgerufen wird, ist es eine gute Praxis zu wissen, wie man sie manuell lädt. Dies stellt sicher, dass Sie die erforderliche Funktionalität haben.
Geben Sie innerhalb der Eingabeaufforderung meterpreter > den folgenden Befehl ein, um die priv-Erweiterung zu laden:
load priv
Der Simulator bestätigt, dass die Erweiterung erfolgreich geladen wurde.
[+] Loading extension priv...
[+] Loaded extension: priv
Nachdem die priv-Erweiterung geladen wurde, haben Sie nun Zugriff auf Befehle wie hashdump.
Ausführen des hashdump-Post-Exploitation-Moduls
In diesem Schritt führen Sie den Befehl hashdump aus. Dies ist der Hauptgrund, warum wir die priv-Erweiterung geladen haben. Der Befehl liest die SAM-Datenbank direkt aus dem Speicher des Systems und umgeht dabei On-Disk-Schutzmechanismen. Dies ist möglich, da unsere Sitzung mit SYSTEM-Privilegien läuft.
Da Sie sich nun in der Meterpreter-Eingabeaufforderung befinden und die priv-Erweiterung geladen haben, führen Sie einfach den Befehl hashdump aus.
hashdump
Der Befehl wird ausgeführt und eine Liste von Benutzernamen und ihren entsprechenden Passwort-Hashes auf dem Bildschirm ausgegeben.
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
labex-user:1001:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Sie haben erfolgreich die Passwort-Hashes von der simulierten Windows-Maschine extrahiert. Im nächsten Schritt werden wir die Struktur dieser Ausgabe analysieren.
Betrachten der extrahierten NTLM-Hashes aus der SAM-Datenbank
In diesem Schritt lernen Sie, die Ausgabe des Befehls hashdump zu interpretieren. Das Verständnis dieses Formats ist entscheidend, um zu wissen, was mit den gesammelten Hashes zu tun ist.
Betrachten wir eine Zeile aus der Ausgabe, die Sie im vorherigen Schritt generiert haben:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Diese Zeichenkette ist durch Doppelpunkte getrennt und enthält mehrere Felder:
Benutzername:
Administrator- Dies ist der Name des Benutzerkontos.
Relative Identifier (RID):
500- Dies ist eine eindeutige ID für das Konto innerhalb der Domäne. Die RID
500ist immer das Standard-Administratorkonto.
- Dies ist eine eindeutige ID für das Konto innerhalb der Domäne. Die RID
LM-Hash:
aad3b435b51404eeaad3b435b51404ee- Dies ist der Hash für das ältere LAN Manager-Authentifizierungsprotokoll. Auf modernen Windows-Systemen ist dies oft ein leerer oder "Null"-Hash, wie hier zu sehen. Dieser spezifische Wert zeigt an, dass kein LM-Hash gespeichert ist.
NTLM-Hash:
31d6cfe0d16ae931b73c59d7e0c089c0- Dies ist der NT LAN Manager-Hash, der von allen modernen Windows-Versionen verwendet wird. Dies ist der Hash, den Sie in einem Offline-Passwort-Cracking-Tool wie John the Ripper oder Hashcat verwenden würden.
Kommentar und Home-Verzeichnis:
:::- Diese letzten drei Felder sind normalerweise leer und werden nicht zum Cracking verwendet.
Durch die Betrachtung dieser Ausgabe können Sie die aktiven Benutzerkonten und vor allem deren NTLM-Hashes identifizieren, die ihre Passwörter in einem nicht umkehrbaren Format darstellen.
Speichern der Hashes für Offline-Cracking in einer Datei
In diesem letzten Schritt speichern Sie die gesammelten Hashes in einer Textdatei. Es ist üblich, Beweismittel und Beute von einem kompromittierten System für spätere Analysen und zur Verwendung zu sichern. Das Speichern der Hashes in einer Datei erleichtert die Übergabe an Passwort-Cracking-Software.
Zuerst müssen Sie die simulierte msfconsole-Umgebung verlassen, um zu Ihrer regulären Linux-Shell zurückzukehren. Geben Sie exit in der meterpreter > Eingabeaufforderung ein, um zur msf6 > Eingabeaufforderung zurückzukehren, und geben Sie dann erneut exit ein.
exit
Sie sollten sich nun wieder in der meterpreter > Eingabeaufforderung befinden. Geben Sie erneut exit ein, um die Simulation zu beenden.
exit
Sie sollten sich nun wieder in Ihrem Verzeichnis ~/project/metasploit-simulation befinden.
Erstellen Sie als Nächstes mit dem Texteditor nano eine neue Datei namens hashes.txt.
nano hashes.txt
Kopieren Sie nun die Hash-Ausgabe aus Ihrem Terminal (die Ausgabe des Befehls hashdump in Schritt 3) und fügen Sie sie in den nano-Editor ein. Der Inhalt sollte wie folgt aussehen:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
labex-user:1001:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Drücken Sie Ctrl+X, um nano zu beenden, dann Y, um zu bestätigen, dass Sie die Änderungen speichern möchten, und schließlich Enter, um den Dateinamen zu bestätigen.
Um zu überprüfen, ob die Datei korrekt gespeichert wurde, können Sie ihren Inhalt mit dem Befehl cat anzeigen.
cat hashes.txt
Sie haben die Passwort-Hashes erfolgreich in einer Datei gespeichert, bereit für das Offline-Cracking.
Zusammenfassung
In diesem Labor haben Sie erfolgreich eine klassische Post-Exploitation-Technik mit einer simulierten Meterpreter-Sitzung durchgeführt.
Sie haben gelernt, wie Sie:
- Sitzungen in der Metasploit Framework-Konsole navigieren und mit ihnen interagieren.
- Meterpreter-Erweiterungen wie
privladen, um zusätzliche Funktionalität zu erhalten. - Den Befehl
hashdumpausführen, um NTLM-Passwort-Hashes von einem Windows-Ziel zu extrahieren. - Das Format der extrahierten Hashes verstehen und den Benutzernamen, die RID und den NTLM-Hash identifizieren.
- Die gesammelten Hashes für die Offline-Verwendung mit Passwort-Cracking-Tools in einer Datei speichern.
Diese Fähigkeit ist ein grundlegender Bestandteil von Penetrationstests, da sie oft die Schlüssel liefert, die benötigt werden, um den Zugriff in einem Netzwerk zu erweitern.


