Netzwerkdienste mit Nmap scannen und dokumentieren

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, ein leistungsstarkes Netzwerk-Scanning-Tool, verwenden können, um auf einem Netzwerk laufende Dienste zu entdecken und zu analysieren. Nmap ist ein wichtiges Tool für Netzwerkadministratoren und Sicherheitsexperten und wird üblicherweise für die Netzwerkermittlung und Sicherheitsüberprüfung eingesetzt.

Die Fähigkeiten, die Sie erwerben werden, umfassen das Einrichten eines einfachen Webservers, die Verwendung von Nmap zum Scannen und Erkennen von Diensten, die Interpretation von Scanergebnissen und die effektive Dokumentation Ihrer Erkenntnisse. Diese Kenntnisse sind grundlegend für die Netzwerksicherheitsbewertung und werden in der Praxis weit verbreitet eingesetzt, um potenzielle Systemschwachstellen zu identifizieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills nmap/save_output -.-> lab-415932{{"Netzwerkdienste mit Nmap scannen und dokumentieren"}} nmap/port_scanning -.-> lab-415932{{"Netzwerkdienste mit Nmap scannen und dokumentieren"}} nmap/service_detection -.-> lab-415932{{"Netzwerkdienste mit Nmap scannen und dokumentieren"}} wireshark/packet_capture -.-> lab-415932{{"Netzwerkdienste mit Nmap scannen und dokumentieren"}} wireshark/packet_analysis -.-> lab-415932{{"Netzwerkdienste mit Nmap scannen und dokumentieren"}} end

Einrichten eines Webservers

In diesem Schritt werden wir einen einfachen Webserver auf Ihrem lokalen Rechner einrichten. Warum müssen wir das tun? Dieser Webserver wird später als Ziel für Ihre Nmap-Scanning-Übungen dienen. Nmap ist ein leistungsstarkes Tool zur Netzwerkexploration und Sicherheitsüberprüfung, und ein lokaler Webserver zum Scannen hilft Ihnen, zu verstehen, wie es in einer sicheren und kontrollierten Umgebung funktioniert.

Was ist ein Webserver?

Ein Webserver ist eine Software, die eine entscheidende Rolle im Web spielt. Wenn Sie eine Website in Ihrem Browser öffnen, ist es der Webserver, der die Webinhalte, wie HTML-Seiten, Bilder oder Videos, an Ihren Browser als Reaktion auf Ihre Anfrage sendet. In diesem Lab nutzen wir die integrierte Funktionalität von Python, um einen einfachen HTTP-Server zu erstellen. HTTP (Hypertext Transfer Protocol) ist die Grundlage der Datenkommunikation im Web, und die Verwendung des integrierten Servers von Python ist ein schneller und einfacher Weg, um einen Webserver aufzusetzen und laufen zu lassen.

