Einführung
In diesem Lab werden wir die grundlegenden Konzepte und die Verwendung des Metasploit-Frameworks erkunden, einem leistungsstarken Open-Source-Tool für Penetrationstests. Metasploit bietet eine umfassende Plattform zur Identifizierung und Ausnutzung von Sicherheitslücken in verschiedenen Systemen und Anwendungen. Das Ziel dieses Labs besteht darin, Sie mit den Kernkomponenten von Metasploit, seinen Angriffsmethoden und grundlegenden Verwendungstechniken vertraut zu machen.
Das Metasploit Framework verstehen
In diesem Schritt werden wir das Metasploit-Framework, seine Architektur und die Kernkonzepte einführen.
Metasploit ist ein leistungsstarkes und weit verbreitetes Penetrationstest-Framework, das in Ruby entwickelt wurde. Es besteht aus verschiedenen Komponenten, darunter Modulen, Schnittstellen, Plugins, Hilfsprogrammen und Bibliotheken. Das Framework ist modular aufgebaut, was Codewiederverwendung und Erweiterbarkeit ermöglicht.
Das Metasploit-Framework ist in mehrere Schlüsselmodule organisiert:
- Exploits: Dies sind Codemodule, die Sicherheitslücken in Zielsystemen ausnutzen, um unbefugten Zugang zu erhalten oder beliebigen Code auszuführen.
- Auxiliary: Dieses Modul enthält verschiedene Hilfswerkzeuge, wie Scanner, Fuzzer und Protokollmanipulations-Hilfsprogramme.
- Encoders: Diese Module werden verwendet, um Payloads zu verschleiern oder zu codieren, um Sicherheitsmechanismen wie Antiviren-Software oder Firewalls zu umgehen.
- Payloads: Diese Module enthalten den Code, der auf dem Zielsystem nach einer erfolgreichen Exploitation ausgeführt wird.
- Post-Exploitation: Diese Module bieten Funktionen zum Aufrechterhalten des Zugangs und zum Durchführen weiterer Aktionen auf dem kompromittierten System.
Metasploit bietet mehrere Schnittstellen für die Interaktion mit dem Framework, darunter eine Befehlszeilenschnittstelle (msfconsole), eine webbasierte Schnittstelle (Metasploit Web UI) und eine Befehlszeilenschnittstelle (Metasploit Command Line).
Zunächst starten wir die Lab-Umgebung. Starten Sie Metasploitable2, indem Sie auf das xfce-Terminal auf dem Desktop doppelklicken und den folgenden Befehl im Terminal eingeben:
sudo virsh start Metasploitable2
Warten Sie, bis das Zielsystem gestartet ist. Dies kann 1 - 3 Minuten dauern.
Ping das Zielsystem, um sicherzustellen, dass es läuft (drücken Sie Ctrl-C, um den Ping-Vorgang zu beenden):
ping 192.168.122.102
Starten Sie dann den Kali-Container und greifen Sie auf die Bash-Schnittstelle zu. Führen Sie einen Ping-Vorgang aus, um die Netzwerkverbindung zu überprüfen:
docker run -ti --network host b5b709a49cd5 bash
Jetzt können wir einen Ping-Vorgang ausführen, um die Netzwerkverbindung zu überprüfen (drücken Sie Ctrl-C, um den Ping-Vorgang zu beenden):
ping 192.168.122.102
Jetzt können wir die Metasploit-Konsole starten:
cd ~
msfconsole
In den folgenden Schritten werden wir die grundlegende Verwendung der Metasploit-Konsole erkunden und verschiedene Aufgaben ausführen.
Grundlegende Navigation und Modulerkundung
In diesem Schritt werden wir lernen, wie man in der Metasploit-Konsole navigiert und die verfügbaren Module erkundet.
Die Metasploit-Konsole bietet eine Befehlszeilenschnittstelle für die Interaktion mit dem Framework. Hier sind einige grundlegende Befehle:
help: Zeigt eine Liste der verfügbaren Befehle und deren Beschreibungen an.search [keyword]: Sucht nach Modulen anhand des angegebenen Schlüsselworts.
Suchen wir in der Metasploit-Konsole nach Modulen, die sich auf Linux beziehen:
search linux
Dieser Befehl listet alle Module auf, die sich auf Linux-Sicherheitslücken und Exploits beziehen.
Um ein bestimmtes Modul auszuwählen, verwenden Sie den use-Befehl, gefolgt vom Modulpfad in der Metasploit-Konsole:
use auxiliary/analyze/jtr_linux
Sobald ein Modul ausgewählt ist, können Sie seine Optionen und erforderlichen Parameter mit dem show options-Befehl in der Metasploit-Konsole anzeigen:
show options
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten:
Module options (auxiliary/analyze/jtr_linux):
Name Current Setting Required Description
---- --------------- -------- -----------
BLOWFISH false no Include BLOWFISH hashes (Very Slow)
BSDI true no Include BSDI hashes
CONFIG no The path to a John config file to use instead of the default
CRACKER_PATH no The absolute path to the cracker executable
CUSTOM_WORDLIST no The path to an optional custom wordlist
DES true no Indlude DES hashes
FORK 1 no Forks for John the Ripper to use
INCREMENTAL true no Run in incremental mode
ITERATION_TIMEOUT no The max-run-time for each iteration of cracking
KORELOGIC false no Apply the KoreLogic rules to John the Ripper Wordlist Mode(slower)
MD5 true no Include MD5 hashes
MUTATE false no Apply common mutations to the Wordlist (SLOW)
POT no The path to a John POT file to use instead of the default
SHA256 false no Include SHA256 hashes (Very Slow)
SHA512 false no Include SHA512 hashes (Very Slow)
USE_CREDS true no Use existing credential data saved in the database
USE_DB_INFO true no Use looted database schema info to seed the wordlist
USE_DEFAULT_WORDLIST true no Use the default metasploit wordlist
USE_HOSTNAMES true no Seed the wordlist with hostnames from the workspace
USE_ROOT_WORDS true no Use the Common Root Words Wordlist
WORDLIST true no Run in wordlist mode
Auxiliary action:
Name Description
---- -----------
john Use John the Ripper
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden und dann die Prüfung zu starten
Einstellung von Moduloptionen
In diesem Schritt werden wir lernen, wie man Optionen für ein ausgewähltes Modul in Metasploit einstellt.
Zunächst sollten Sie, wenn Sie nicht bereits in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
Wählen Sie ein Modul aus:
use auxiliary/analyze/jtr_linux
Viele Module erfordern, dass bestimmte Optionen festgelegt werden, bevor sie ausgeführt werden können. Sie können eine Option mit dem set-Befehl festlegen, gefolgt vom Optionennamen und seinem Wert in der Metasploit-Konsole, wie set OPTION_NAME value.
Beispielsweise legen wir die JOHN_PATH-Option für das jtr_linux-Modul in der Metasploit-Konsole fest:
set JOHN_PATH /usr/share/metasploit-framework/data/wordlists/password.lst
Sie können auch den setg-Befehl verwenden, um eine globale Option festzulegen, die auch nach einem Modulwechsel bestehen bleibt.
Nachdem Sie die erforderlichen Optionen festgelegt haben, können Sie das Modul mit dem run- oder exploit-Befehl in der Metasploit-Konsole ausführen, je nach Modultyp.
run
oder
exploit
Um in den übergeordneten Kontext zurückzukehren oder das aktuelle Modul zu verlassen, verwenden Sie den back-Befehl.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden und dann die Prüfung zu starten
Ausnutzen einer Schwachstelle
In diesem Schritt werden wir ein realistisches Szenario simulieren und versuchen, eine Sicherheitslücke auf einem Zielsystem auszunutzen.
Zunächst sollten Sie, wenn Sie nicht bereits in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
Nehmen wir an, wir haben einen anfälligen MySQL-Server an der Ziel-IP-Adresse 192.168.122.102 identifiziert. Wir können das mysql_login-Modul verwenden, um einen Brute-Force-Angriff auf die MySQL-Anmeldeinformationen durchzuführen.
Wählen Sie das mysql_login-Modul in der Metasploit-Konsole aus:
use auxiliary/scanner/mysql/mysql_login
Als Nächstes legen Sie die erforderlichen Optionen in der Metasploit-Konsole fest:
set RHOSTS 192.168.122.102
set user_file /path/to/usernames.txt
set pass_file /path/to/passwords.txt
Führen Sie schließlich das Modul in der Metasploit-Konsole aus:
exploit
Metasploit wird versuchen, sich mit den angegebenen Benutzernamen- und Passwortkombinationen aus den angegebenen Dateien am MySQL-Server anzumelden. Die von uns angegebenen Benutzernamen und Passwörter sind nur Beispiele, der Anmeldeversuch kann fehlschlagen. Sie sollten sie durch die echten Benutzernamen und Passwörter ersetzen.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden und dann die Prüfung zu starten
Nach - Exploitation - Aufgaben
In diesem Schritt werden wir die in Metasploit verfügbaren Post-Exploitation-Module erkunden, die verwendet werden können, um den Zugang aufrechtzuerhalten und zusätzliche Aktionen auf einem kompromittierten System auszuführen.
Nachdem Sie erfolgreich eine Sicherheitslücke ausgenutzt und Zugang zum Zielsystem erlangt haben, können Sie Post-Exploitation-Module verwenden, um verschiedene Aufgaben auszuführen, wie z. B.:
- Sammeln von Systeminformationen
- Privilegieneskalation
- Aufrechterhaltung eines dauerhaften Zugangs
- Pivoting zu anderen Systemen
Zunächst sollten Sie, wenn Sie nicht bereits in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
Um ein Post-Exploitation-Modul zu verwenden, folgen Sie den gleichen Schritten wie bei anderen Modultypen in der Metasploit-Konsole:
use post/windows/gather/enum_logged_on_users
show options
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten:
Module options (post/windows/gather/enum_logged_on_users):
Name Current Setting Required Description
---- --------------- -------- -----------
CURRENT true yes Enumerate currently logged on users
RECENT true yes Enumerate recently logged on users
SESSION yes The session to run this module on
set SESSION 1
exploit
Dieses Beispielmodul listet die angemeldeten Benutzer auf einem Windows-System auf, aber Metasploit bietet viele andere Post-Exploitation-Module für verschiedene Plattformen und Aufgaben.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden und dann die Prüfung zu starten
Zusammenfassung
In diesem Lab haben wir das Metasploit-Framework erkundet, ein leistungsstarkes Tool für Penetrationstests und Sicherheitslückenbewertungen. Wir haben uns mit den Kernkomponenten von Metasploit vertraut gemacht, wie Exploits, Payloads und Hilfsmodule. Wir haben auch gelernt, wie man in der Metasploit-Konsole navigiert, nach Modulen sucht, Optionen festlegt und Module ausführt, um Sicherheitslücken auszunutzen und Post-Exploitation-Aufgaben durchzuführen.
Metasploit bietet eine umfassende und vielseitige Plattform für ethische Hacker, Sicherheitsexperten und Forscher, um Sicherheitslücken zu identifizieren und zu beheben. Indem Sie sich mit Metasploit vertraut machen und es üben, können Sie Ihre Fähigkeiten in Penetrationstests, Sicherheitslückenanalyse und der allgemeinen Sicherheitsbewertung verbessern.