Einleitung
Das Metasploit Framework ist ein leistungsstarkes Open-Source-Tool zur Entwicklung, zum Testen und zur Ausführung von Exploit-Code gegen eine entfernte Zielmaschine. Ein kritischer Teil jeder Sicherheitsbewertung ist die Informationsbeschaffung, zu der auch Port-Scanning gehört, um offene Ports und laufende Dienste zu identifizieren.
Metasploit integriert den beliebten Nmap-Scanner über den Befehl db_nmap. Der entscheidende Vorteil von db_nmap ist, dass die Scan-Ergebnisse automatisch direkt in der Metasploit-Datenbank gespeichert werden, was Ihnen die einfache Verwaltung und Abfrage der gesammelten Daten ermöglicht.
In diesem Lab lernen Sie, wie Sie grundlegende Port-Scans mit db_nmap durchführen und die Ergebnisse in der Metasploit-Konsole anzeigen.
Auswahl eines Arbeitsbereichs für die Scan-Ergebnisse
In diesem Schritt starten Sie die Metasploit-Konsole und erstellen einen dedizierten Arbeitsbereich. Arbeitsbereiche (Workspaces) in Metasploit helfen Ihnen, Ihre Projekte zu organisieren, indem sie Hosts, Dienste und andere gesammelte Daten für jede Bewertung getrennt halten.
Öffnen Sie zunächst Ihr Terminal und starten Sie die Metasploit Framework-Konsole, indem Sie den folgenden Befehl ausführen. Das Laden kann einen Moment dauern.
msfconsole
Sobald die msfconsole-Eingabeaufforderung (msf6 >) erscheint, können Sie einen neuen Arbeitsbereich erstellen und zu diesem wechseln. Wir werden unseren Arbeitsbereich portscan_lab nennen. Verwenden Sie das Flag -a, um einen neuen Arbeitsbereich hinzuzufügen.
workspace -a portscan_lab
Sie sollten eine Bestätigungsnachricht sehen.
[*] Added workspace: portscan_lab
[*] Workspace: portscan_lab
Um zu bestätigen, dass Sie sich im richtigen Arbeitsbereich befinden, können Sie den Befehl workspace ohne Argumente ausführen. Der Stern * zeigt den aktuell aktiven Arbeitsbereich an.
workspace
Die Ausgabe listet alle verfügbaren Arbeitsbereiche auf:
default
* portscan_lab
Nachdem Ihr Arbeitsbereich eingerichtet ist, sind Sie bereit, mit dem Scannen zu beginnen.
Ausführen eines TCP SYN-Scans mit db_nmap -sS
In diesem Schritt führen Sie einen TCP SYN-Scan durch. Diese Art von Scan, auch bekannt als "Stealth-Scan" oder "Half-Open-Scan", ist eine beliebte Wahl, da sie schnell ist und von Zielsystemen weniger wahrscheinlich protokolliert wird. Das Flag -sS weist Nmap an, einen SYN-Scan durchzuführen.
Geben Sie in der msfconsole-Eingabeaufforderung den Befehl db_nmap ein, um Ihre lokale Maschine (localhost) zu scannen. Die Ergebnisse werden automatisch in Ihrem Arbeitsbereich portscan_lab gespeichert.
db_nmap -sS localhost
Der Befehl führt Nmap aus und zeigt dessen Fortschritt und Ergebnisse an. Die Ausgabe ähnelt der Standardausgabe von Nmap.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.000084s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 22/tcp open ssh
[*] Nmap: 5432/tcp open postgresql
[*] Nmap: 6200/tcp open oracle-tns
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Der Scan hat mehrere offene Ports identifiziert, und diese Informationen sind nun in der Metasploit-Datenbank gespeichert.
Ausführen eines Service-Versionserkennungs-Scans mit db_nmap -sV
In diesem Schritt führen Sie einen detaillierteren Scan durch, um die spezifischen Versionen der auf den offenen Ports laufenden Dienste zu identifizieren. Die Kenntnis der Service-Version ist entscheidend für die Suche nach potenziellen Schwachstellen. Das Flag -sV aktiviert die Versionserkennung in Nmap.
Führen Sie den folgenden Befehl in Ihrer msfconsole-Eingabeaufforderung aus. Dieser Scan dauert etwas länger als der vorherige, da Nmap mit jedem offenen Port interagieren muss, um Versionsinformationen zu ermitteln.
db_nmap -sV localhost
Die Ausgabe wird detaillierter sein als beim SYN-Scan. Beachten Sie die neue Spalte VERSION, die die von den Versionserkennungssonden gesammelten Informationen enthält.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.00011s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 5432/tcp open postgresql PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
[*] Nmap: 6200/tcp open unknown
[*] Nmap: Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 6.78 seconds
Diese neuen Informationen werden ebenfalls automatisch zur Datenbank hinzugefügt und aktualisieren die Einträge für den erkannten Host und seine Dienste.
Aufgelistete entdeckte Hosts in der Datenbank mit dem Befehl hosts
In diesem Schritt lernen Sie, wie Sie die Metasploit-Datenbank abfragen, um die Hosts anzuzeigen, die während Ihrer Scans entdeckt wurden. Der Befehl hosts liefert eine Zusammenfassung aller Hosts, die im aktuellen Arbeitsbereich gespeichert sind.
Führen Sie den Befehl hosts in Ihrer msfconsole-Eingabeaufforderung aus:
hosts
Die Ausgabe ist eine Tabelle, die alle gefundenen Hosts auflistet. Da Sie nur localhost gescannt haben, sehen Sie einen Eintrag.
Hosts
=====
address mac name os_name os_flavor os_sp purpose info comments
------- --- ---- ------- --------- ----- ------- ---- --------
127.0.0.1 localhost Linux Linux device
Dieser Befehl ist eine schnelle Möglichkeit, alle Ziele anzuzeigen, die in Ihrem Projektarbeitsbereich identifiziert und gespeichert wurden.
Aufgelistete entdeckte Dienste mit dem Befehl services
In diesem Schritt verwenden Sie den Befehl services, um detaillierte Informationen über die offenen Ports und Dienste anzuzeigen, die auf den Hosts in Ihrer Datenbank entdeckt wurden. Dieser Befehl ist besonders nützlich nach der Ausführung eines Versionserkennungs-Scans.
Führen Sie den Befehl services in Ihrer msfconsole-Eingabeaufforderung aus:
services
Die Ausgabe zeigt eine detaillierte Tabelle aller gefundenen Dienste. Beachten Sie, wie sie den Port, das Protokoll, den Servicenamen und die in Schritt 3 gesammelten Versionsinformationen enthält.
Services
========
Host Port Proto Name State Info
---- ---- ----- ---- ----- ----
127.0.0.1 22 tcp ssh open OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
127.0.0.1 5432 tcp postgresql open PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
127.0.0.1 6200 tcp unknown open
Der Befehl services ermöglicht es Ihnen, alle potenziellen Eintrittspunkte auf Ihren Zielsystemen schnell zu überprüfen, was ein grundlegender Bestandteil der Planung der nächsten Phase einer Sicherheitsbewertung ist.
Zusammenfassung
In diesem Lab haben Sie die Grundlagen der Port-Scans im Metasploit Framework erfolgreich erlernt.
Sie haben mit der Einrichtung eines dedizierten Arbeitsbereichs begonnen, um Ihr Projekt organisiert zu halten. Anschließend haben Sie den Befehl db_nmap verwendet, um sowohl einen schnellen TCP SYN-Scan (-sS) als auch einen detaillierteren Scan zur Erkennung von Dienstversionen (-sV) auszuführen. Schließlich haben Sie gelernt, wie Sie die Metasploit-Datenbank mit den Befehlen hosts und services abfragen, um die automatisch gespeicherten Scan-Ergebnisse zu überprüfen.
Dieser Workflow ist ein Eckpfeiler der Informationsbeschaffungsphase bei Penetrationstests und Sicherheitsanalysen.