Erstellen Ihres Webverzeichnisses und Inhalts

  1. Zunächst müssen wir ein Terminal öffnen. Ein Terminal ist eine textbasierte Schnittstelle, die es Ihnen ermöglicht, mit dem Betriebssystem Ihres Computers durch Eingabe von Befehlen zu interagieren. Nachdem Sie das Terminal geöffnet haben, navigieren Sie in Ihr Projektverzeichnis. Navigieren im Terminal bedeutet, sich durch das Dateisystem Ihres Computers zu bewegen. Verwenden Sie den folgenden Befehl, um in das Projektverzeichnis zu gelangen:

    cd /home/labex/project
  2. Jetzt erstellen wir ein neues Verzeichnis für den Inhalt Ihres Webservers. Ein Verzeichnis ist wie ein Ordner auf Ihrem Computer, in dem Sie Dateien speichern können. Wir verwenden den Befehl mkdir, um ein neues Verzeichnis zu erstellen. Das -p-Flag ist hier wichtig. Es stellt sicher, dass wenn die übergeordneten Verzeichnisse (die Verzeichnisse, die das Verzeichnis enthalten, das Sie erstellen) nicht existieren, sie für Sie erstellt werden. Führen Sie den folgenden Befehl aus:

    mkdir -p services
  3. Nachdem Sie das Verzeichnis erstellt haben, müssen Sie in es wechseln. Genauso wie Sie auf Ihrem Desktop einen Ordner öffnen würden, verwenden wir den Befehl cd, um in das neu erstellte Verzeichnis zu gelangen:

    cd services
  4. Als Nächstes erstellen wir eine einfache HTML-Datei. HTML (Hypertext Markup Language) ist die Standardsprache für die Erstellung von Webseiten. Diese Datei wird von Ihrem Webserver ausgeliefert. Der folgende Befehl erstellt eine Datei namens index.html und fügt den Text "Welcome to the mini fortress" hinein:

    echo "Welcome to the mini fortress" > index.html
  5. Schließlich starten wir einen Python-HTTP-Server auf Port 8000. Ein Port ist wie eine Tür auf Ihrem Computer, durch die Netzwerkverkehr ein- oder ausgehen kann. Port 8000 ist ein häufig verwendeter Port zum Testen von Webservern. Der folgende Befehl verwendet das integrierte HTTP-Server-Modul von Python, um den Webserver zu starten:

    python3 -m http.server 8000

    Sobald Sie diesen Befehl ausführen, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

    Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

    Dies bedeutet, dass Ihr Webserver läuft und bereit ist, Anfragen zu bearbeiten.

Überprüfen Ihres Webservers

Um sicherzustellen, dass Ihr Webserver richtig läuft, müssen wir ein neues Terminalfenster öffnen. Lassen Sie das erste Terminalfenster laufen, da es derzeit vom Webserverprozess belegt ist. Wenn Sie es schließen, wird der Webserver stoppen.

  1. Öffnen Sie ein neues Terminalfenster.

  2. Jetzt verwenden wir den Befehl curl, um auf Ihren Webserver zuzugreifen. curl ist ein Befehlszeilentool, das es Ihnen ermöglicht, Daten zu einem Server zu übertragen oder von ihm zu empfangen. Führen Sie den folgenden Befehl aus:

    curl http://localhost:8000

    Wenn alles richtig funktioniert, sollten Sie die Nachricht Welcome to the mini fortress sehen.

    Dies bestätigt, dass Ihr Webserver läuft und erreichbar ist.

Der Webserver, den Sie gerade eingerichtet haben, wird weiterhin im ersten Terminalfenster laufen. Halten Sie dieses Fenster geöffnet und den Server für die nächsten Schritte laufen. Alle weiteren Befehle sollten im neuen Terminalfenster ausgeführt werden, das Sie gerade geöffnet haben.

Scannen von Diensten mit Nmap

In diesem Schritt werden wir ein leistungsstarkes Tool namens Nmap verwenden, um den Webserverdienst, den Sie im vorherigen Schritt eingerichtet haben, zu scannen und zu erkennen. Das Scannen von Diensten ist ein wichtiger Teil der Cybersicherheit, da es uns hilft zu verstehen, welche Dienste auf einem Netzwerk laufen und ob sie möglicherweise anfällig für Angriffe sind.

Grundlagen von Nmap

Nmap, was für Network Mapper steht, ist ein kostenloses und quelloffenes Werkzeug. Es wird weit verbreitet für die Netzwerkermittlung und Sicherheitsüberprüfung eingesetzt. Nmap funktioniert, indem es rohe IP-Pakete an die Zielhosts auf einem Netzwerk sendet. Basierend auf den empfangenen Antworten kann es mehrere wichtige Dinge herausfinden:

  • Erstens kann es uns sagen, welche Hosts auf dem Netzwerk verfügbar sind. Ein Host kann ein Computer, ein Server oder ein beliebiges Gerät sein, das mit dem Netzwerk verbunden ist.
  • Zweitens kann es feststellen, welche Dienste diese Hosts anbieten. Dienste können beispielsweise Webserver, E-Mail-Server oder Dateiteilungsdienste sein.
  • Drittens kann es sogar erkennen, welches Betriebssystem die Hosts ausführen. Dies ist nützlich, da verschiedene Betriebssysteme unterschiedliche Sicherheitslücken aufweisen können.
  • Und es gibt viele andere Eigenschaften, die Nmap über die Hosts auf dem Netzwerk entdecken kann.

