Erweiterte Host-Entdeckung mit Nmap durchführen

NmapNmapBeginner
Jetzt üben

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

Einführung

In diesem Labor lernen Sie, die erweiterte Host-Erkennung mit Nmap durchzuführen. Die Host-Erkennung ist der Prozess der Identifizierung aktiver Geräte in einem Netzwerk. Dies ist ein entscheidender erster Schritt bei der Netzwerk-Erkundung, der Ihnen hilft, die Netzwerkstruktur zu verstehen und potenzielle Ziele für weitere Analysen zu identifizieren.

Sie werden verschiedene Nmap-Techniken erkunden, darunter:

  • TCP-Ping-Scan (-PS): Senden von TCP SYN-Paketen an bestimmte Ports, um festzustellen, ob ein Host online ist und ob diese Ports geöffnet sind.
  • UDP-Ping-Scan (-PU): Senden von UDP-Paketen an bestimmte Ports, häufig verwendet, wenn TCP-Pings blockiert sind, um den Host-Status basierend auf Antworten oder deren Fehlen abzuleiten.
  • Ping-Scan überspringen (-Pn): Umgehen der standardmäßigen Host-Erkennungsphase von Nmap, wodurch Nmap annimmt, dass alle Zielhosts online sind, und direkt zum Portscan übergeht.
  • Kombination von Techniken: Nutzung mehrerer Erkennungsmethoden, um die Zuverlässigkeit der Host-Erkennung zu erhöhen, insbesondere in komplexen Netzwerkumgebungen mit Firewalls.
  • Speichern und Analysieren der Ergebnisse: Speichern der Nmap-Ausgabe in einer Datei zur späteren Überprüfung und Verwendung einfacher Linux-Befehle, um wertvolle Informationen aus den Scan-Ergebnissen zu extrahieren.

Während des gesamten Labors führen Sie Befehle wie nmap -PS2222,8080 127.0.0.1 für TCP-Ping-Scans, nmap -PU5353 127.0.0.1 für UDP-Ping und nmap -Pn -oN hosts.txt 127.0.0.1 zum Speichern der Ergebnisse aus. Diese praktischen Übungen werden Ihr Verständnis der Host-Erkennungsfunktionen von Nmap verbessern und Sie auf reale Netzwerk-Erkundungsaufgaben vorbereiten.

TCP-Ping auf bestimmten Ports mit nmap -PS

In diesem Schritt lernen Sie, wie Sie mit Nmap einen TCP-Ping-Scan auf bestimmten Ports eines Zielhosts durchführen. Diese Technik ist nützlich, um festzustellen, ob ein Host online ist und ob bestimmte Dienste auf diesen Ports laufen, insbesondere wenn traditionelle ICMP-Pings durch Firewalls blockiert werden.

Verständnis von TCP-Ping:
Im Gegensatz zu einem traditionellen ICMP-Ping sendet ein TCP-Ping ein TCP SYN-Paket an einen bestimmten Port auf dem Zielhost.

  • Wenn der Port offen ist, antwortet der Zielhost typischerweise mit einem SYN/ACK-Paket.
  • Wenn der Port geschlossen ist, antwortet der Zielhost in der Regel mit einem RST-Paket.
  • Wenn der Port gefiltert ist (z. B. durch eine Firewall), gibt es möglicherweise keine Antwort.

Nmap verwendet diese Antworten (oder deren Fehlen), um festzustellen, ob ein Host online ist und der Zustand der angegebenen Ports. Die Option -PS in Nmap wird verwendet, um einen TCP SYN Ping-Scan durchzuführen. Sie können einen oder mehrere Ports zur Scannung mit einer kommagetrennten Liste angeben.

Für dieses Labor hat das Einrichtungsskript mehrere Dienste auf Ihrem lokalen Rechner (127.0.0.1) konfiguriert. Wir werden den SSH-Dienst auf Port 2222 und den Nginx-Webserver auf Port 8080 ansprechen.

