Zielspezifikationstechniken in Nmap lernen

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 Nmap kennen, ein leistungsstarkes Netzwerk-Scanning-Tool, das von Sicherheitsexperten weit verbreitet eingesetzt wird. Das Lab konzentriert sich speziell auf Techniken zur Zielangabe in Nmap, die für die Definition der zu scannenden Hosts und Netzwerke von entscheidender Bedeutung sind.

Das Verständnis dieser Techniken ist für eine effektive Netzwerkrecherche und Sicherheitsbewertung unerlässlich. Am Ende dieses Labs können Sie verschiedene Methoden zur Zielangabe in Nmap anwenden und die Scanergebnisse effektiv interpretieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") subgraph Lab Skills nmap/installation -.-> lab-415935{{"Zielspezifikationstechniken in Nmap lernen"}} nmap/basic_syntax -.-> lab-415935{{"Zielspezifikationstechniken in Nmap lernen"}} nmap/output_formats -.-> lab-415935{{"Zielspezifikationstechniken in Nmap lernen"}} nmap/port_scanning -.-> lab-415935{{"Zielspezifikationstechniken in Nmap lernen"}} nmap/target_specification -.-> lab-415935{{"Zielspezifikationstechniken in Nmap lernen"}} end

Installation und Erkundung von Nmap

In diesem Schritt stellen wir sicher, dass Nmap korrekt auf Ihrem System installiert ist und beginnen, seine grundlegenden Funktionen zu erkunden. Nmap, kurz für Network Mapper, ist ein Open-Source-Tool. Es wird weit verbreitet für die Netzwerkermittlung und Sicherheitsüberprüfung eingesetzt. Mit Nmap können Sie herausfinden, welche Geräte mit einem Netzwerk verbunden sind und welche Dienste diese Geräte anbieten. Dies ist in der Cybersicherheit von entscheidender Bedeutung, da es Ihnen hilft, die Netzwerklandschaft zu verstehen und potenzielle Sicherheitsrisiken zu identifizieren.

Zunächst müssen wir überprüfen, ob Nmap bereits auf Ihrem System installiert ist. Dazu verwenden wir das Terminal. Das Terminal ist eine textbasierte Schnittstelle, in der Sie Befehle eingeben können, um mit Ihrem Computer zu interagieren. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

nmap --version

Dieser Befehl fordert das System auf, die installierte Version von Nmap anzuzeigen. Wenn Nmap korrekt installiert ist, sehen Sie eine Ausgabe ähnlich der folgenden, die die Nmap-Version und Build-Informationen enthält:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1d nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

Als nächstes möchten wir verstehen, wie man Ziele für Nmap-Scans angibt. Die Zielangabe ist wichtig, da sie Nmap mitteilt, welche Geräte oder Netzwerke Sie scannen möchten. Um dies zu lernen, werfen wir einen Blick auf einige grundlegende Nmap-Dokumentationen. Führen Sie den folgenden Befehl im Terminal aus:

nmap -h | grep -A 10 "TARGET SPECIFICATION"

Dieser Befehl verwendet zunächst nmap -h, um den Hilfetext von Nmap zu erhalten. Anschließend leitet er die Ausgabe an grep -A 10 "TARGET SPECIFICATION" weiter, das im Hilfetext nach dem Abschnitt "TARGET SPECIFICATION" sucht und die nächsten 10 Zeilen anzeigt. Sie sehen eine Erklärung verschiedener Methoden, wie man Ziele für Nmap-Scans angibt.

Jetzt benötigen wir einen Ort, um die Ergebnisse unserer Nmap-Scans zu speichern. Wir erstellen dafür ein Verzeichnis. Ein Verzeichnis ist wie ein Ordner auf Ihrem Computer, in dem Sie Dateien organisieren können. Führen Sie die folgenden Befehle im Terminal aus:

mkdir -p /home/labex/project/nmap_scans
cd /home/labex/project/nmap_scans