Ausführen eines grundlegenden Dienstscans

  1. Bevor wir den Scan starten, müssen wir sicherstellen, dass wir uns im Projektverzeichnis befinden. Im Projektverzeichnis werden alle relevanten Dateien für dieses Experiment gespeichert. Um in das Projektverzeichnis zu navigieren, verwenden wir den cd-Befehl im Terminal.

    cd /home/labex/project
  2. Jetzt werden wir einen Nmap-Dienstscan auf unserem lokalen Webserver ausführen. Der lokale Webserver läuft auf unserem eigenen Rechner, und wir werden Nmap verwenden, um herauszufinden, welcher Dienst auf Port 8000 läuft.

    sudo nmap -sV localhost -p 8000

    Lassen Sie uns diesen Befehl zerlegen, um zu verstehen, was jeder Teil macht:

    • sudo: Dies wird verwendet, um den Befehl mit administrativen Rechten auszuführen. Einige Operationen im System erfordern administrative Rechte, und Nmap benötigt möglicherweise diese Rechte, um einen ordnungsgemäßen Scan durchzuführen.
    • nmap: Dies ist das Netzwerkermittlungstool, über das wir gesprochen haben. Es ist der Hauptbefehl, den wir verwenden, um den Scan auszuführen.
    • -sV: Diese Option aktiviert die Versionserkennung. Sie hilft Nmap, zu identifizieren, welcher spezifische Dienst auf dem Zielport läuft.
    • localhost: Dies ist das Ziel, das wir scannen möchten. In diesem Fall ist es unser lokaler Rechner.
    • -p 8000: Diese Option gibt an, dass wir Port 8000 scannen möchten. Ports sind wie Türen auf einem Computer, und verschiedene Dienste verwenden verschiedene Ports, um zu kommunizieren.

    Nachdem Sie den Befehl ausgeführt haben, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000094s latency).
    
    PORT     STATE SERVICE VERSION
    8000/tcp open  http    Python/3.10 http.server
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 6.31 seconds

    Die Ausgabe zeigt, dass Nmap einen HTTP-Dienst erkannt hat, der auf Port 8000 läuft. Genauer gesagt hat es den Dienst als Python 3.10 HTTP-Server identifiziert.

  3. Um die Scanergebnisse für eine weitere Analyse aufzuzeichnen, speichern wir die Ausgabe in einer Datei. Auf diese Weise können wir uns später auf die Ergebnisse beziehen und nach potenziellen Sicherheitsrisiken suchen.

    sudo nmap -sV localhost -p 8000 > /home/labex/project/nmap_service_detection.txt

    Dieser Befehl führt den gleichen Nmap-Scan wie zuvor aus, aber anstatt die Ausgabe im Terminal anzuzeigen, leitet er die Ausgabe in eine Datei namens nmap_service_detection.txt um.

  4. Jetzt lassen wir uns den Inhalt der gespeicherten Datei anzeigen, um sicherzustellen, dass die Ergebnisse darin sind. Wir verwenden den cat-Befehl, um den Inhalt einer Datei im Terminal anzuzeigen.

    cat /home/labex/project/nmap_service_detection.txt

    Der Inhalt, den Sie sehen, sollte mit der Ausgabe übereinstimmen, die Sie zuvor gesehen haben, als Sie den Nmap-Befehl direkt ausgeführt haben.

Interpretation der Nmap-Ausgabe

