Metasploit Framework Grundlagen entdecken

Beginner

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

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:

  1. Exploits: Dies sind Codemodule, die Sicherheitslücken in Zielsystemen ausnutzen, um unbefugten Zugang zu erhalten oder beliebigen Code auszuführen.
  2. Auxiliary: Dieses Modul enthält verschiedene Hilfswerkzeuge, wie Scanner, Fuzzer und Protokollmanipulations-Hilfsprogramme.
  3. Encoders: Diese Module werden verwendet, um Payloads zu verschleiern oder zu codieren, um Sicherheitsmechanismen wie Antiviren-Software oder Firewalls zu umgehen.
  4. Payloads: Diese Module enthalten den Code, der auf dem Zielsystem nach einer erfolgreichen Exploitation ausgeführt wird.
  5. 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.

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

Einstellen 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

Ausnutzung einer Sicherheitslücke

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

Post-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.