Einen grundlegenden Port-Scan mit db_nmap in Metasploit durchführen

Kali LinuxBeginner
Jetzt üben

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.