Lassen Sie uns die Ausgabe Ihres Nmap-Scans genauer betrachten, um zu verstehen, was jeder Teil bedeutet:

  • Starting Nmap 7.80: Diese Zeile gibt die Version von Nmap an, die verwendet wird. Unterschiedliche Versionen von Nmap können unterschiedliche Funktionen und Fähigkeiten haben.
  • Host is up: Dies zeigt, dass das Ziel (in diesem Fall unser lokaler Rechner) auf Netzwerkanfragen antwortet. Wenn der Host ausgeschaltet wäre, könnte Nmap keine Informationen von ihm erhalten.
  • PORT: Diese Spalte listet die Portnummer auf, die gescannt wurde. In unserem Fall ist es Port 8000.
  • STATE: Dies zeigt den Status des Ports an. Er kann offen, geschlossen oder gefiltert sein. Ein offener Port bedeutet, dass ein Dienst auf diesem Port lauscht und Verbindungen akzeptiert.
  • SERVICE: Dies identifiziert den Dienst, der auf dem Port läuft. In unserer Ausgabe ist es ein HTTP-Dienst.
  • VERSION: Dies zeigt Details über die Dienstversion an. Hier erfahren wir, dass der HTTP-Dienst ein Python 3.10 http.server ist.

Diese Informationen sind für Sicherheitsbewertungen von entscheidender Bedeutung. Indem wir wissen, welche Dienste auf einem Netzwerk zugänglich sind, können wir prüfen, ob sie bekannte Sicherheitslücken aufweisen. Wenn diese Dienste nicht ordnungsgemäß gesichert sind, könnten sie möglicherweise von Angreifern ausgenutzt werden.

Dokumentation Ihrer Ergebnisse

In diesem Schritt werden wir uns darauf konzentrieren, die Dienstinformationen zu dokumentieren, die Sie mit Nmap entdeckt haben. Die Dokumentation ist wie eine Karte in der Welt der Sicherheitsarbeit. Sie ist von entscheidender Bedeutung, da sie es Ihnen ermöglicht, alle wichtigen Details aufzuzeichnen, die Sie während Ihrer Scans finden. Diese Aufzeichnung kann später für die Analyse herangezogen werden, um zu sehen, wie sich die Dinge im Laufe der Zeit geändert haben, oder um bestimmten Compliance-Anforderungen zu entsprechen.

Die Wichtigkeit der Dokumentation

In professionellen Sicherheitsbewertungen und Netzwerküberprüfungen spielt eine detaillierte Dokumentation mehrere Schlüsselrollen:

  • Schnappschuss von Systemen und Diensten: Sie erstellt eine Aufzeichnung darüber, welche Systeme und Dienste zu einem bestimmten Zeitpunkt vorhanden waren. Dies ist nützlich, um den Zustand Ihres Netzwerks zu einem bestimmten Zeitpunkt zu verstehen.
  • Verfolgung von Änderungen: Hilft Ihnen dabei, alle Änderungen in der Netzwerkinfrastruktur zu verfolgen. Indem Sie die Dokumentation aus verschiedenen Zeitpunkten vergleichen, können Sie leicht neue Dienste, entfernte Systeme oder andere Änderungen erkennen.
  • Compliance-Beweis: Liefert Beweise dafür, dass Sie ordnungsgemäße Sicherheitsüberprüfungen durchgeführt haben, was häufig von verschiedenen Vorschriften und Standards verlangt wird.
  • Planung von Verbesserungen: Dient als Referenz bei der Planung von Sicherheitsverbesserungen. Sie können die dokumentierten Ergebnisse betrachten, um Bereiche zu identifizieren, die Aufmerksamkeit erfordern.

Erstellen einer Dokumentationsdatei

Zunächst müssen Sie sicherstellen, dass Sie sich im Projektverzeichnis befinden. Hier werden wir unsere Dokumentationsdatei erstellen und speichern. Verwenden Sie dazu den cd-Befehl, der für "change directory" steht.

cd /home/labex/project

Schritt 2: Erstellen Sie eine neue Datei

Jetzt erstellen wir eine neue Datei, um unsere Ergebnisse zu dokumentieren. Wir verwenden den touch-Befehl. Wenn die Datei nicht existiert, erstellt touch eine leere Datei mit dem angegebenen Namen.

touch nmap_findings.txt

Schritt 3: Fügen Sie einen beschreibenden Header hinzu

