Kali Exploitation mit Metasploit

Kali LinuxKali LinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie die Grundlagen des Penetrationstests mit Kali Linux in einer kontrollierten Umgebung auf der LabEx VM. Der Schwerpunkt liegt auf der Nutzung des leistungsstarken Metasploit Frameworks, um Schwachstellen zu identifizieren, Payloads zu konfigurieren, Exploits auszuführen und über eine Meterpreter-Sitzung mit kompromittierten Systemen zu interagieren. Dieses Lab wurde für Anfänger konzipiert und führt Sie Schritt für Schritt durch wesentliche Cybersicherheitstechniken auf sichere und strukturierte Weise. Wenn Sie das Terminal öffnen, werden Sie automatisch mit der Shell des Kali Linux Containers verbunden und können sofort mit dem Üben beginnen, ohne den Container manuell starten oder betreten zu müssen.

Starten des Metasploit Frameworks

In diesem ersten Schritt starten Sie das Metasploit Framework, ein wichtiges Werkzeug für Penetrationstests in Kali Linux. Dieser Schritt ist unerlässlich, da er die Umgebung für die Identifizierung und Ausnutzung von Schwachstellen in späteren Schritten einrichtet.

Wenn Sie das Terminal in der LabEx VM öffnen, werden Sie automatisch mit der Shell des Kali Linux Containers verbunden. Es ist nicht erforderlich, den Container manuell zu starten oder die Shell zu betreten; die Umgebung ist bereits für Sie konfiguriert.

Bevor Sie Metasploit verwenden können, müssen Sie sicherstellen, dass es im Kali Linux Container installiert ist. Aktualisieren wir die Paketliste und installieren das Metasploit Framework, indem Sie die folgenden Befehle im Terminal eingeben und nach jedem Befehl Enter drücken:

apt update
apt install -y metasploit-framework

Diese Befehle aktualisieren die Paketliste und installieren Metasploit, falls es noch nicht vorhanden ist. Die Installation kann einige Minuten dauern, bitte warten Sie, bis sie abgeschlossen ist.

Starten Sie nach der Installation die Metasploit-Konsole, indem Sie den folgenden Befehl eingeben und Enter drücken:

msfconsole

Beim ersten Ausführen dieses Befehls kann die Initialisierung einen Moment dauern, da die Datenbank eingerichtet und Module geladen werden. Bitte haben Sie während dieses Vorgangs Geduld.

Wenn Metasploit startet, sehen Sie eine Ausgabe ähnlich dieser:

Metasploit Framework
...
msf6 >

Die Eingabeaufforderung msf6 > zeigt an, dass Sie sich jetzt in der Metasploit-Konsole befinden und bereit sind, mit dem Framework zu interagieren. Die Zahl (z.B. 6) steht für die Version von Metasploit.

Dieser Schritt macht Sie mit dem Starten von Metasploit vertraut, was die Grundlage für alle nachfolgenden Penetrationstest-Aktivitäten in diesem Lab ist. Beenden Sie die Konsole nicht, da Sie sie im nächsten Schritt verwenden werden, um nach einem Exploit zu suchen und diesen auszuwählen.

Suchen und Auswählen eines Exploits

Nachdem Sie das Metasploit Framework gestartet haben, besteht der nächste Schritt darin, nach einem Exploit zu suchen und diesen auszuwählen, um eine bestimmte Schwachstelle ins Visier zu nehmen. Dieser Prozess ist beim Penetration Testing entscheidend, da er hilft, potenzielle Schwachstellen in Systemen oder Anwendungen zu identifizieren.

Ein Exploit ist ein Code- oder Technikteil, der eine Schwachstelle in einem System ausnutzt, um unbefugten Zugriff zu erlangen oder böswillige Aktionen auszuführen. Metasploit bietet eine riesige Datenbank mit Exploits, was es einfacher macht, Schwachstellen in einer kontrollierten Umgebung wie diesem Lab zu testen.

Da Sie sich bereits in der Metasploit-Konsole befinden (mit der Eingabeaufforderung msf6 >), suchen wir nach einem Exploit, der sich auf einen gängigen Dienst wie FTP bezieht, der in älteren Systemen oft anfällig ist. Geben Sie den folgenden Befehl an der Eingabeaufforderung msf6 > ein und drücken Sie Enter:

