Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken

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 über den Nmap Scripting Engine (NSE), einen leistungsstarken Bestandteil des Nmap-Netzwerk-Scanning-Tools. Der NSE erweitert die Funktionen von Nmap und ermöglicht es Ihnen, fortgeschrittene Netzwerkermittlungen, Schwachstellensuche und Dienstenumeration durchzuführen.

Dieser Engine ist für moderne Netzwerkadministratoren, Sicherheitsexperten und ethische Hacker von entscheidender Bedeutung. Sie müssen Netzwerktopologien verstehen, potenzielle Sicherheitsprobleme erkennen und detaillierte Informationen über Netzwerkdienste sammeln. In diesem Lab richten Sie einen lokalen Netzwerkdienst ein und verwenden Nmap, um ihn zu entdecken und zu analysieren. Am Ende werden Sie die Grundlagen der Verwendung von Nmap und seines Skripting-Engines zur Erkundung und Datensammlung von Netzwerkdiensten beherrschen.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-415931{{"Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken"}} nmap/save_output -.-> lab-415931{{"Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken"}} nmap/port_scanning -.-> lab-415931{{"Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken"}} nmap/target_specification -.-> lab-415931{{"Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken"}} nmap/service_detection -.-> lab-415931{{"Netzwerkdienste mit Nmap und seiner Scripting Engine entdecken"}} end

Einrichten eines lokalen Netzwerkdiensts zum Scannen

In diesem Schritt werden wir einen einfachen Netzwerkdienst erstellen. Warum tun wir das? Im echten Bereich der Cybersicherheit müssen Sie oft die auf einem Netzwerk laufenden Dienste finden und analysieren. Indem wir diesen einfachen Dienst erstellen, können wir später üben, Nmap zu verwenden, um ihn zu scannen, genau wie Sie es in einer realen Situation tun würden.

Zunächst müssen wir ein Terminal öffnen. Ein Terminal ist eine textbasierte Schnittstelle, in der Sie Befehle eingeben können, um mit Ihrem Computer zu interagieren. Nachdem Sie das Terminal geöffnet haben, müssen Sie sicherstellen, dass Sie sich im Projektverzeichnis befinden. Das Projektverzeichnis ist wie ein Ordner, in dem alle Dateien, die sich auf dieses Projekt beziehen, gespeichert sind. Um in das Projektverzeichnis zu navigieren, geben Sie den folgenden Befehl im Terminal ein:

cd /home/labex/project

Als Nächstes werden wir eine einfache HTML - Datei erstellen. HTML steht für HyperText Markup Language und wird zur Erstellung von Webseiten verwendet. Diese Datei wird von unserem Server gehostet, genau wie die Webseiten, die Sie im Internet sehen. Der Inhalt dieser Datei ist das, was ein realer Webserver an Benutzer ausliefern könnte. Um die Datei zu erstellen, verwenden Sie den folgenden Befehl:

echo "<h1>Welcome to the hidden treasure chamber</h1>" > treasure.html

Dieser Befehl macht zwei Dinge. Zunächst erstellt er eine Zeichenkette mit einem HTML - Überschriftselement. Dann leitet er diese Zeichenkette in eine Datei namens treasure.html um. Um zu überprüfen, ob die Datei korrekt erstellt wurde, können Sie den cat - Befehl verwenden. Der cat - Befehl wird verwendet, um den Inhalt einer Datei anzuzeigen. Geben Sie den folgenden Befehl im Terminal ein:

cat treasure.html

Wenn alles gut gegangen ist, sollten Sie den HTML - Inhalt sehen, den wir gerade hinzugefügt haben:

<h1>Welcome to the hidden treasure chamber</h1>

Jetzt werden wir einen einfachen HTTP - Server starten. HTTP steht für HyperText Transfer Protocol und ist das Protokoll, das zum Übertragen von Webseiten im Internet verwendet wird. Wir werden das integrierte Modul von Python verwenden, um diesen Server zu starten. Dieser Server wird auf Port 8000 lauschen. Ein Port ist wie eine Tür auf Ihrem Computer, durch die Netzwerkverkehr ein- oder ausgehen kann. Der Server wird Dateien aus dem aktuellen Verzeichnis ausliefern, das das Projektverzeichnis ist, in das wir zuvor navigiert sind. Um den Server zu starten, geben Sie den folgenden Befehl im Terminal ein:

python3 -m http.server 8000

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

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

Diese Ausgabe zeigt an, dass der HTTP - Server jetzt läuft und auf Verbindungen auf Port 8000 wartet. Stellen Sie sicher, dass Sie dieses Terminalfenster geöffnet lassen. Wenn Sie es schließen, wird der Server stoppen, und wir können ihn später nicht mit Nmap scannen.

Entdecken von Netzwerkdiensten mit Nmap

