Schwachstellen mit Nmap scannen

NmapNmapBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Nmap für die Netzwerkschwachstellen-Scanning (Netzwerksicherheitsüberprüfung auf Schwachstellen) verwenden. Sie werden Nmap installieren, die Nmap Scripting Engine (NSE) für erweiterte Scans nutzen und die Ergebnisse analysieren, um Sicherheitslücken zu identifizieren.

Durch praktische Übungen führen Sie grundlegende und skripterweiterte Scans durch und lernen dabei, Ihre Ergebnisse zu interpretieren und zu speichern. Dieses Lab bietet praktische Erfahrungen mit den Kernfunktionen von Nmap für eine effektive Netzwerksicherheitsbewertung.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/scripting_basics("Scripting Engine Basics") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/installation -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/output_formats -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/save_output -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/os_version_detection -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/service_detection -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/scripting_basics -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} nmap/script_management -.-> lab-549947{{"Schwachstellen mit Nmap scannen"}} end

Installieren von Nmap

In diesem Schritt werden Sie Nmap (Network Mapper) installieren, ein leistungsstarkes Open-Source-Tool für die Netzwerkermittlung und Sicherheitsüberprüfung. Nmap wird weit verbreitet zur Netzwerkscans eingesetzt, um Hosts, Dienste und Schwachstellen zu identifizieren. Stellen Sie sich vor, es sei ein digitaler Kartograph, der Sicherheitsfachleuten hilft, zu verstehen, welche Geräte mit einem Netzwerk verbunden sind und welche Dienste sie ausführen.