search ftp

Dieser Befehl listet Exploits und Hilfsmodule auf, die sich auf FTP beziehen. Die Ausgabe sieht in etwa so aus, obwohl die genaue Liste variieren kann:

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

   ##  Name                                           Disclosure Date  Rank       Check  Description
   -  ----                                           ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor          2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                              normal     No     FTP Version Scanner
   2  auxiliary/scanner/ftp/anonymous                                normal     No     FTP Anonymous Access Scanner
...

In dieser Ausgabe sehen Sie verschiedene Exploits. Konzentrieren Sie sich in diesem Lab auf den Exploit vsftpd_234_backdoor, der eine bestimmte Schwachstelle in VSFTPD Version 2.3.4 ins Visier nimmt.

Um diesen Exploit auszuwählen, geben Sie den folgenden Befehl ein und drücken Sie Enter:

use exploit/unix/ftp/vsftpd_234_backdoor

Wenn erfolgreich, ändert sich die Eingabeaufforderung in etwa so:

msf6 exploit(unix/ftp/vsftpd_234_backdoor) >

Dies zeigt an, dass Sie den Exploit ausgewählt haben. An diesem Punkt führen Sie den Exploit nicht aus; Sie bereiten ihn nur für die nächsten Schritte vor.

Um die Auswahl zu bestätigen, geben Sie den folgenden Befehl ein und drücken Sie Enter:

info

Dies zeigt detaillierte Informationen über den ausgewählten Exploit an. Suchen Sie nach der Zeile, in der Name: VSFTPD v2.3.4 Backdoor Command Execution steht, um zu überprüfen, ob Sie den richtigen Exploit haben. Die Ausgabe beginnt so:

Name: VSFTPD v2.3.4 Backdoor Command Execution
Module: exploit/unix/ftp/vsftpd_234_backdoor
Platform: Unix
Arch: cmd
...

Sie haben jetzt erfolgreich nach einem Exploit in Metasploit gesucht und diesen ausgewählt. Dieser Schritt bildet die Grundlage für die Konfiguration einer Payload im nächsten Schritt, also beenden Sie die Konsole nicht, da Sie von hier aus weiterarbeiten werden.

Konfigurieren einer Reverse Shell Payload

Nachdem der Exploit ausgewählt wurde, besteht der nächste Schritt darin, eine Reverse Shell Payload zu konfigurieren. Diese Payload definiert, was nach der Ausnutzung der Schwachstelle geschieht, und ermöglicht es Ihnen, auf kontrollierte Weise Zugriff auf das Zielsystem zu erhalten.

Eine Payload im Penetration Testing ist die Komponente eines Exploits, die die Aktion bestimmt, die nach erfolgreicher Ausnutzung durchgeführt wird. Eine Reverse Shell ist eine Art von Payload, bei der sich das Zielsystem mit Ihrem Rechner verbindet und Ihnen eine Befehlszeilenschnittstelle zur Interaktion damit zur Verfügung stellt. Dies unterscheidet sich von einer Bind Shell, bei der Sie sich mit dem Ziel verbinden.

Da Sie sich immer noch in der Metasploit-Konsole mit dem ausgewählten Exploit vsftpd_234_backdoor befinden (die Eingabeaufforderung sollte msf6 exploit(unix/ftp/vsftpd_234_backdoor) > lauten), richten wir die Payload ein. Geben Sie den folgenden Befehl ein, um eine Reverse Shell Payload festzulegen, und drücken Sie Enter:

set payload cmd/unix/reverse

Sie sehen eine Bestätigung wie:

payload => cmd/unix/reverse

Konfigurieren Sie als Nächstes die Reverse Shell-Optionen. Sie müssen die IP-Adresse und den Port auf Ihrem Rechner angeben, zu dem sich das Ziel zurückverbinden soll. Verwenden Sie in diesem Lab 127.0.0.1 (localhost) als IP-Adresse, da sich sowohl die Angreifer- als auch die Zielsimulation im selben Kali Linux Container befinden. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set LHOST 127.0.0.1

Die Ausgabe bestätigt:

LHOST => 127.0.0.1

Legen Sie nun den Port auf 4444 fest, eine gängige Wahl für Reverse Shells. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set LPORT 4444