Nachdem wir erfolgreich einen Netzwerkdienst eingerichtet haben, ist es an der Zeit, Nmap zu verwenden, um ihn zu entdecken und zu analysieren. Nmap, kurz für Network Mapper, ist ein bekanntes und leistungsstarkes Open - Source - Tool. Es wird weit verbreitet für die Netzwerkermittlung eingesetzt, was bedeutet, herauszufinden, welche Geräte und Dienste in einem Netzwerk verfügbar sind, sowie für die Sicherheitsüberprüfung, die bei der Identifizierung potenzieller Sicherheitsrisiken hilft.

Zunächst öffnen Sie ein neues Terminalfenster. Stellen Sie sicher, dass Sie das vorherige Terminalfenster geöffnet lassen, da dort der HTTP - Server läuft. Nachdem Sie das neue Terminal geöffnet haben, müssen Sie in das Projektverzeichnis navigieren. Dies ist wichtig, da alle Befehle, die sich auf dieses Projekt beziehen, aus diesem Verzeichnis ausgeführt werden. Verwenden Sie den folgenden Befehl, um das Verzeichnis zu ändern:

cd /home/labex/project

Beginnen wir mit einem einfachen Portscan. Ein Portscan ist eine Technik, um zu überprüfen, welche Ports auf einem Gerät geöffnet sind und Dienste ausführen. Ports sind wie Türen, durch die Netzwerkverkehr ein- und ausgeht. In diesem Fall werden wir Port 8000 auf dem localhost scannen, was auf die aktuelle Maschine, auf der wir arbeiten, verweist. Führen Sie den folgenden Befehl aus:

nmap -p 8000 localhost

Dieser Befehl weist Nmap an, speziell Port 8000 auf der lokalen Maschine zu scannen. Nach der Ausführung des Befehls sollten Sie eine Ausgabe ähnlich der folgenden sehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX XXX
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).

PORT     STATE SERVICE
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Die Ausgabe zeigt uns, dass Port 8000 geöffnet ist, was bedeutet, dass dort ein Dienst läuft. "http - alt" ist die Standardweise von Nmap, alternative HTTP - Dienste zu identifizieren.

Als Nächstes möchten wir detailliertere Informationen über diesen Dienst sammeln. Wir verwenden den -sV - Schalter mit Nmap. Dieser Schalter teilt Nmap mit, zu versuchen, die Version des laufenden Dienstes zu bestimmen. Die Kenntnis der Dienstversion kann für Sicherheitszwecke von entscheidender Bedeutung sein, da sie hilft, zu erkennen, ob es bekannte Sicherheitslücken in dieser speziellen Version gibt. Führen Sie den folgenden Befehl aus:

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

Dieser Befehl führt einen Versionserkennungs - Scan auf Port 8000 durch. sudo wird verwendet, um den Befehl mit administrativen Rechten auszuführen, was für einige Nmap - Operationen erforderlich sein kann. Das > - Symbol leitet die Ausgabe des Befehls in eine Datei namens nmap_output_service_version.txt um. Auf diese Weise können wir die Ergebnisse für eine spätere Analyse speichern.

Um die Ergebnisse anzuzeigen, verwenden Sie den folgenden Befehl:

cat /home/labex/project/nmap_output_service_version.txt

Sie sollten detailliertere Informationen über den HTTP - Dienst sehen, einschließlich der möglichen Softwareversion. Die Ausgabe könnte so aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX XXX
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).

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

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

Diese Ausgabe bestätigt, dass der Dienst ein von Python betriebener HTTP - Server ist, was mit dem übereinstimmt, was wir im vorherigen Schritt eingerichtet haben.

Verwendung des Nmap Scripting Engines (NSE)

Der Nmap Scripting Engine (NSE) ist ein leistungsstarkes Tool, das es Ihnen ermöglicht, die Funktionen von Nmap mithilfe von Lua - Skripten zu erweitern. Lua ist eine leichte Programmiersprache, und diese Skripte können eine Vielzahl von Aufgaben ausführen. Beispielsweise können sie bei der erweiterten Diensterkennung helfen, was bedeutet, dass sie genauer bestimmen können, welche Dienste auf einem Netzwerkgerät laufen. Sie können auch für das Sicherheitslücken - Scannen verwendet werden, was für die Erkennung von Sicherheitsrisiken in einem System von entscheidender Bedeutung ist.

Lassen Sie uns den NSE verwenden, um mehr Informationen über unseren HTTP - Server zu sammeln. NSE - Skripte sind in verschiedene Kategorien gruppiert. Diese Kategorien umfassen "default", das häufig verwendete und sichere Skripte enthält; "discovery", das für die Ermittlung von Netzwerkdiensten verwendet wird; "safe", das keine Schäden am Zielsystem verursacht; und "vuln", das für das Sicherheitslücken - Scannen eingesetzt wird.

Zunächst möchten wir sehen, welche HTTP - verwandten Skripte verfügbar sind. Dazu verwenden wir den folgenden Befehl:

ls /usr/share/nmap/scripts/http*

