Einleitung
Das Metasploit Framework ist ein leistungsstarkes Werkzeug, das von Sicherheitsexperten für Penetrationstests und Schwachstellenbewertungen eingesetzt wird. Es enthält eine riesige Datenbank mit Modulen, darunter Exploits, Hilfsscanner, Payloads und mehr. Bei Tausenden von verfügbaren Modulen ist die Fähigkeit, effizient nach dem richtigen zu suchen, eine entscheidende Fähigkeit.
In diesem Lab lernen Sie die grundlegenden Techniken zum Suchen von Modulen in Metasploit. Wir beginnen mit einfachen Stichwortsuchen und untersuchen dann, wie diese Suchen mithilfe von Filtern für Modultypen und spezifische CVE-Identifikatoren verfeinert werden können. Abschließend lernen Sie, wie Sie die Details eines Moduls inspizieren und es zur Verwendung auswählen.
Verwenden Sie den Suchbefehl mit einem Servicenamen wie ssh
In diesem Schritt starten Sie die Metasploit-Konsole und führen eine grundlegende Suche nach Modulen durch, die sich auf einen bestimmten Dienst beziehen. Der Befehl search ist Ihr Hauptwerkzeug für die Navigation in der umfangreichen Modulbibliothek von Metasploit.
Öffnen Sie zunächst Ihr Terminal und starten Sie die Metasploit Framework-Konsole, indem Sie den Befehl msfconsole ausführen. Dies kann einen Moment dauern.
msfconsole
Sie sehen ein Banner und die Metasploit-Eingabeaufforderung, die wie msf6 > aussieht.
Suchen wir nun nach allen Modulen, die sich auf den SSH (Secure Shell)-Dienst beziehen. Geben Sie den folgenden Befehl in die Metasploit-Konsole ein und drücken Sie Enter:
search ssh
Metasploit zeigt eine Liste aller Module an, die "ssh" in ihrem Namen oder ihrer Beschreibung enthalten. Die Ausgabe ist eine Tabelle mit mehreren Spalten:
- #: Die Indexnummer des Moduls in den Suchergebnissen.
- Name: Der vollständige Pfad und Name des Moduls.
- Disclosure Date: Das Datum, an dem die Schwachstelle öffentlich bekannt gegeben wurde.
- Rank: Die Zuverlässigkeitsbewertung des Moduls (z. B.
excellent,great,good). - Check: Zeigt an, ob das Modul eine Prüfmethode hat, um festzustellen, ob ein Ziel anfällig ist, ohne es auszunutzen.
- Description: Eine kurze Zusammenfassung dessen, was das Modul tut.
Ihre Ausgabe wird in etwa wie folgt aussehen (die Liste kann länger sein und die Versionen können abweichen):
msf6 > search ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_login_pubkey 2002-07-23 normal No SSH Public Key Login Scanner
2 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
3 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
4 post/linux/manage/ssh_authorized_keys normal No Linux Manage SSH Authorized Keys
...
Diese einfache Suche gibt Ihnen einen breiten Überblick über alle verfügbaren SSH-bezogenen Module.
Suchergebnisse nach Modultyp wie exploit oder auxiliary filtern
In diesem Schritt lernen Sie, wie Sie Ihre Suchergebnisse eingrenzen, indem Sie nach einem bestimmten Modultyp filtern. Die vorherige Suche lieferte verschiedene Modultypen wie auxiliary, exploit und post. Oft wissen Sie, welche Art von Modul Sie benötigen.
Metasploit ermöglicht es Ihnen, Suchen mit Schlüsselwörtern wie type zu filtern. Die gängigsten Typen sind:
exploit: Module, die eine Schwachstelle ausnutzen, um die Kontrolle zu erlangen.auxiliary: Module für Scans, Fuzzing, Sniffing und andere Aktionen, die keine direkten Exploits sind.post: Post-Exploitation-Module, die auf einem kompromittierten System ausgeführt werden.
Verfeinern wir unsere vorherige Suche, um nur exploit-Module im Zusammenhang mit SSH zu finden. Verwenden Sie den Filter type: in Ihrer Suchanfrage:
search type:exploit ssh
Die Ausgabe wird nun auf Module beschränkt, die als Exploits klassifiziert sind:
msf6 > search type:exploit ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
1 exploit/multi/ssh/sshexec 2004-01-01 manual No SSH Exec
...
Wenn Sie beispielsweise nach einem Scanner suchen, um Informationen über einen SSH-Dienst zu sammeln, würden Sie nach auxiliary-Modulen suchen:
search type:auxiliary ssh
Dieser Befehl gibt eine Liste von Scannern und anderen Nicht-Exploit-Tools für SSH zurück.
msf6 > search type:auxiliary ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
...
Die Verwendung von Typfiltern ist eine effektive Methode, um schnell die benötigte Art von Werkzeug zu finden.
Nach einer spezifischen CVE-Kennung suchen
In diesem Schritt lernen Sie, wie Sie nach Modulen suchen, die mit einer spezifischen Common Vulnerabilities and Exposures (CVE)-Kennung verknüpft sind. Wenn Sie die CVE-ID einer Schwachstelle kennen, die Sie anvisieren möchten, ist dies der direkteste Weg, den entsprechenden Exploit zu finden.
Eine CVE ist eine eindeutige Kennung für eine öffentlich bekannte Cybersicherheitslücke. Metasploit-Module sind oft mit den CVEs gekennzeichnet, die sie adressieren.
Sie können nach CVE suchen, indem Sie den Filter cve: verwenden. Suchen wir zum Beispiel nach einem Modul, das sich auf CVE-2018-15473 bezieht, einer Schwachstelle zur Benutzeraufzählung in einigen Versionen von OpenSSH.
search cve:2018-15473
Diese Suche ist sehr spezifisch und sollte nur die Module zurückgeben, die darauf ausgelegt sind, genau diese Schwachstelle auszunutzen.
msf6 > search cve:2018-15473
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
Wie Sie sehen können, zielt die Suche genau auf das entsprechende Hilfsmodul für diese CVE ab. Die Suche nach CVE ist eine wesentliche Technik, wenn Sie mit einem Schwachstellenscanbericht oder einer Sicherheitsberatung arbeiten.
Verwenden Sie den Befehl info, um detaillierte Modulinformationen anzuzeigen
In diesem Schritt lernen Sie, wie Sie detaillierte Informationen zu einem Modul erhalten, bevor Sie es verwenden. Nachdem Sie ein vielversprechendes Modul gefunden haben, ist es wichtig zu verstehen, was es tut, welche Optionen es erfordert und wer es entwickelt hat. Der Befehl info liefert all dies.
Sie können den Befehl info entweder mit dem vollständigen Modulnamen oder seiner Indexnummer aus dem letzten Suchergebnis verwenden. Holen wir uns weitere Informationen zum Modul ssh_enumusers, das wir im vorherigen Schritt gefunden haben.
Sie können seinen vollständigen Namen verwenden:
info auxiliary/scanner/ssh/ssh_enumusers
Alternativ, wenn es sich um den Eintrag 0 in Ihrer letzten Suche handelte, könnten Sie einfach info 0 verwenden. Die Verwendung des vollständigen Namens ist im Allgemeinen zuverlässiger.
Der Befehl zeigt eine detaillierte Seite über das Modul an:
msf6 > info auxiliary/scanner/ssh/ssh_enumusers
Name: OpenSSH User Enumeration
Module: auxiliary/scanner/ssh/ssh_enumusers
License: Metasploit Framework License (BSD)
Rank: Normal
Disclosed: 2018-08-20
Provided by:
Justin Gardner
Check supported:
No
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 22 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
USER_FILE yes File containing usernames, one per line
Description:
This module enumerates valid usernames on OpenSSH servers by exploiting
a subtle timing discrepancy in the C library's handling of password
authentication.
References:
https://nvd.nist.gov/vuln/detail/CVE-2018-15473
https://www.exploit-db.com/exploits/45233/
Diese Ausgabe liefert Ihnen wichtige Informationen, einschließlich der erforderlichen Optionen (RHOSTS, USER_FILE usw.), einer vollständigen Beschreibung des Zwecks des Moduls und Links zu den ursprünglichen Offenlegungen der Schwachstelle. Überprüfen Sie diese Informationen immer, bevor Sie ein Modul verwenden.
Ein Modul für die Verwendung mit dem Befehl use auswählen
In diesem letzten Schritt lernen Sie, wie Sie ein Modul auswählen, um es zu aktivieren. Nachdem Sie ein Modul identifiziert und recherchiert haben, müssen Sie es in den Kontext des Frameworks laden, um es zu konfigurieren und auszuführen. Dies geschieht mit dem Befehl use.
Ähnlich wie beim Befehl info kann auf use der vollständige Modulname oder seine Indexnummer aus den Suchergebnissen folgen. Wählen wir das Modul ssh_enumusers aus.
use auxiliary/scanner/ssh/ssh_enumusers
Nachdem Sie diesen Befehl ausgeführt haben, werden Sie feststellen, dass sich Ihre Metasploit-Eingabeaufforderung ändert. Sie enthält nun den Namen des aktiven Moduls, was darauf hinweist, dass es geladen und zur Konfiguration bereit ist.
msf6 > use auxiliary/scanner/ssh/ssh_enumusers
msf6 auxiliary(scanner/ssh/ssh_enumusers) >
Die neue Eingabeaufforderung msf6 auxiliary(scanner/ssh/ssh_enumusers) > bestätigt, dass das Modul geladen ist. Von hier aus würden Sie normalerweise Befehle wie show options verwenden, um zu sehen, welche Parameter gesetzt werden müssen, set, um sie zu konfigurieren, und schließlich run oder exploit, um das Modul auszuführen. Wir werden das Modul in diesem Lab nicht ausführen, aber die Auswahl ist der wesentliche letzte Schritt im Suchprozess.
Um zur Haupt-Eingabeaufforderung msf6 > zurückzukehren, können Sie den Befehl back verwenden.
Zusammenfassung
In diesem Lab haben Sie die wesentlichen Fähigkeiten zum Finden von Modulen innerhalb des Metasploit Frameworks erlernt. Sie sind nun in der Lage, die Tausenden von verfügbaren Modulen präzise und effizient zu durchsuchen.
Sie haben die Kernbefehle für diesen Prozess geübt:
search: Um Module basierend auf Schlüsselwörtern wie Servicenamen zu finden.search type:<type>: Um Ergebnisse nach spezifischen Modultypen wieexploitoderauxiliaryzu filtern.search cve:<cveid>: Um Module zu identifizieren, die mit einer bestimmten CVE-Schwachstelle verbunden sind.info: Um die Details, Optionen und den Zweck eines Moduls zu überprüfen.use: Um ein Modul auszuwählen und in den Kontext des Frameworks zu laden.
Die Beherrschung dieser Suchtechniken ist ein grundlegender Schritt, um mit Metasploit vertraut zu werden. Sie sind nun gut gerüstet, um die richtigen Werkzeuge für Ihre zukünftigen Penetration-Testing-Aufgaben zu finden.