Der Befehl mkdir -p erstellt ein Verzeichnis namens nmap_scans im Pfad /home/labex/project. Die Option -p stellt sicher, dass, falls irgendwelche Zwischenverzeichnisse nicht existieren, sie ebenfalls erstellt werden. Der Befehl cd wechselt dann das aktuelle Arbeitsverzeichnis in das neu erstellte Verzeichnis nmap_scans.

Lassen Sie uns Nmap in Aktion sehen, indem wir einen einfachen Scan auf Ihrem lokalen Rechner durchführen. Der lokale Rechner ist der Computer, den Sie derzeit verwenden. Führen Sie den folgenden Befehl aus:

nmap localhost > local_scan.txt

Dieser Befehl scannt Ihren lokalen Rechner mit Nmap. Das Symbol > leitet die Ausgabe des Scans in eine Datei namens local_scan.txt um. Auf diese Weise können wir die Scanergebnisse für eine spätere Analyse speichern.

Schließlich lassen Sie uns die Scanergebnisse betrachten. Führen Sie den folgenden Befehl aus:

cat local_scan.txt

Der Befehl cat zeigt den Inhalt der Datei local_scan.txt an. Sie sehen eine Liste der Ports, die Nmap auf Ihrem lokalen Rechner gescannt hat. Neben den Portnummern finden Sie Informationen darüber, welche Ports geöffnet sind und welche Dienste möglicherweise auf diesen offenen Ports laufen. Diese Informationen können Ihnen helfen, den Sicherheitsstatus Ihres lokalen Rechners zu verstehen.

Einrichten eines Dienstes und Scannen bestimmter Ports

In diesem Schritt lernen Sie, wie Sie einen lokalen Webserver starten und dann ein leistungsstarkes Tool namens Nmap verwenden, um ihn durch das Scannen bestimmter Ports zu finden. Das Verständnis dieses Prozesses ist von entscheidender Bedeutung, da es Ihnen zeigt, wie Nmap eingesetzt werden kann, um Dienste zu identifizieren, die derzeit auf einem Netzwerk oder einem Computer laufen.

Zunächst müssen wir in unser Projektverzeichnis wechseln. Hier werden wir unseren einfachen Webserver einrichten. Sobald wir am richtigen Ort sind, starten wir einen Python-HTTP-Server, der auf Port 8000 lauscht. Port 8000 ist ein gängiger Port für die Tests von Webservern. Hier ist der Befehl dafür:

cd /home/labex/project/nmap_scans
python3 -m http.server 8000 &

Das & am Ende des Befehls ist wichtig. Es lässt den Server im Hintergrund laufen. Das bedeutet, dass Sie das Terminal weiterhin für andere Aufgaben nutzen können, während der Server läuft. Nach Ausführung des Befehls sollten Sie eine Ausgabe sehen, die darauf hinweist, dass der Server erfolgreich gestartet wurde:

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

Jetzt, da unser Server läuft, möchten wir sicherstellen, dass er tatsächlich auf Port 8000 lauscht. Wir können den Befehl lsof verwenden, was für "list open files" steht. Dieser Befehl hilft uns zu überprüfen, welche Prozesse derzeit einen bestimmten Port nutzen. So verwenden wir ihn:

lsof -i :8000

Wenn der Server korrekt läuft, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3 12345 labex   4u  IPv4 123456      0t0  TCP *:8000 (LISTEN)

Diese Ausgabe sagt uns, dass Python auf Port 8000 lauscht, was bedeutet, dass unser Server wie erwartet funktioniert.

Als nächstes verwenden wir Nmap, um Port 8000 auf dem lokalen Rechner zu scannen. Das Ziel ist es, unseren HTTP-Server zu detektieren. Hier ist der Befehl:

nmap -p 8000 localhost > http_server_scan.txt

In diesem Befehl wird die Option -p verwendet, um anzugeben, welchen Port wir scannen möchten. In unserem Fall scannen wir Port 8000 auf dem localhost, also auf unserem eigenen Rechner. Das Symbol > leitet die Ausgabe des Nmap-Scans in eine Datei namens http_server_scan.txt um. So können wir die Ergebnisse später leicht überprüfen.