Öffnen Sie Ihr Terminal in der LabEx-VM. Ihr Standardverzeichnis ist ~/project. Führen Sie den folgenden Befehl aus:

nmap -PS2222,8080 127.0.0.1

Dieser Befehl weist Nmap an, TCP SYN-Pakete an die Ports 2222 und 8080 des Hosts 127.0.0.1 zu senden.

Sie sollten eine Ausgabe ähnlich der folgenden erhalten, die darauf hinweist, dass der Host aktiv ist und die angegebenen Ports geöffnet sind:

Starting Nmap 7.80 ( https://nmap.org ) at YYYY-MM-DD HH:MM CST
Nmap-Scan-Bericht für localhost (127.0.0.1)
Host ist aktiv (0.000085s Latenz).
Nicht angezeigt: 995 geschlossene Ports
PORT     STATUS SERVICE
22/tcp   offen  ssh
2121/tcp offen  ccproxy-ftp
2222/tcp offen  EtherNetIP-1
3001/tcp offen  nessus
8080/tcp offen  http-proxy

Nmap beendet: 1 IP-Adresse (1 Host aktiv) gescannt in 0.05 Sekunden

In diesem Beispiel meldet Nmap, dass der Host 127.0.0.1 aktiv ist und die Ports 2222 (SSH) und 8080 (HTTP-Proxy) geöffnet sind. Wenn ein Port geschlossen wäre, würde die Ausgabe "geschlossen" anstelle von "offen" anzeigen. Wenn der Host offline oder nicht erreichbar wäre, würde Nmap "Host ist offline" melden.

UDP-Ping mit nmap -PU durchführen

In diesem Schritt lernen Sie, wie Sie mit Nmap einen UDP-Ping-Scan auf einem bestimmten Port eines Zielhosts durchführen. Diese Technik ist besonders nützlich für die Host-Erkennung, wenn TCP-Pings von Firewalls blockiert werden oder wenn Sie vermuten, dass ein Host möglicherweise nur UDP-Dienste ausführt.

Verständnis von UDP-Ping:
Im Gegensatz zum TCP-Ping, der eine SYN/ACK- oder RST-Antwort erwartet, sendet ein UDP-Ping ein UDP-Paket an einen bestimmten Port.

  • Wenn der Port offen ist, antwortet der Zielhost möglicherweise gar nicht (da viele UDP-Dienste keine Antworten senden, es sei denn, eine spezifische Anfrage wird gestellt).
  • Wenn der Port geschlossen ist, antwortet der Zielhost typischerweise mit einer ICMP-Fehlermeldung "Port nicht erreichbar".
  • Wenn der Port gefiltert ist, gibt es keine Antwort.

Nmap verwendet das Vorhandensein oder Fehlen einer Antwort (oder die Art der Antwort) um festzustellen, ob ein Host online ist. Die Option -PU in Nmap wird verwendet, um einen UDP-Ping-Scan durchzuführen. Sie müssen den zu scannenden Port angeben. In diesem Labor werden wir den DNS-Dienst auf Port 5353 auf Ihrem lokalen Rechner (127.0.0.1) ansprechen.

Wichtiger Hinweis: UDP-Ping-Scans benötigen Root-Rechte, um Rohdaten der Netzwerkantworten zu lesen. Sie müssen sudo mit dem nmap-Befehl verwenden.

Öffnen Sie Ihr Terminal in der LabEx-VM. Ihr Standardverzeichnis ist ~/project. Führen Sie den folgenden Befehl aus:

sudo nmap -PU5353 127.0.0.1

Dieser Befehl weist Nmap an, ein UDP-Paket an Port 5353 des Hosts 127.0.0.1 zu senden.

Sie sollten eine Ausgabe ähnlich der folgenden erhalten:

Starting Nmap 7.80 ( https://nmap.org ) at YYYY-MM-DD HH:MM CST
Nmap-Scan-Bericht für localhost (127.0.0.1)
Host ist aktiv (0.0000040s Latenz).
Nicht angezeigt: 995 geschlossene Ports
PORT     STATUS SERVICE
22/tcp   offen  ssh
2121/tcp offen  ccproxy-ftp
2222/tcp offen  EtherNetIP-1
3001/tcp offen  nessus
8080/tcp offen  http-proxy

Nmap beendet: 1 IP-Adresse (1 Host aktiv) gescannt in 0.09 Sekunden

In diesem Beispiel meldet Nmap, dass der Host 127.0.0.1 aktiv ist. Beachten Sie, dass Nmap nach der Feststellung, dass der Host aktiv ist, seinen Standard-Portscan durchführt, weshalb die TCP-Ports in der Ausgabe aufgeführt sind. Der UDP-Ping war erfolgreich darin, festzustellen, dass der Host online ist.

Ping überspringen mit nmap -Pn

In diesem Schritt lernen Sie, wie Sie die Option -Pn in Nmap verwenden, um den Host-Entdeckungsping zu überspringen. Dies ist besonders nützlich, wenn Sie einen Host scannen möchten, ohne vorher zu prüfen, ob er online ist. Dies kann hilfreich sein, wenn herkömmliche Ping-Methoden (wie ICMP oder sogar TCP/UDP-Pings) durch eine Firewall blockiert werden oder wenn Sie einfach Zeit sparen möchten, indem Sie davon ausgehen, dass der Host aktiv ist.

Verständnis von -Pn:
Normalerweise führt Nmap vor dem Portscan eine Host-Entdeckungsphase durch. Dies beinhaltet das Senden verschiedener Arten von Sondierungen (ICMP-Echo-Anforderungen, TCP-SYN-Pakete, UDP-Pakete usw.), um festzustellen, ob der Zielhost online ist. Wenn Nmap feststellt, dass der Host offline ist, überspringt es die Portscan-Phase für diesen Host.

Die Option -Pn teilt Nmap mit, diese Host-Entdeckungsphase vollständig zu überspringen und alle Zielhosts als online zu behandeln. Dies bedeutet, dass Nmap direkt mit der Portscan-Phase fortfährt, unabhängig davon, ob der Host auf Ping-Sondierungen antwortet.

Lassen Sie uns ein Beispiel ausprobieren. Wir verwenden Nmap mit der Option -Pn, um die lokale Adresse 127.0.0.1 zu scannen.

Öffnen Sie Ihr Terminal in der LabEx-VM. Ihr Standardverzeichnis ist ~/project. Führen Sie den folgenden Befehl aus:

nmap -Pn 127.0.0.1

Dieser Befehl teilt Nmap mit, den Host-Entdeckungsping zu überspringen und die Ports von 127.0.0.1 zu scannen.

Sie sollten eine Ausgabe ähnlich der folgenden erhalten, die verschiedene offene Ports auf Ihrem lokalen Rechner anzeigt, einschließlich derer, die von der Laboumgebung eingerichtet wurden:

Starting Nmap 7.80 ( https://nmap.org ) at YYYY-MM-DD HH:MM CST
Nmap-Scan-Bericht für localhost (127.0.0.1)
Host ist aktiv (0.000098s Latenz).
Nicht angezeigt: 995 geschlossene 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 beendet: 1 IP-Adresse (1 Host aktiv) gescannt in 0.05 Sekunden

In diesem Beispiel meldet Nmap, dass der Host 127.0.0.1 aktiv ist und die offenen Ports anzeigt. Selbst wenn ICMP-Ping oder andere Host-Entdeckungsmethoden auf dem System blockiert wären, würde Nmap aufgrund der Option -Pn dennoch versuchen, die Ports zu scannen.

Es ist wichtig zu beachten, dass die Verwendung der Option -Pn zu längeren Scanzeiten führen kann, wenn Sie viele Hosts ansprechen, da Nmap versuchen wird, Ports auf jeder angegebenen IP-Adresse zu scannen, auch wenn viele von ihnen tatsächlich offline sind.

Kombinierte Techniken zur Host-Erkennung

In diesem Schritt lernen Sie, wie Sie TCP- und UDP-Ping-Techniken in Nmap kombinieren, um aktive Hosts zu entdecken. Die Kombination von Techniken kann die Zuverlässigkeit der Host-Erkennung deutlich erhöhen, insbesondere bei Firewalls oder anderen Netzwerk-Sicherheitsmaßnahmen, die möglicherweise eine Art von Sondierung blockieren, aber eine andere nicht.

Wie Sie in vorherigen Schritten gelernt haben:

  • -PS wird für TCP SYN-Pings verwendet.
  • -PU wird für UDP-Pings verwendet (erfordert Root-Rechte).

Durch die Kombination dieser Optionen sendet Nmap sowohl TCP SYN-Pakete an einen bestimmten TCP-Port als auch UDP-Pakete an einen bestimmten UDP-Port. Wenn entweder dieser Sondierungen eine Antwort erhält, betrachtet Nmap den Host als aktiv. Dies bietet eine robustere Methode zur Erkennung aktiver Hosts.

In diesem Beispiel verwenden wir Nmap, um ein TCP SYN-Paket an Port 2222 (SSH) und ein UDP-Paket an Port 5353 (DNS) auf Ihrem lokalen Rechner (127.0.0.1) zu senden.

Öffnen Sie Ihr Terminal in der LabEx-VM. Ihr Standardverzeichnis ist ~/project. Führen Sie den folgenden Befehl aus:

sudo nmap -PS2222 -PU5353 127.0.0.1

Dieser Befehl teilt Nmap mit, die folgenden Aktionen auszuführen:

  • -PS2222: Senden eines TCP SYN-Pakets an Port 2222 des Zielhosts.
  • -PU5353: Senden eines UDP-Pakets an Port 5353 des Zielhosts.
  • 127.0.0.1: Scannen des lokalen Hosts.

Sie sollten eine Ausgabe ähnlich der folgenden erhalten:

Starting Nmap 7.80 ( https://nmap.org ) at YYYY-MM-DD HH:MM CST
Nmap-Scan-Bericht für localhost (127.0.0.1)
Host ist aktiv (0.0000040s Latenz).
Nicht angezeigt: 995 geschlossene 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 beendet: 1 IP-Adresse (1 Host aktiv) gescannt in 0.10 Sekunden

In diesem Beispiel meldet Nmap, dass der Host 127.0.0.1 aktiv ist. Nmap hat dies festgestellt, indem es eine Antwort auf entweder das an Port 2222 gesendete TCP SYN-Paket oder das an Port 5353 gesendete UDP-Paket erhalten hat. Nach der Bestätigung der Hostaktivität über die Ping-Sondierungen fährt Nmap mit seinem Standard-Portscan fort und zeigt die offenen TCP-Ports an.

Die Kombination solcher Techniken ist oft effektiver als die Verwendung einer einzelnen Methode, da die Wahrscheinlichkeit erhöht wird, Firewalls oder andere Sicherheitsmaßnahmen zu umgehen, die möglicherweise eine Art von Sondierung blockieren, was zu genaueren Ergebnissen bei der Host-Erkennung führt.

Speichern der Ergebnissse der Host-Entdeckung in einer Datei

In diesem Schritt lernen Sie, wie Sie die Ergebnisse von Nmap-Scans mit der Option -oN in einer Datei speichern. Das Speichern der Scan-Ergebnisse ist entscheidend, um Ihre Ergebnisse zu dokumentieren, später zu analysieren oder Informationen mit anderen zu teilen.

Die Option -oN teilt Nmap mit, die Scan-Ergebnisse im "normalen" Format in die angegebene Datei zu speichern. Das normale Format ist eine menschenlesbare Textdatei, die einfach zu betrachten und zu parsen ist.

In diesem Beispiel verwenden wir Nmap, um den Host 127.0.0.1 zu scannen, den Host-Entdeckungsping zu überspringen (-Pn) und die Ergebnisse in einer Datei namens hosts.txt in Ihrem Verzeichnis ~/project zu speichern.

Öffnen Sie Ihr Terminal in der LabEx-VM. Ihr Standardverzeichnis ist ~/project. Führen Sie den folgenden Befehl aus:

nmap -Pn -oN hosts.txt 127.0.0.1

Dieser Befehl teilt Nmap mit, die folgenden Aktionen auszuführen:

  • -Pn: Überspringen des Host-Entdeckungspings (Annahme, dass der Host aktiv ist).
  • -oN hosts.txt: Speichern der Scan-Ergebnisse im normalen Format in die Datei hosts.txt.
  • 127.0.0.1: Scannen des Hosts 127.0.0.1.

Nachdem der Scan abgeschlossen ist, können Sie den Inhalt der Datei hosts.txt mit dem Befehl cat anzeigen:

cat hosts.txt

Sie sollten eine Ausgabe ähnlich der folgenden erhalten, die die Nmap-Version, die Scanzeit, den Host-Status und die offenen Ports enthält:

## Nmap 7.80 Scan gestartet Di Jun  3 10:50:49 2025 als: nmap -Pn -oN hosts.txt 127.0.0.1
Nmap-Scan-Bericht für localhost (127.0.0.1)
Host ist aktiv (0.000089s Latenz).
Nicht angezeigt: 995 geschlossene 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 beendet am Di Jun  3 10:50:49 2025 -- 1 IP-Adresse (1 Host aktiv) gescannt in 0.05 Sekunden

Die Datei hosts.txt enthält nun die Nmap-Scan-Ergebnisse in einem menschenlesbaren Format. Sie können diese Datei zur Dokumentation, Berichterstellung oder für weitere Analysen mit grundlegenden Linux-Befehlen wie grep verwenden, um spezifische Informationen über entdeckte Hosts und Dienste zu extrahieren.

Zusammenfassung

In diesem Labor haben Sie gelernt, wie Sie mit Nmap erweiterte Host-Entdeckungen durchführen. Sie haben mit spezifischen Nmap-Optionen für die Host-Erkennung begonnen:

  • TCP-Ping-Scan (-PS): Sie haben nmap -PS2222,8080 127.0.0.1 verwendet, um aktive Hosts und offene TCP-Ports zu identifizieren.
  • UDP-Ping-Scan (-PU): Sie haben sudo nmap -PU5353 127.0.0.1 ausgeführt, um Hosts mithilfe von UDP-Sonden zu entdecken, was nützlich ist, wenn TCP eingeschränkt ist.
  • Ping-Scan überspringen (-Pn): Sie haben gelernt, Nmap zu zwingen, Hosts ohne vorherige Host-Erkennung zu scannen, indem Sie nmap -Pn 127.0.0.1 verwenden. Dies ist für Umgebungen mit Firewalls unerlässlich.
  • Kombination von Techniken: Sie haben TCP- und UDP-Ping-Scans mit sudo nmap -PS2222 -PU5353 127.0.0.1 kombiniert, um eine zuverlässigere Host-Erkennung zu erreichen.

Darüber hinaus haben Sie praktische Fähigkeiten im Umgang mit Nmap-Ausgaben erworben:

  • Ergebnisse speichern: Sie haben Ihre Scan-Ergebnisse in einer menschenlesbaren Datei mit nmap -Pn -oN hosts.txt 127.0.0.1 gespeichert.

Durch die Beherrschung dieser Nmap-Techniken sind Sie nun besser gerüstet, um effektive Netzwerk-Erkundungen durchzuführen, aktive Geräte zu identifizieren und wichtige Informationen für Sicherheitsbewertungen oder Netzwerkverwaltungsaufgaben zu sammeln. Die gespeicherten Ausgabedateien können mit Standard-Linux-Textverarbeitungstools für detaillierte Berichte und Dokumentation weiter analysiert werden.