Die Ausgabe bestätigt:

LPORT => 4444

Um sicherzustellen, dass alles richtig eingestellt ist, geben Sie den folgenden Befehl ein und drücken Sie Enter:

show options

Dies zeigt eine Tabelle mit Optionen sowohl für den Exploit als auch für die Payload an. Suchen Sie nach dem Abschnitt Payload options, der Folgendes anzeigen sollte:

Payload options (cmd/unix/reverse):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port

Wenn die Werte für LHOST und LPORT nicht wie gezeigt sind, wiederholen Sie die set-Befehle, um sie zu korrigieren.

Dieser Schritt bereitet die Payload für den Exploit vor und stellt sicher, dass Sie, wenn der Exploit erfolgreich ist, eine Verbindung zu Ihrem Rechner herstellen können. Beenden Sie die Metasploit-Konsole nicht, da Sie diese Einstellungen im nächsten Schritt verwenden werden, um den Exploit auszuführen.

Ausführen des Exploits

Nachdem Sie den Exploit und die Payload konfiguriert haben, sind Sie nun bereit, den Exploit mit dem Metasploit Framework auszuführen. Dieser Schritt demonstriert, wie man einen Exploit ausführt, um zu versuchen, Zugriff auf ein anfälliges System zu erhalten.

Einen Exploit auszuführen bedeutet, Metasploit anzuweisen, den ausgewählten Exploit und die Payload gegen ein Ziel zu verwenden. In einem realen Szenario würden Sie die IP-Adresse eines anfälligen Rechners angeben. In dieser Lab-Umgebung simulieren Sie jedoch den Prozess, indem Sie localhost (127.0.0.1) als Ziel verwenden, wobei der Schwerpunkt auf dem Verständnis der Ausführungsmechanismen liegt.

Sie sollten sich immer noch in der Metasploit-Konsole mit dem ausgewählten Exploit vsftpd_234_backdoor befinden. Legen Sie zunächst die Ziel-IP-Adresse (Remote Host oder RHOST) für Simulationszwecke auf 127.0.0.1 fest. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set RHOST 127.0.0.1

Die Ausgabe bestätigt:

RHOST => 127.0.0.1

Führen Sie nun den Exploit aus, indem Sie den folgenden Befehl eingeben und Enter drücken:

exploit

Metasploit versucht, den Exploit gegen das angegebene Ziel auszuführen. Da in dieser Lab-Umgebung kein anfälliger VSFTPD-Dienst auf localhost ausgeführt wird, schlägt der Exploit fehl, was erwartet wird. Die Ausgabe könnte so aussehen:

[*] Started reverse TCP handler on 127.0.0.1:4444
[*] 127.0.0.1:21 - Trying to connect and authenticate...
[-] 127.0.0.1:21 - Failed to connect - Connection refused (ECONNREFUSED)
[*] Exploit completed, but no session was created.

Diese Ausgabe zeigt, dass Metasploit einen Listener auf Port 4444 für die Reverse Shell gestartet hat, versucht hat, sich mit dem Ziel auf Port 21 (Standard-FTP-Port) zu verbinden, aber fehlgeschlagen ist, weil dort kein Dienst ausgeführt wird. Dies ist für unser simuliertes Setup normal, da das Ziel darin besteht, den Prozess zu erlernen und kein reales System zu kompromittieren.

Beachten Sie, dass Metasploit, obwohl der Exploit nicht erfolgreich war, einen Reverse TCP Handler gestartet hat. In einem realen Szenario mit einem anfälligen Ziel würde sich das Ziel, wenn der Exploit funktioniert, wieder mit diesem Port verbinden, und Sie würden eine Shell-Session erhalten. Im Moment wird keine Session erstellt, was erwartet wird.

Dieser Schritt lehrt Sie den Prozess der Ausführung eines Exploits in Metasploit. Halten Sie die Konsole geöffnet, da Sie im nächsten Schritt zur Einrichtung einer Meterpreter Payload übergehen werden.

Einrichten einer Meterpreter Payload und eines Listeners

In diesem Schritt lernen Sie, wie Sie eine Meterpreter Payload einrichten und einen Listener starten, um den Zugriff auf eine Session auf einem kompromittierten System zu simulieren. Da dies eine simulierte Lab-Umgebung ohne echtes Ziel ist, wird keine tatsächliche Session erstellt, aber Sie werden den Prozess der Vorbereitung auf Post-Exploitation-Aufgaben verstehen.