Lassen Sie uns die Ergebnisse des Scans überprüfen:

cat http_server_scan.txt

Wenn der Scan erfolgreich ist, sollten Sie eine Ausgabe ähnlich der folgenden sehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-25 12:34 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).

PORT     STATE SERVICE
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

Diese Ausgabe zeigt, dass Port 8000 geöffnet ist und einen HTTP-Dienst ausführt, was bedeutet, dass Nmap unseren Server detektieren konnte.

Schließlich versuchen wir, einen Portbereich zu scannen, um zu sehen, ob es andere Dienste auf unserem lokalen Rechner gibt. Hier ist der Befehl:

nmap -p 1-1000 localhost > port_range_scan.txt

Dieser Befehl teilt Nmap mit, alle Ports von 1 bis 1000 auf dem localhost zu scannen. Wieder leiten wir die Ausgabe in eine Datei namens port_range_scan.txt um.

Lassen Sie uns die Ergebnisse untersuchen:

cat port_range_scan.txt

Die Ausgabe zeigt, welche Ports im Bereich von 1 bis 1000 auf Ihrem lokalen Rechner geöffnet sind. Dies ist eine nützliche Methode, um Dienste zu entdecken, von denen Sie möglicherweise nicht wussten, dass sie laufen.

Fortgeschrittene Zielangabe

In diesem Schritt werden wir uns eingehender mit fortgeschrittenen Techniken zur Zielangabe in Nmap befassen. Nmap ist ein leistungsstarkes Tool für die Netzwerkrecherche und bietet verschiedene Möglichkeiten, mehrere Ziele in einem einzigen Befehl anzugeben. Dies ist äußerst nützlich, wenn Sie mehrere Hosts oder Netzwerke auf einmal scannen müssen, da es Ihnen Zeit und Mühe spart.

Beginnen wir damit, eine Textdatei zu erstellen, die mehrere IP-Adressen enthält, die wir scannen möchten. Wir werden die localhost-Adresse (127.0.0.1) und ein paar andere lokale IP-Adressen hinzufügen. Die localhost-Adresse ist eine spezielle IP-Adresse, die sich auf das aktuelle Gerät selbst bezieht. Indem wir sie hinzufügen, können wir den Scanning-Prozess auf unserem eigenen Rechner testen.

cd /home/labex/project/nmap_scans
echo "127.0.0.1" > targets.txt
echo "127.0.0.2" >> targets.txt
echo "127.0.0.3" >> targets.txt

Im obigen Code wechselt der cd-Befehl das aktuelle Arbeitsverzeichnis zu /home/labex/project/nmap_scans. Der echo-Befehl wird verwendet, um Text auszugeben. Der >-Operator erstellt eine neue Datei und schreibt den Text hinein, während der >>-Operator den Text an eine vorhandene Datei anhängt. Also erstellen wir zunächst eine Datei namens targets.txt und schreiben 127.0.0.1 hinein. Dann hängen wir 127.0.0.2 und 127.0.0.3 an dieselbe Datei an.

Schauen wir uns jetzt die Datei an, die wir gerade erstellt haben, um sicherzustellen, dass die IP-Adressen korrekt hinzugefügt wurden.

cat targets.txt

Der cat-Befehl wird verwendet, um den Inhalt einer Datei anzuzeigen. Nach Ausführung dieses Befehls sollten Sie die folgende Ausgabe sehen:

127.0.0.1
127.0.0.2
127.0.0.3

Als nächstes verwenden wir die -iL-Option in Nmap, um alle in der Datei targets.txt aufgeführten IP-Adressen auf einmal zu scannen. Die -iL-Option teilt Nmap mit, die Ziele aus einer Datei zu lesen.

nmap -iL targets.txt > multiple_targets_scan.txt

Hier wird der nmap-Befehl verwendet, um den Netzwerkscan durchzuführen. Die -iL-Option gibt die Datei an, die die Ziele enthält. Der >-Operator leitet die Ausgabe des Scans in eine Datei namens multiple_targets_scan.txt um.

Schauen wir uns die Ergebnisse des Scans an:

