Hilfsscanner für SSH-Enumeration in Metasploit verwenden

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie, wie Sie ein Hilfsscanner-Modul (auxiliary scanner module) innerhalb des Metasploit Frameworks verwenden, um eine SSH (Secure Shell) Versionsaufzählung durchzuführen. Metasploit ist ein leistungsstarkes Penetration-Testing-Tool, das eine riesige Sammlung von Exploits, Payloads und Hilfsmodulen (auxiliary modules) enthält.

Hilfsmodule werden nicht für die direkte Ausnutzung verwendet, sondern für andere Zwecke wie Scannen, Fuzzing und Informationsbeschaffung. Die SSH-Aufzählung ist ein wichtiger Teil der Aufklärungsphase (reconnaissance phase) einer Sicherheitsbewertung. Durch die Identifizierung der spezifischen Version eines SSH-Servers kann ein Angreifer nach bekannten Schwachstellen suchen, die mit dieser Version verbunden sind.

Sie lernen, die Metasploit-Konsole zu starten, nach dem geeigneten Modul zu suchen, dessen Optionen zu konfigurieren und es gegen ein Ziel auszuführen, um dessen SSH-Version zu ermitteln.

Suche nach dem ssh_version Hilfsmodul

In diesem Schritt starten Sie die Metasploit Framework-Konsole und suchen nach einem Modul, das zum Scannen von SSH-Versionen fähig ist.

Öffnen Sie zuerst ein Terminal. Die Metasploit-Konsole ist eine Befehlszeilenschnittstelle (command-line interface) zum Framework. Sie können sie starten, indem Sie msfconsole eingeben. Wir werden das Flag -q für einen "ruhigen" Start verwenden, was das Startbanner unterdrückt.

Führen Sie den folgenden Befehl aus, um die Metasploit-Konsole zu starten:

msfconsole -q

Sobald die Konsole geladen ist, sehen Sie die Metasploit-Eingabeaufforderung, die wie msf6 > aussieht. Nun können Sie den Befehl search verwenden, um Module zu finden. Wir suchen nach einem Modul, das mit dem Scannen von SSH-Versionen zusammenhängt.

Geben Sie den folgenden Befehl in die Metasploit-Konsole ein und drücken Sie Enter:

search ssh_version

Metasploit durchsucht seine Moduldatenbank und zeigt alle Übereinstimmungen an. Die Ausgabe zeigt das Modul auxiliary/scanner/ssh/ssh_version, was genau das ist, was wir brauchen.

msf6 > search ssh_version

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/ssh/ssh_version                     normal  No     Detect SSH Version


Interact with a module by name or index. For example info 0, use 0 or use auxiliary/scanner/ssh/ssh_version

msf6 >

Auswahl des ssh_version Moduls

In diesem Schritt wählen Sie das gefundene ssh_version-Modul aus und zeigen seine verfügbaren Optionen an.

Nachdem Sie das richtige Modul identifiziert haben, müssen Sie es in den Kontext des Frameworks laden. Dies geschieht mit dem Befehl use, gefolgt vom vollständigen Namen des Moduls.

Geben Sie in der msfconsole-Eingabeaufforderung den folgenden Befehl ein:

use auxiliary/scanner/ssh/ssh_version

Nachdem Sie den Befehl ausgeführt haben, werden Sie feststellen, dass sich die Eingabeaufforderung ändert. Sie enthält nun den Namen des aktiven Moduls, was darauf hinweist, dass es für die Konfiguration bereit ist. Die neue Eingabeaufforderung sieht dann so aus: msf6 auxiliary(scanner/ssh/ssh_version) >.

Um zu sehen, welche Parameter Sie für dieses Modul konfigurieren können, verwenden Sie den Befehl show options:

show options

Dieser Befehl zeigt eine Tabelle aller Optionen für das ssh_version-Modul an, einschließlich ihrer aktuellen Einstellungen, ob sie erforderlich sind, und einer kurzen Beschreibung. Achten Sie besonders auf die Optionen RHOSTS und THREADS, da wir diese in den nächsten Schritten konfigurieren werden.

msf6 auxiliary(scanner/ssh/ssh_version) > show options

Module options (auxiliary/scanner/ssh/ssh_version):

   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)
   TIMEOUT  30               yes       Timeout for the SSH probe

...

Setzen der RHOSTS-Option auf ein Zielsubnetz