Meterpreter ist eine erweiterte Payload in Metasploit, die eine leistungsstarke interaktive Shell für Post-Exploitation-Aktivitäten wie Dateisystemnavigation und Prozessverwaltung bietet. Im Gegensatz zu einer einfachen Reverse Shell bietet Meterpreter mehr Funktionen zur Steuerung eines kompromittierten Systems. Eine Session in Metasploit ist eine aktive Verbindung zwischen Ihnen und dem Ziel, die die Ausführung von Befehlen ermöglicht.

Da der vorherige Exploit nicht zu einer Session geführt hat, verwenden Sie einen eigenständigen Handler, um einen Meterpreter Listener einzurichten. Wenn Sie sich noch in der Metasploit-Konsole befinden, geben Sie den folgenden Befehl ein, um zum Modul multi/handler zu wechseln, und drücken Sie Enter:

use exploit/multi/handler

Die Eingabeaufforderung sollte sich ändern zu:

msf6 exploit(multi/handler) >

Konfigurieren Sie nun den Handler, um eine Meterpreter Payload für Linux-Systeme zu verwenden. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set payload linux/x86/meterpreter/reverse_tcp

Die Ausgabe bestätigt:

payload => linux/x86/meterpreter/reverse_tcp

Als Nächstes legen Sie die Listener-Optionen fest. Verwenden Sie 127.0.0.1 als IP-Adresse (LHOST), da dies eine Simulation auf demselben Rechner ist. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set LHOST 127.0.0.1

Die Ausgabe bestätigt:

LHOST => 127.0.0.1

Setzen Sie den Port (LPORT) auf 4444. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

set LPORT 4444

Die Ausgabe bestätigt:

LPORT => 4444

Überprüfen Sie die Einstellungen, indem Sie den folgenden Befehl eingeben und Enter drücken:

show options

Suchen Sie nach dem Abschnitt Payload options, der Folgendes anzeigen sollte:

Payload options (linux/x86/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port

Wenn die Werte falsch sind, wiederholen Sie die set-Befehle, um sie zu korrigieren.

Starten Sie schließlich den Listener, indem Sie den folgenden Befehl eingeben und Enter drücken:

exploit

Metasploit beginnt, auf der angegebenen IP und dem angegebenen Port zu lauschen. Da sich kein echtes Ziel zurückverbindet, wird keine Session erstellt. Die Ausgabe sieht so aus:

[*] Started reverse TCP handler on 127.0.0.1:4444
[*] Starting the payload handler...

Die Konsole bleibt aktiv und wartet auf eine Verbindung. In einem realen Szenario, wenn sich ein Ziel mit der Meterpreter Payload verbindet, würde eine Session eingerichtet, und Sie würden eine Meldung wie Meterpreter session 1 opened sehen. Beenden Sie vorerst den Listener, indem Sie Ctrl + C drücken, um den Prozess zu unterbrechen.

Dieser Schritt hilft Ihnen zu verstehen, wie Sie eine Meterpreter Payload und einen Listener vorbereiten, eine entscheidende Fähigkeit für die Post-Exploitation im Penetration Testing. Sie können die Metasploit-Konsole nun bei Bedarf verlassen, indem Sie exit eingeben und Enter drücken.

Zusammenfassung

In diesem Lab haben Sie die grundlegenden Schritte des Penetration Testing mit Kali Linux und dem Metasploit Framework in einer kontrollierten Umgebung auf der LabEx VM gelernt. Sie begannen mit dem Start von Metasploit, suchten nach einem Exploit und wählten ihn aus, konfigurierten eine Reverse Shell Payload, führten den Exploit aus und richteten eine Meterpreter Payload mit einem Listener für die Post-Exploitation-Simulation ein. Diese Schritte boten eine praktische Einführung in die Identifizierung von Schwachstellen, die Vorbereitung von Payloads und das Verständnis des Exploitation-Prozesses. Indem Sie diesem strukturierten Ansatz in der Shell des Kali Linux Containers folgten, haben Sie praktische Erfahrung mit wichtigen Cybersecurity-Tools und -Techniken gesammelt.