cat multiple_targets_scan.txt

Nach Ausführung dieses Befehls sollten Sie die Scanergebnisse für alle drei IP-Adressen sehen. Beachten Sie, dass 127.0.0.1 normalerweise offene Ports anzeigen wird, da es die localhost-Adresse ist und möglicherweise einige Dienste darauf laufen. Allerdings antworten 127.0.0.2 und 127.0.0.3 möglicherweise nicht, da sie auf den meisten Systemen normalerweise nicht konfiguriert sind.

Eine andere Möglichkeit, mehrere Ziele anzugeben, besteht darin, die Leerzeichennotation oder die CIDR-Notation direkt im Nmap-Befehl zu verwenden.

nmap 127.0.0.1 127.0.0.2 > space_notation_scan.txt

In diesem Befehl verwenden wir Leerzeichen, um die IP-Adressen zu trennen. Dies teilt Nmap mit, sowohl 127.0.0.1 als auch 127.0.0.2 zu scannen. Die Ausgabe des Scans wird in eine Datei namens space_notation_scan.txt umgeleitet.

Schauen wir uns die Ergebnisse an:

cat space_notation_scan.txt

Wir können auch die CIDR-Notation verwenden, um einen Bereich von IP-Adressen zu scannen. Die CIDR (Classless Inter-Domain Routing)-Notation ist eine Möglichkeit, einen Bereich von IP-Adressen in kompakter Form darzustellen.

nmap 127.0.0.0/30 > cidr_notation_scan.txt

Die Angabe 127.0.0.0/30 in CIDR-Notation repräsentiert einen Bereich von IP-Adressen von 127.0.0.0 bis 127.0.0.3, was insgesamt 4 Adressen sind. Die Ausgabe dieses Scans wird in eine Datei namens cidr_notation_scan.txt umgeleitet.

Schauen wir uns die Ergebnisse an:

cat cidr_notation_scan.txt

Schließlich werden wir untersuchen, wie man bestimmte Ziele von einem Scan ausschließen kann. Dies ist nützlich, wenn Sie ein Netzwerk scannen möchten, aber bestimmte Hosts nicht einschließen möchten.

nmap 127.0.0.0/30 --exclude 127.0.0.3 > exclude_scan.txt

In diesem Befehl verwenden wir die --exclude-Option, um Nmap anzuweisen, die IP-Adresse 127.0.0.3 beim Scannen des Bereichs 127.0.0.0/30 zu überspringen. Die Ausgabe des Scans wird in eine Datei namens exclude_scan.txt umgeleitet.

Schauen wir uns die Ergebnisse an:

cat exclude_scan.txt

Sie sollten Scanergebnisse für 127.0.0.0, 127.0.0.1 und 127.0.0.2 sehen, aber nicht für 127.0.0.3.

Diese fortgeschrittenen Techniken zur Zielangabe ermöglichen es Ihnen, präzise zu steuern, welche Hosts Nmap scannt, wodurch Ihre Netzwerkrecherche effizienter und zielgerichteter wird.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Nmap für die Netzwerkrecherche nutzen können, wobei der Schwerpunkt auf Techniken zur Zielangabe lag. Zunächst haben Sie Nmap installiert und seine grundlegenden Funktionen erkundet, indem Sie einfache Scans auf Ihrem lokalen Rechner durchgeführt haben. Dann haben Sie einen lokalen HTTP-Server eingerichtet und Nmap verwendet, um ihn durch das Scannen bestimmter Ports zu finden.

Diese Fähigkeiten sind für Netzwerkadministratoren und Sicherheitsexperten unerlässlich, um Netzwerkgeräte zu entdecken und zu bewerten. Das Beherrschen der Zielangabe in Nmap ermöglicht es Ihnen, Netzwerke jeder Größe und Komplexität effizient zu scannen und dabei auf die für Ihre Aufgabe relevanten Hosts und Dienste abzuzielen. Verwenden Sie Nmap stets verantwortungsvoll und nur auf autorisierten Netzwerken, um rechtliche und ethische Probleme zu vermeiden.