Einführung
In diesem Lab erlernen Sie die Grundlagen des Netzwerk-Scannings mit Nmap (Network Mapper), einem leistungsstarken Open-Source-Werkzeug für die Netzwerkexploration und Sicherheitsüberprüfung. Sie beginnen mit einfachen Port-Scans, gehen über zur Dienst- und Versionserkennung und erkunden anschließend die Nmap Scripting Engine (NSE), um gezielte Schwachstellenprüfungen durchzuführen. Abschließend lernen Sie, wie Sie Ihre Scan-Ergebnisse in verschiedenen Formaten analysieren und für die Berichterstattung speichern. Dieses Lab bietet eine schrittweise, praxisorientierte Einführung in die Kernfunktionen von Nmap für eine effektive Netzwerksicherheitsbewertung.
Einen einfachen Netzwerk-Scan durchführen
Im ersten Schritt machen Sie sich mit Nmap vertraut, indem Sie einen Basis-Scan durchführen. Ein einfacher Scan wird verwendet, um herauszufinden, welche Ports auf einem Zielrechner geöffnet sind. Ein offener Port signalisiert, dass ein Dienst (wie ein Webserver oder SSH) aktiv ist und auf Verbindungen wartet.
Die Lab-Umgebung wurde mit mehreren Diensten vorkonfiguriert, die auf localhost (Ihrem eigenen virtuellen Rechner) laufen, damit Sie daran üben können. Das Werkzeug nmap ist bereits vorinstalliert.
Überprüfen Sie zunächst, ob Nmap installiert ist, und kontrollieren Sie die Version. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:
nmap --versionSie sollten eine Ausgabe sehen, die die Nmap-Version bestätigt, ähnlich wie diese:
Nmap version 7.80 ( https://nmap.org ) Platform: x86_64-pc-linux-gnu Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39 nmap-libpcap-1.9.1 Compiled without: Available nsock engines: epoll poll selectFühren Sie nun Ihren ersten Scan gegen
localhostdurch. Dieser Befehl weist Nmap an, die gängigsten offenen Ports auf Ihrem lokalen Rechner zu prüfen.nmap localhostUntersuchen Sie das Ergebnis. Nmap listet die gefundenen offenen Ports zusammen mit ihrem Status und dem üblicherweise mit diesem Port verbundenen Dienst auf. Die Ausgabe wird etwa so aussehen und die für dieses Lab vorbereiteten Dienste anzeigen:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.000092s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 2121/tcp open ccproxy-ftp 2222/tcp open EtherNetIP-1 3001/tcp open nessus 8080/tcp open http-proxy Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Dieser erste Scan liefert Ihnen eine Übersicht der laufenden Dienste, was den ersten Schritt bei jeder Netzwerksicherheitsbewertung darstellt.
Dienstversionen erkennen
Zu wissen, welche Ports offen sind, ist nützlich. Doch für einen Sicherheitsanalysten ist es weitaus wertvoller, die exakte Software und deren Version zu kennen, die hinter diesen Ports steckt. Veraltete Software ist eine der Hauptquellen für Sicherheitslücken. In diesem Schritt verwenden Sie Nmap zur Dienst- und Versionserkennung.
Wir nutzen dafür den Parameter -sV, der Nmap anweist, die offenen Ports aktiv abzufragen, um detaillierte Informationen über Dienste und Versionen zu erhalten.
Führen Sie einen Scan zur Versionserkennung gegen
localhostdurch. Um den Scan effizienter zu gestalten, zielen wir direkt auf die in Schritt 1 entdeckten Ports (22, 2121, 2222, 3001, 8080), anstatt alle Ports zu scannen.nmap -sV -p 22,8080 localhostProfi-Tipp: Das gezielte Scannen bestimmter Ports verkürzt die Scandauer erheblich. Ein vollständiger Port-Scan mit
-sVkann mehrere Minuten dauern, während dieser zielgerichtete Ansatz meist in Sekunden abgeschlossen ist.Vergleichen Sie die Ausgabe mit dem Basis-Scan aus Schritt 1. Sie sehen nun eine zusätzliche Spalte namens
VERSION, die Details über die auf dem jeweiligen Port laufende Software liefert.Die Ausgabe wird detaillierter sein, ähnlich wie hier:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.00011s latency). Not shown: 995 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0) 8080/tcp open http nginx 1.18.0 (Ubuntu) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap done: 1 IP address (1 host up) scanned in 2.15 seconds
Diese Informationen sind entscheidend. Wenn der Scan beispielsweise eine alte Version von nginx mit einer bekannten kritischen Schwachstelle aufdeckt, wissen Sie genau, wo Sie mit den Gegenmaßnahmen ansetzen müssen.
Die Nmap Scripting Engine (NSE) nutzen
Die Nmap Scripting Engine (NSE) ist eine der mächtigsten Funktionen von Nmap. Sie ermöglicht es Ihnen, eine Vielzahl von Netzwerkaufgaben mithilfe einer Skriptbibliothek zu automatisieren. Diese Skripte können für fortgeschrittene Netzwerkerkundung, Schwachstellenerkennung und sogar für Exploitation eingesetzt werden.
In diesem Schritt verwenden Sie den Parameter -sC, der eine Reihe von Standard-Skripten ausführt, die als sicher gelten und für die Informationsbeschaffung nützlich sind.
Führen Sie einen Nmap-Scan mit aktivierten Standard-Skripten gegen
localhostdurch. Der Parameter-sCist ein bequemer Weg, um mehr Informationen zu erhalten, ohne einzelne Skripte manuell angeben zu müssen.nmap -sC localhostÜberprüfen Sie die Ausgabe. Sie werden zusätzliche Informationen sehen, die eingerückt unter jedem Port aufgeführt sind. Dies ist das Ergebnis der NSE-Skripte. Beispielsweise könnte das Skript
http-titleden Titel der Webseite auf Port8080auslesen, während SSL-Skripte Details zu Zertifikaten liefern.Die Ausgabe wird noch ausführlicher sein:
Starting Nmap 7.80 ( https://nmap.org ) at ... Nmap scan report for localhost (127.0.0.1) Host is up (0.000099s latency). Other addresses for localhost (not scanned): ::1 Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 2121/tcp open ccproxy-ftp 2222/tcp open EtherNetIP-1 3001/tcp open nessus | ssl-cert: Subject: commonName=localhost | Subject Alternative Name: DNS:localhost | Not valid before: 2024-07-18T03:37:05 |_Not valid after: 2034-07-16T03:37:05 8080/tcp open http-proxy |_http-open-proxy: Proxy might be redirecting requests |_http-title: Site doesn't have a title (text/html). Nmap done: 1 IP address (1 host up) scanned in 0.62 seconds
Wie Sie sehen können, haben die Standard-Skripte automatisch wertvolle Informationen gesammelt, wie etwa den Titel der Webseite auf Port 8080 oder Details zu SSL-Zertifikaten.
Einen Schwachstellen-Scan ausführen
Jetzt ist es an der Zeit, gezielt nach Schwachstellen zu suchen. Die NSE enthält eine Kategorie von Skripten, die speziell für die Prüfung bekannter Sicherheitslücken entwickelt wurden. Sie können alle Skripte der Kategorie vuln ausführen, um einen umfassenden Schwachstellen-Scan durchzuführen.
Es gehört zur bewährten Praxis, die Ergebnisse langer oder wichtiger Scans immer in einer Datei zu speichern. Wir verwenden den Parameter -oN, um die Ausgabe im Standardformat von Nmap zu sichern.
Kombinieren wir nun das Gelernte. Führen Sie einen Scan durch, der die Diensterkennung (
-sV) beinhaltet und alle Schwachstellen-Skripte (--script vuln) ausführt. Speichern Sie das Ergebnis in einer Datei namensvuln_scan.txt.nmap -sV --script vuln -oN vuln_scan.txt localhostDieser Scan kann einige Minuten dauern, da viele verschiedene Skripte gegen jeden offenen Port ausgeführt werden.
Sobald der Scan abgeschlossen ist, wird eine Datei namens
vuln_scan.txtin Ihrem aktuellen Verzeichnis (/home/labex/project) erstellt. Sie können den Inhalt mit dem Befehlcatbetrachten:cat vuln_scan.txtDa die Ausgabedatei sehr lang ist, ist es effizienter, nach Schlüsselwörtern zu suchen. Verwenden Sie
grep, um nach Zeilen zu suchen, die auf eine Schwachstelle hindeuten. Der Begriff "VULNERABLE" ist hierbei ein eindeutiger Indikator.grep "VULNERABLE" vuln_scan.txtSie sollten eine Ausgabe sehen, die gefundene Schwachstellen anzeigt. In dieser Lab-Umgebung werden Sie wahrscheinlich eine Schwachstelle im Zusammenhang mit dem Byterange-Filter von Apache finden:
| VULNERABLE: | State: VULNERABLEUm die vollständigen Details der Schwachstelle zu sehen, können Sie nach der spezifischen CVE-Nummer suchen oder das gesamte Scan-Ergebnis prüfen. Beispielsweise könnten Sie eine Apache DoS-Schwachstelle (CVE-2011-3192) auf Port 8080 entdecken. Beachten Sie, dass auch Skriptfehler (wie
clamav-exec: ERROR) auftreten können. Dies ist normal und kann ignoriert werden – solche Fehler entstehen, wenn bestimmte Skripte in der isolierten Lab-Umgebung nicht korrekt ausgeführt werden können.
Dieser Schritt zeigt, wie man aktiv nach Schwachstellen sucht und so von der einfachen Erkennung zu einer gezielten Sicherheitsüberprüfung übergeht.
Scan-Ergebnisse speichern und formatieren
Die fachgerechte Dokumentation und Berichterstattung von Befunden ist eine essenzielle Fähigkeit für jeden Sicherheitsexperten. Nmap unterstützt verschiedene Ausgabeformate für unterschiedliche Zwecke. In diesem letzten Schritt lernen Sie, wie Sie Ihre Ergebnisse in mehreren Formaten speichern und einen benutzerfreundlichen HTML-Bericht erstellen.
Erstellen Sie zunächst ein eigenes Verzeichnis, um Ihre Berichte organisiert zu halten.
mkdir -p ~/project/reportsFühren Sie den Scan erneut aus, aber speichern Sie die Ausgabe diesmal gleichzeitig in zwei Formaten: als normalen Text (
-oN) und als XML (-oX). XML ist ein strukturiertes Format, das sich ideal für die Weiterverarbeitung mit anderen Werkzeugen eignet.nmap -sV -p 8080 --script vuln -oN ~/project/reports/scan_report.txt -oX ~/project/reports/scan_report.xml localhostDas XML-Format ist für Menschen schwer lesbar. Nmap bietet jedoch das Hilfsprogramm
xsltprocan, um die XML-Datei in einen übersichtlichen HTML-Bericht umzuwandeln. Führen Sie den folgenden Befehl aus, umscan_report.htmlzu generieren.xsltproc ~/project/reports/scan_report.xml -o ~/project/reports/scan_report.htmlÜberprüfen wir nun, ob alle Berichtsdateien im Verzeichnis
~/project/reportserstellt wurden. Nutzen Sie den Befehlls -l, um die Dateien und deren Details aufzulisten.ls -l ~/project/reportsSie sollten Ihre drei Berichtsdateien sehen:
total 40 -rw-rw-r-- 1 labex labex 14276 Aug 28 15:12 scan_report.html -rw-rw-r-- 1 labex labex 5686 Aug 28 15:11 scan_report.txt -rw-rw-r-- 1 labex labex 14924 Aug 28 15:11 scan_report.xml
Sie verfügen nun über eine einfache Textdatei zur schnellen Durchsicht, eine XML-Datei für die maschinelle Verarbeitung und eine HTML-Datei für die professionelle Präsentation und Weitergabe.
Zusammenfassung
In diesem Lab haben Sie praktische Erfahrungen mit Nmap gesammelt, einem grundlegenden Werkzeug in der Cybersicherheit. Sie haben mit einfachen Port-Scans begonnen, um aktive Dienste auf einem Netzwerk-Host zu identifizieren. Danach sind Sie zu fortgeschritteneren Techniken übergegangen, einschließlich der Dienstversionserkennung (-sV), um spezifische Softwarestände zu ermitteln. Sie haben zudem die Leistungsfähigkeit der Nmap Scripting Engine (NSE) erkundet, indem Sie Standard-Skripte (-sC) und einen vollständigen Schwachstellen-Scan (--script vuln) durchgeführt haben. Abschließend haben Sie gelernt, wie man Scan-Ergebnisse professionell in verschiedenen Formaten (-oN, -oX) speichert und diese für die Analyse und Dokumentation in einen lesbaren HTML-Bericht umwandelt. Diese Fähigkeiten bilden ein solides Fundament für den Einsatz von Nmap in realen Netzwerksicherheitsüberprüfungen.