Als Nächstes fügen wir unserer Dokumentationsdatei einen beschreibenden Header hinzu. Dieser Header gibt einen Kontext zu den Scanergebnissen, die wir hinzufügen werden. Wir verwenden den echo-Befehl, um den Text auszugeben, und den >>-Operator, um ihn an die Datei anzuhängen. Der >>-Operator ist wichtig, da er den Text am Ende der Datei hinzufügt, ohne das bereits vorhandene zu überschreiben.

echo "Nmap has detected the following service running on localhost, port 8000:" >> nmap_findings.txt

Schritt 4: Fügen Sie die detaillierten Scanergebnisse hinzu

Jetzt fügen wir die detaillierten Nmap-Scanergebnisse unserer Dokumentation hinzu. Wir führen den Nmap-Scan erneut aus und verwenden den >>-Operator, um die Ergebnisse an unsere Datei anzuhängen.

nmap -sV localhost -p 8000 >> nmap_findings.txt

Schritt 5: Überprüfen Sie Ihre Dokumentation

Schließlich überprüfen wir die fertige Dokumentation. Wir verwenden den cat-Befehl, der für "concatenate" steht, um den Inhalt der Datei anzuzeigen.

cat nmap_findings.txt

Ihre Datei sollte jetzt einen Header und die vollständigen Nmap-Scanergebnisse enthalten, ähnlich wie folgt:

Nmap has detected the following service running on localhost, port 8000:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).

PORT     STATE SERVICE VERSION
8000/tcp open  http    Python/3.10 http.server

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.31 seconds

Best Practices für die Sicherheitsdokumentation

Bei der Dokumentation von Sicherheitsergebnissen in realen Szenarien sollten Sie mehrere wichtige Elemente berücksichtigen:

  1. Datum und Uhrzeit der Bewertung: Dies hilft Ihnen, zu verfolgen, wann der Scan durchgeführt wurde, was nützlich ist, um die Zeitlinie der Änderungen in Ihrem Netzwerk zu verstehen.
  2. Verwendete Tools (einschließlich Versionsnummern): Es ist wichtig zu wissen, welche Tools verwendet wurden und welche Versionen sie haben, um die Reproduzierbarkeit zu gewährleisten und die Fähigkeiten des Scans zu verstehen.
  3. Umfang der Bewertung: Definieren Sie klar, was getestet wurde. Dies kann bestimmte IP-Adressen, Ports oder Systeme umfassen.
  4. Detaillierte Ergebnisse mit Beweisen: Geben Sie so viele Details wie möglich zu den Ergebnissen an, zusammen mit allen Beweisen, die diese unterstützen.
  5. Potenzielle Sicherheitsauswirkungen: Analysieren Sie die Ergebnisse und identifizieren Sie alle potenziellen Sicherheitsrisiken oder Schwachstellen.
  6. Empfehlungen für Verbesserungen: Basierend auf den Ergebnissen schlagen Sie Schritte zur Verbesserung der Netzwerksicherheit vor.

Für dieses Lab haben wir ein einfaches Dokument mit den Scanergebnissen erstellt, aber in professionellen Kontexten wäre die Dokumentation in der Regel umfassender.

Zusammenfassung

In diesem Lab haben Sie essentielle Fähigkeiten für die Netzwerkdienstermittlung und -dokumentation mit Nmap gelernt. Diese Fähigkeiten bilden die Grundlage für Netzwerksicherheitsbewertungsmethoden, die von Fachleuten weltweit eingesetzt werden.

Die wichtigsten Erkenntnisse umfassen das Einrichten eines grundlegenden Webservers, die Verwendung von Nmap zur Erkennung laufender Dienste, die Interpretation von Scanergebnissen und die Dokumentation von Ergebnissen. Diese Fähigkeiten sind in realen Szenarien wie Netzwerkbestandsaufnahmen, Sicherheitsbewertungen, Systemadministration und Compliance - Überprüfungen anwendbar. Wenn Sie sich in der Netzwerk- und Sicherheitsbranche weiterentwickeln, wird Nmap ein unschätzbares Werkzeug sein. Erwägen Sie, die erweiterten Funktionen von Nmap zu erkunden, um Ihre Netzwerkermittlungsfähigkeiten zu verbessern.