Dieser Befehl listet alle NSE - Skripte im Verzeichnis /usr/share/nmap/scripts/ auf, die mit http beginnen. Wenn Sie diesen Befehl ausführen, sehen Sie eine Liste von Skripten, die für die Interaktion mit HTTP - Diensten entwickelt wurden. Diese Skripte können verschiedene Funktionen ausführen, von einfacher Informationssammlung, wie das Abrufen des Titels einer Webseite, bis hin zu komplexeren Aufgaben wie dem Scannen auf Sicherheitslücken in einem HTTP - Dienst.

Jetzt verwenden wir das http - title - Skript, um den Titel unserer Webseite zu extrahieren. Das http - title - Skript ist darauf ausgelegt, einen HTTP - Dienst zu untersuchen und den Titel der von ihm ausgelieferten Webseite zu finden. Hier ist der Befehl, um dieses Skript auszuführen:

sudo nmap --script=http-title -p 8000 localhost > /home/labex/project/nmap_script_output.txt

In diesem Befehl wird sudo verwendet, um den Befehl mit administrativen Rechten auszuführen, da einige Nmap - Operationen diese erfordern können. nmap ist der Hauptbefehl, und --script=http - title teilt Nmap mit, das http - title - Skript zu verwenden. -p 8000 gibt an, dass wir Port 8000 anvisieren, auf dem unser HTTP - Server läuft. localhost ist das Ziel, was bedeutet, dass wir den Scan auf unserer eigenen Maschine ausführen. Das > - Symbol leitet die Ausgabe des Befehls in die Datei /home/labex/project/nmap_script_output.txt um.

Lassen Sie uns die Ausgabe des Befehls überprüfen. Dazu können wir den folgenden Befehl verwenden:

cat /home/labex/project/nmap_script_output.txt

Der cat - Befehl wird verwendet, um den Inhalt einer Datei anzuzeigen. Wenn Sie diesen Befehl ausführen, sollten Sie eine Ausgabe sehen, die Informationen über den Titel unserer Webseite enthält. Die Ausgabe könnte so aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX XXX
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000040s latency).

PORT     STATE SERVICE
8000/tcp open  http-alt
|_http-title: Directory listing for /

Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Jetzt versuchen wir einen umfassenderen Scan unter Verwendung mehrerer Skripte. Die Kategorie "default" enthält sichere Skripte, die nützliche Informationen über das Ziel liefern. Um alle Skripte in der Kategorie "default" gegen unseren HTTP - Server auf Port 8000 auszuführen, verwenden wir den folgenden Befehl:

sudo nmap --script=default -p 8000 localhost > /home/labex/project/nmap_default_scripts.txt

Dieser Befehl ähnelt dem vorherigen, aber anstatt ein einzelnes Skript anzugeben, sagen wir Nmap, alle Skripte in der Kategorie "default" auszuführen.

Lassen Sie uns die Ergebnisse dieses Scans untersuchen. Dazu können wir erneut den cat - Befehl verwenden:

cat /home/labex/project/nmap_default_scripts.txt

Die Ausgabe wird detailliertere Informationen über unseren HTTP - Server enthalten, die von verschiedenen NSE - Skripten gesammelt wurden, die standardmäßig ausgeführt werden.

Schließlich erkunden wir die Skript - Hilfsfunktion, um mehr über ein bestimmtes Skript zu erfahren. Wenn Sie mehr über das http - title - Skript wissen möchten, können Sie den folgenden Befehl verwenden:

nmap --script-help=http-title

Dieser Befehl zeigt die Dokumentation für das http - title - Skript an. Die Dokumentation enthält den Zweck des Skripts, wie es verwendet wird und das Format seiner Ausgabe. Das Verständnis der Skriptdokumentation ist wichtig, wenn Sie den NSE für bestimmte Aufgaben verwenden, da es Ihnen hilft, zu wissen, was das Skript tut und wie es richtig verwendet wird.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Nmap Scripting Engine (NSE) für die Ermittlung und Analyse von Netzwerkdiensten verwenden. Zunächst haben Sie einen lokalen HTTP - Server eingerichtet und dann verschiedene Nmap - Befehle eingesetzt, um diesen Dienst zu scannen und Informationen über ihn zu sammeln.

Sie haben Fähigkeiten wie das Einrichten eines einfachen Netzwerkdienstes für Tests, die Verwendung von Nmap zum Finden offener Ports und laufender Dienste, die Ausführung einer Versionserkennung mit dem -sV - Schalter, die Nutzung von NSE - Skripten zur Erlangung detaillierter Dienstinformationen und die Interpretation von Nmap - Scanergebnissen, um die Eigenschaften eines Dienstes zu verstehen, erworben. Diese Fähigkeiten sind für Netzwerkadministratoren, Sicherheitsexperten und ethische Hacker von entscheidender Bedeutung. Wenn Sie sich in der Cybersicherheit weiterentwickeln, werden Nmap und sein Skripting - Engine für die Netzwerkermittlung und die Sicherheitsbewertung von großem Wert sein.

OSZAR »