In diesem Schritt konfigurieren Sie das Ziel für Ihren Scan. Die Option RHOSTS gibt den entfernten Host oder die entfernten Hosts an, die Metasploit scannen wird.

Für dieses Lab werden wir die lokale Maschine selbst scannen, da das Setup-Skript einen SSH-Server darauf installiert und gestartet hat. Die IP-Adresse für die lokale Maschine ist immer 127.0.0.1.

Sie können Moduloptionen mit dem Befehl set gefolgt vom Optionsnamen und dem Wert, den Sie zuweisen möchten, festlegen.

Um das Ziel auf Ihre lokale Maschine zu setzen, führen Sie den folgenden Befehl in Ihrer msfconsole-Eingabeaufforderung aus:

set RHOSTS 127.0.0.1

Metasploit bestätigt die Änderung, indem es die Option und ihren neuen Wert ausgibt.

RHOSTS => 127.0.0.1

Sie haben dem Scanner nun mitgeteilt, welche Maschine er anvisieren soll. Wenn Sie ein Netzwerk scannen würden, könnten Sie hier einen Bereich von IP-Adressen angeben (z. B. 192.168.1.0/24).

Festlegen der Anzahl gleichzeitiger Threads

In diesem Schritt passen Sie die Anzahl der gleichzeitigen Threads für den Scanner an. Diese Option steuert, wie viele Hosts gleichzeitig gescannt werden.

Während das Scannen eines einzelnen Hosts, wie wir es gerade tun, nicht wesentlich von mehreren Threads profitiert, ist dies eine entscheidende Einstellung für das Scannen großer Netzwerke, um den Prozess zu beschleunigen. Es ist eine gute Praxis, zu lernen, wie man sie konfiguriert.

Der Standardwert ist 1. Erhöhen wir ihn auf 10. Wir verwenden erneut den Befehl set.

Geben Sie in Ihrer msfconsole-Eingabeaufforderung den folgenden Befehl ein:

set THREADS 10

Metasploit bestätigt, dass die Einstellung aktualisiert wurde.

THREADS => 10

Nun ist der Scanner so konfiguriert, dass er bis zu 10 Threads verwendet, was ihn beim Scannen eines IP-Adressbereichs erheblich beschleunigen würde.

Ausführen des Moduls und Überprüfen der erkannten SSH-Versionen

In diesem Schritt, nachdem alle Optionen konfiguriert wurden, führen Sie das Scanner-Modul aus und analysieren die Ausgabe.

Der Befehl run (oder sein Alias exploit) führt das aktuell geladene Modul mit seinen konfigurierten Einstellungen aus.

Um den Scan zu starten, geben Sie einfach run in Ihrer msfconsole-Eingabeaufforderung ein und drücken Sie Enter:

run

Das Modul versucht nun, eine Verbindung zu Port 22 auf 127.0.0.1 herzustellen. Wenn es einen aktiven SSH-Dienst findet, erfasst es das Versionsbanner und zeigt es an. Die Ausgabe sollte in etwa wie folgt aussehen:

[*] 127.0.0.1:22 - Scanned 1 of 1 hosts (100%)
[+] 127.0.0.1:22 - SSH server detected: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
[*] Auxiliary module execution completed

Das Symbol [+] zeigt Erfolg an. Die Ausgabe zeigt, dass auf 127.0.0.1 an Port 22 ein SSH-Server erkannt wurde und die Version als OpenSSH_8.9p1 auf einem Ubuntu-System meldet. Diese Informationen sind für die nächsten Schritte eines Penetrationstests wertvoll, wie z. B. die Suche nach spezifischen Schwachstellen für diese Version.

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen Metasploit-Hilfsscanner zur SSH-Versionserfassung verwendet.

Sie haben gelernt, wie Sie:

  • Die Metasploit Framework-Konsole starten.
  • Mit dem Befehl search nach einem bestimmten Modul suchen.
  • Ein Modul mit dem Befehl use auswählen und laden.
  • Moduloptionen wie RHOSTS und THREADS mit dem Befehl set konfigurieren.
  • Das Modul mit dem Befehl run ausführen.
  • Die Ergebnisse interpretieren, um die SSH-Serverversion auf einem Ziel zu identifizieren.

Dieser Prozess ist eine grundlegende Fähigkeit für die Informationsbeschaffung und Aufklärung im Bereich Cybersicherheit und Penetrationstests.