Die LabEx VM-Umgebung hat bereits alle erforderlichen Abhängigkeiten installiert, sodass wir uns auf die Installation von Nmap selbst konzentrieren können. Befolgen Sie diese Schritte sorgfältig:

  1. Zunächst müssen wir die Paketliste aktualisieren, um sicherzustellen, dass wir die neueste Version von Nmap erhalten. Dies ist wie das Prüfen auf die neuesten Kartenupdates, bevor Sie eine Reise beginnen:

    sudo apt update
  2. Installieren Sie nun Nmap mit diesem Befehl. Das -y-Flag bestätigt die Installation automatisch und spart uns Zeit:

    sudo apt install -y nmap
  3. Nach der Installation überprüfen wir, ob Nmap korrekt installiert wurde, indem wir seine Version prüfen. Dies bestätigt, dass wir das Tool einsatzbereit haben:

    nmap --version

    Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    Nmap version 7.92 ( https://nmap.org )
  4. Für eine praktischere Überprüfung führen wir einen einfachen Scan gegen den localhost (Ihre eigene Maschine) aus. Dies hilft Ihnen, zu verstehen, wie Nmap funktioniert, bevor Sie andere Systeme scannen:

    nmap localhost

    Dieser Befehl zeigt grundlegende Informationen über offene Ports auf Ihrem System an und gibt Ihnen einen Überblick über die lokal ausgeführten Dienste. Es ist wie das Prüfen, welche Türen und Fenster in Ihrem eigenen Haus offen sind, bevor Sie andere Häuser untersuchen.

Laden der Nmap Scripting Engine

In diesem Schritt werden wir die leistungsstarke Nmap Scripting Engine (NSE) erkunden, die wie ein Werkzeugkasten fungiert, der die grundlegenden Scanning-Fähigkeiten von Nmap erweitert. Stellen Sie sich die NSE vor wie das Hinzufügen spezieller Werkzeuge zu Ihrem Netzwerkscanner – sie enthält Hunderte von vordefinierten Skripten, die Schwachstellen erkennen, detaillierte Dienstinformationen sammeln und erweiterte Netzwerkermittlungstasks ausführen können.

Bevor wir beginnen, ist es wichtig zu verstehen, dass diese Skripte bereits mit Nmap auf Ihrem System installiert sind. Lassen Sie uns zunächst erkunden, welche Skripte verfügbar sind:

  1. Zunächst listen wir alle installierten NSE-Skripte auf. Dieser Befehl zeigt Ihnen die vollständige Sammlung von Skripten in Ihrer Nmap-Installation:

    ls /usr/share/nmap/scripts/
  2. Jedes Skript hat eine Dokumentation, die erklärt, was es tut. Betrachten wir als Beispiel das http-title-Skript – dieses Skript ruft den Titel von Webseiten ab. Der folgende Befehl zeigt seinen Zweck und die Verwendung:

    nmap --script-help http-title
  3. Jetzt führen wir unseren ersten echten Scan mit der NSE aus. Dieser Befehl scannt Ihre lokale Maschine (localhost) mit zwei wichtigen Optionen:

    • -sC: Führt die Standardmenge an NSE-Skripten aus (sicher und nützlich für die meisten Scans)
    • -sV: Versucht, die Dienstversionen zu bestimmen (wichtig für die Identifizierung veralteter Software)
    nmap -sC -sV localhost
  4. Um ein bestimmtes Skript anzusteuern, werden wir scanme.nmap.org (eine von Nmap bereitgestellte Testseite) nur mit dem http-title-Skript scannen. Dies zeigt, wie man sich auf bestimmte Informationen konzentrieren kann:

    nmap --script http-title scanme.nmap.org
  5. Schließlich können Sie mehrere Skripte kombinieren, um umfassendere Scans durchzuführen. In diesem Beispiel werden sowohl das http-title- als auch das http-headers-Skript gegen scanme.nmap.org ausgeführt:

    nmap --script "http-title and http-headers" scanme.nmap.org

Denken Sie daran, dass verschiedene Skripte verschiedene Zwecke erfüllen – einige sammeln Informationen, während andere auf Schwachstellen testen. Prüfen Sie immer die Dokumentation eines Skripts, bevor Sie es in Produktionssystemen verwenden.

Durchführen eines Schwachstellen-Scans

In diesem Schritt lernen Sie, wie Sie die Skripting-Engine von Nmap nutzen können, um Sicherheitslücken zu erkennen. Der Schwachstellen-Scan hilft, Schwächen in Systemen zu identifizieren, bevor Angreifer diese ausnutzen können. Wir verwenden scanme.nmap.org als Ziel – dies ist ein sicherer, absichtlich anfälliger Server, der von den Nmap-Entwicklern zu Testzwecken gewartet wird.

  1. Zunächst erkunden wir die verfügbaren Schwachstellen-Skripte. Nmap wird mit Hunderten von voreingestellten Skripten im Verzeichnis /usr/share/nmap/scripts/ ausgeliefert. Der grep-Befehl hilft, nur die Skripte zu filtern, die sich auf Schwachstellen beziehen:

    ls /usr/share/nmap/scripts/ | grep vuln
  2. Jetzt führen wir einen grundlegenden Schwachstellen-Scan durch. Das -sV-Flag aktiviert die Erkennung der Dienstversionen, während --script vuln alle Skripte zur Schwachstellenerkennung lädt. Dies gibt uns einen breiten Überblick über potenzielle Probleme:

    nmap -sV --script vuln scanme.nmap.org
  3. Für einen gezielteren Scan können wir uns auf bestimmte Schwachstellen-Kategorien konzentrieren. In diesem Beispiel werden nur HTTP-bezogene Schwachstellen überprüft (häufig in Webservern). Das Sternchen (*) fungiert als Platzhalter, um alle http-vuln-Skripte einzubeziehen:

    nmap -sV --script http-vuln-* scanme.nmap.org
  4. Ein umfassender Scan überprüft alle Schwachstellen, während intrusive Tests (als "sicher" markiert) vermieden werden. Dies dauert länger, liefert aber gründliche Ergebnisse, ohne die Systemstabilität zu riskieren:

    nmap -sV --script "vuln and safe" scanme.nmap.org
  5. Es ist eine gute Praxis, die Scanergebnisse zur Dokumentation und weiteren Analyse zu speichern. Das -oN-Flag speichert die Ausgabe im normalen Format in einer Textdatei. Wir werden diese Ergebnisse in späteren Schritten nutzen:

    nmap -sV --script vuln -oN vuln_scan_results.txt scanme.nmap.org

Die Scanergebnisse werden wichtige Sicherheitsinformationen anzeigen, darunter:

  • Offene Ports und laufende Dienste (potenzielle Einstiegspunkte)
  • Spezifische erkannte Schwachstellen (Sicherheitslücken)
  • CVE-Referenzen (Standard-Identifikatoren für Schwachstellen)
  • Risikostufen (hilft bei der Priorisierung von Korrekturen)

Analyse der Skriptausgabe

In diesem Schritt werden wir die im vorherigen Schritt von Nmap generierten Ergebnisse des Schwachstellen-Scans sorgfältig untersuchen. Als Anfänger ist es wichtig zu verstehen, dass das Scannen nur der erste Teil ist – die richtige Interpretation der Ergebnisse ist der Anfang einer echten Sicherheitsanalyse. Die Datei vuln_scan_results.txt enthält alle Rohdaten, die wir benötigen, um potenzielle Sicherheitslücken zu identifizieren.

  1. Zunächst betrachten wir die vollständigen Scanergebnisse. Dies gibt uns das gesamte Bild dessen, was Nmap entdeckt hat:

    cat vuln_scan_results.txt
  2. Da das manuelle Lesen der gesamten Datei überwältigend sein kann, suchen wir nach spezifischen Indikatoren für Schwachstellen. Das Wort "VULNERABLE" in der Nmap-Ausgabe markiert in der Regel bestätigte Sicherheitsrisiken:

    grep -i "vulnerable" vuln_scan_results.txt
  3. Als Nächstes suchen wir nach standardisierten Referenzen für Schwachstellen. CVEs (Common Vulnerabilities and Exposures) sind eindeutige Identifikatoren für bekannte Sicherheitslücken:

    grep -i "CVE-" vuln_scan_results.txt
  4. Der Portstatus ist bei der Bewertung von Schwachstellen von entscheidender Bedeutung. Offene Ports stellen oft potenzielle Einstiegspunkte für Angreifer dar:

    grep -E "open|filtered|closed" vuln_scan_results.txt
  5. Um einen schnellen Überblick über unsere Ergebnisse zu erhalten, zählen wir, wie viele Schwachstellen Nmap entdeckt hat. Dies hilft uns, unsere Analyse zu priorisieren:

    echo "Total vulnerabilities found: $(grep -c -i "vulnerable" vuln_scan_results.txt)"
  6. Wenn Sie ein interessantes CVE finden, ist es wichtig, es zu recherchieren. Dieses Beispiel zeigt, wie Sie Details zu einer bestimmten Schwachstelle abrufen können (ersetzen Sie die CVE-ID nach Bedarf):

    curl -s https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228 | grep -A10 "Description"

Beim Analysieren der Nmap-Ausgabe sollten Sie besonders auf diese kritischen Elemente achten:

  • Ports, die als "open" markiert sind – diese stellen aktive Dienste dar
  • Dienstversionen – veraltete Software enthält oft bekannte Sicherheitslücken
  • "VULNERABLE"-Indikatoren – bestätigte Sicherheitsrisiken
  • CVE-Referenzen – standardisierte Identifikatoren für Schwachstellen
  • Risikobewertungen (wenn verfügbar) – helfen bei der Priorisierung der Behebung

Speichern der Scanergebnisse

In diesem letzten Schritt lernen Sie, wie Sie die Ergebnisse Ihres Schwachstellen-Scans richtig dokumentieren und speichern. Das Speichern von Berichten ist für die Sicherheitsanalyse, die Dokumentation und das Teilen der Ergebnisse mit Teammitgliedern von entscheidender Bedeutung. Nmap bietet mehrere Ausgabeformate, um verschiedenen Bedürfnissen gerecht zu werden.

  1. Zunächst erstellen wir ein spezielles Verzeichnis, um alle Ihre Scanberichte organisiert zu halten. Dies hilft, einen sauberen Arbeitsbereich aufrechtzuerhalten und macht es einfacher, Ihre Ergebnisse später zu finden:

    mkdir -p ~/project/reports
  2. Jetzt führen wir den Schwachstellen-Scan erneut aus und speichern die Ergebnisse in zwei Standardformaten. Das -oN-Flag speichert die Ausgabe im normalen Textformat, während -oX eine XML-Datei erstellt, die von anderen Tools verarbeitet werden kann:

    nmap -sV --script vuln -oN ~/project/reports/scan_results.txt scanme.nmap.org
    nmap -sV --script vuln -oX ~/project/reports/scan_results.xml scanme.nmap.org
  3. XML-Dateien sind nicht direkt leicht zu lesen, daher konvertieren wir sie mit xsltproc in einen visuell ansprechenderen HTML-Bericht. Dies erstellt eine schön formatierte Webseite mit Ihren Scanergebnissen:

    xsltproc ~/project/reports/scan_results.xml -o ~/project/reports/scan_results.html
  4. Für einen schnellen Überblick extrahieren wir mit grep nur die kritischen Schwachstellenfindungen. Dies erstellt eine gekürzte Zusammenfassung, die nur die Zeilen mit Indikatoren für Schwachstellen zeigt:

    grep -iE "vulnerable|CVE-" ~/project/reports/scan_results.txt > ~/project/reports/summary.txt
  5. Lassen Sie uns überprüfen, ob alle unsere Berichtsdateien erfolgreich erstellt wurden. Die -lh-Flags zeigen die Dateigrößen in einem für Menschen lesbaren Format an:

    ls -lh ~/project/reports/
  6. (Optional) Wenn Sie diese Berichte mit anderen teilen müssen, können Sie sie in einer einzigen Archivdatei komprimieren:

    tar -czvf ~/project/reports.tar.gz ~/project/reports/

Erläuterung der wichtigsten Ausgabeformate:

  • .txt: Einfaches Textformat, das in jedem Texteditor leicht zu lesen ist
  • .xml: Strukturiertes Datenformat, das von anderen Sicherheitstools verarbeitet werden kann
  • .html: Visueller Bericht, der ideal für Präsentationen und Dokumentation ist
  • Zusammenfassungsdatei: Schneller Überblick, der nur die wichtigsten Schwachstellenfindungen enthält

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Schwachstellen-Scans mit Nmap durchführen, von der Installation auf Linux-Systemen bis hin zur Durchführung grundlegender Scans und der Überprüfung der Funktionalität. Die Übungen haben Ihnen wichtige Funktionen wie den Nmap Scripting Engine (NSE) vorgestellt und gezeigt, wie Sie Standard- und benutzerdefinierte Skripte ausführen können, um eine umfassende Netzwerkanalyse durchzuführen.

Sie haben wichtige Scantechniken wie die Erkennung der Dienstversion (-sV) und die Skriptausführung (-sC) geübt und dabei gelernt, die Scanergebnisse zu interpretieren und zu speichern. Diese Fähigkeiten bilden eine solide Grundlage für Netzwerksicherheitsbewertungen mithilfe der leistungsstarken Scankapazitäten von Nmap.