Wie man mehrere IP-Adressen gleichzeitig mit Nmap in der Cybersicherheit scannt

NmapAdvanced
Jetzt üben

Einführung

Im Bereich der Cybersicherheit ist das Verständnis Ihrer Netzwerkinfrastruktur für die Aufrechterhaltung der Sicherheit unerlässlich. Nmap (Network Mapper) ist ein weit verbreitetes Open-Source-Tool, das Sicherheitsexperten die Möglichkeit gibt, Hosts und Dienste in Computernetzwerken zu entdecken. Dieses Tutorial führt Sie durch den Prozess der Verwendung von Nmap, um mehrere IP-Adressen gleichzeitig zu scannen, sodass Sie Ihr Netzwerk effizient kartieren und potenzielle Sicherheitsprobleme identifizieren können.

Am Ende dieses Labs werden Sie verstehen, wie man Nmap installiert, grundlegende Scans durchführt, mehrere IP-Adressen mit verschiedenen Techniken anvisiert und die Ergebnisse interpretiert. Diese Fähigkeiten sind ein grundlegender Bestandteil der Netzwerk-Reconnaissance in Cybersicherheitsbewertungen und sind sowohl für defensive als auch für offensive Sicherheitsoperationen wertvoll.

Nmap installieren und Ihren ersten Scan durchführen

In diesem ersten Schritt installieren wir Nmap auf unserem Ubuntu-System und führen einen grundlegenden Scan durch, um zu überprüfen, ob es korrekt funktioniert.

Nmap installieren

Nmap ist in den Ubuntu-Repositories verfügbar, was die Installation vereinfacht. Öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:

## Aktualisieren der Paketlisten
sudo apt update

## Nmap installieren
sudo apt install nmap -y

Dieser Befehl lädt Nmap zusammen mit allen erforderlichen Abhängigkeiten herunter und installiert es. Überprüfen wir, ob die Installation erfolgreich war, indem wir die Nmap-Version überprüfen:

nmap --version

Sie sollten eine Ausgabe ähnlich dieser sehen:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39
Compiled without: nmap-update npcap ipv6
Available nsock engines: epoll poll select

Grundlegende Syntax von Nmap verstehen

Die grundlegende Syntax für Nmap lautet:

nmap [scan type] [options] [target]

Wobei:

  • [scan type] den auszuführenden Scantyp angibt (z. B. TCP SYN-Scan)
  • [options] zusätzliche Parameter zur Anpassung des Scans sind
  • [target] der Host oder das Netzwerk ist, das gescannt werden soll

Ihr erster Scan: Scannen des lokalen Rechners

Beginnen wir mit einem einfachen Scan Ihres lokalen Rechners. Dies ist eine sichere Methode, um Nmap zu testen, ohne externe Netzwerke zu scannen:

nmap localhost

Dieser Befehl scannt die gängigsten 1000 TCP-Ports auf Ihrem lokalen Rechner. Sie sollten eine Ausgabe ähnlich dieser sehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

Die Ausgabe zeigt:

  • Die Scan-Startzeit
  • Das zu scannende Ziel
  • Host-Status (up oder down)
  • Offene Ports mit ihren Servicenamen
  • Scan-Statistiken

Beachten Sie, dass die genauen offenen Ports, die Sie sehen, je nach Systemkonfiguration variieren können.

Port-Zustände verstehen

Nmap kategorisiert Ports in verschiedene Zustände:

  • open: Eine Anwendung akzeptiert aktiv Verbindungen auf diesem Port
  • closed: Der Port ist zugänglich, aber keine Anwendung lauscht darauf
  • filtered: Nmap kann nicht feststellen, ob der Port geöffnet ist, da eine Firewall den Zugriff blockiert
  • unfiltered: Der Port ist zugänglich, aber Nmap kann nicht feststellen, ob er geöffnet oder geschlossen ist
  • open|filtered: Nmap kann nicht feststellen, ob der Port geöffnet oder gefiltert ist
  • closed|filtered: Nmap kann nicht feststellen, ob der Port geschlossen oder gefiltert ist

In Ihren Scan-Ergebnissen werden die meisten Ports wahrscheinlich als "closed" aufgeführt, mit einigen "open" Ports für Dienste, die auf Ihrem System ausgeführt werden.

Scannen mehrerer IP-Adressen mit verschiedenen Methoden

Nachdem wir Nmap installiert und unseren ersten Scan durchgeführt haben, wollen wir verschiedene Möglichkeiten erkunden, um mehrere IP-Adressen gleichzeitig zu scannen. Dies ist besonders nützlich für Netzwerkadministratoren und Sicherheitsexperten, die mehrere Systeme effizient bewerten müssen.

Methode 1: Verwenden von IP-Bereichen

Eine der einfachsten Möglichkeiten, mehrere IP-Adressen zu scannen, ist die Angabe eines IP-Bereichs. Erstellen wir ein kleines virtuelles Netzwerk, um sicher zu scannen.

Zuerst sehen wir uns unsere aktuellen Netzwerkschnittstellen an:

ip addr show

Nun scannen wir einen Bereich von IP-Adressen in unserem lokalen Netzwerk. Zu Demonstrationszwecken verwenden wir einen kleinen Bereich:

nmap 127.0.0.1-5

Dieser Befehl scannt 5 IP-Adressen: 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4 und 127.0.0.5. Sie sehen eine Ausgabe für jeden Host, der auf den Scan antwortet. Typischerweise antwortet nur 127.0.0.1 (localhost).

Methode 2: Verwenden der CIDR-Notation

Eine weitere gängige Methode zur Angabe mehrerer Ziele ist die Verwendung der CIDR-Notation (Classless Inter-Domain Routing), eine prägnante Möglichkeit, IP-Adressbereiche anzugeben.

Scannen wir den lokalen Loopback-Bereich:

nmap 127.0.0.0/24

Dieser Befehl scannt 256 IP-Adressen von 127.0.0.0 bis 127.0.0.255. Das /24 gibt an, dass die ersten 24 Bits der IP-Adresse fest sind, während die letzten 8 Bits variieren.

Um den Scan zu beschleunigen und sich nur auf das Auffinden aktiver Hosts ohne Port-Scanning zu konzentrieren, können wir die Option -sn verwenden:

nmap -sn 127.0.0.0/24

Dies führt einen Ping-Scan durch, der nur feststellt, ob Hosts online sind, ohne ihre Ports zu scannen. Sie sollten eine Ausgabe wie diese sehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 2.66 seconds

Methode 3: Verwenden einer Liste von IP-Adressen

Für bestimmte, nicht-sequentielle IP-Adressen können Sie eine Datei erstellen, die die Ziele enthält, und die Option -iL verwenden.

Erstellen wir eine Datei mit ein paar IP-Adressen:

echo "127.0.0.1
127.0.0.2
127.0.0.5" > targets.txt

Scannen Sie nun diese spezifischen Ziele:

nmap -iL targets.txt

Dieser Befehl liest die IP-Adressen aus der Datei targets.txt und scannt jede einzelne.

Methode 4: Kombinieren mehrerer Zielspezifikationen

Nmap ermöglicht es Ihnen, verschiedene Targeting-Methoden in einem einzigen Befehl zu kombinieren. Zum Beispiel:

nmap 127.0.0.1 127.0.0.5-10 127.0.0.0/29

Dieser Befehl scannt:

  • Die einzelne IP-Adresse 127.0.0.1
  • Den IP-Bereich von 127.0.0.5 bis 127.0.0.10
  • Den CIDR-Bereich 127.0.0.0/29 (der 127.0.0.0 bis 127.0.0.7 enthält)

Optimierung der Scangeschwindigkeit

Beim Scannen mehrerer Ziele kann sich die Scanzeit erheblich erhöhen. Nmap bietet Optionen zur Steuerung des Scan-Timings und zur Steigerung der Effizienz:

nmap -T4 127.0.0.0/24

Die Option -T4 legt eine "aggressive" Timing-Vorlage fest, die den Scan beschleunigt. Timing-Vorlagen reichen von 0 (paranoid) bis 5 (insane), wobei höhere Werte zu schnelleren, aber potenziell weniger zuverlässigen Scans führen. Für Routine-Scans bietet -T4 ein gutes Gleichgewicht zwischen Geschwindigkeit und Zuverlässigkeit.

Nmap-Ausgabe verstehen und Ergebnisse speichern

Beim Durchführen von Netzwerk-Scans ist es wichtig zu verstehen, wie man die Ergebnisse interpretiert und für weitere Analysen oder Berichte speichert. In diesem Schritt werden wir verschiedene Nmap-Ausgabeformate untersuchen und wie man Scan-Ergebnisse speichert.

Detaillierte Nmap-Ausgabe verstehen

Führen wir einen detaillierteren Scan von localhost durch, um die Ausgabe von Nmap besser zu verstehen:

nmap -v localhost

Die Option -v aktiviert die ausführliche Ausgabe und liefert mehr Informationen über den Scan. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:30 UTC
Initiating Ping Scan at 10:30
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 10:30, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 10:30
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Completed Connect Scan at 10:30, 0.02s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Diese Ausgabe liefert:

  • Den Scan-Fortschritt
  • Jeden entdeckten offenen Port in Echtzeit
  • Den endgültigen Scan-Bericht mit offenen Ports und Diensten
  • Timing-Statistiken

Speichern von Scan-Ergebnissen in Dateien

Nmap kann Ergebnisse in verschiedenen Formaten speichern, was für die Dokumentation, weitere Analysen oder den Austausch mit Teammitgliedern nützlich ist.

Normales Ausgabeformat

Um die Scan-Ergebnisse im Standardausgabeformat von Nmap zu speichern:

nmap localhost -oN normal_output.txt

Dies erstellt eine Datei namens normal_output.txt mit den Scan-Ergebnissen im gleichen Format wie im Terminal angezeigt.

XML-Ausgabeformat

Die XML-Ausgabe ist nützlich für die programmgesteuerte Verarbeitung von Scan-Ergebnissen:

nmap localhost -oX xml_output.xml

Dies erstellt eine XML-Datei, die von anderen Tools oder Skripten geparst werden kann.

Grepable-Ausgabeformat

Für einfaches Parsen mit Befehlszeilen-Tools wie grep:

nmap localhost -oG grep_output.txt

Dieses Format ist besonders nützlich, um mit Tools wie grep schnell spezifische Informationen zu extrahieren.

Alle Formate gleichzeitig

Um die Ausgabe in allen drei Formaten gleichzeitig zu speichern:

nmap localhost -oA scan_results

Dies erstellt drei Dateien: scan_results.nmap, scan_results.xml und scan_results.gnmap.

Anzeigen der gespeicherten Ergebnisse

Untersuchen wir eine der gespeicherten Ausgabedateien:

cat normal_output.txt

Sie sollten die Nmap-Scan-Ergebnisse sehen, die zuvor in dieser Datei gespeichert wurden.

Kombinieren von Ausgabeoptionen mit mehreren IP-Scans

Kombinieren wir nun, was wir gelernt haben, indem wir mehrere IPs scannen und die Ergebnisse speichern:

nmap 127.0.0.1-5 -oN multiple_hosts.txt

Dieser Befehl scannt 5 IP-Adressen und speichert die Ergebnisse in multiple_hosts.txt.

Untersuchen wir diese Ergebnisse:

cat multiple_hosts.txt

Sie sehen die Scan-Ergebnisse für alle angegebenen IP-Adressen. Typischerweise wird in diesem Beispiel nur 127.0.0.1 als "up" mit offenen Ports angezeigt.

Hinzufügen der Service-Versionserkennung

Um weitere Informationen über die Dienste zu sammeln, die auf offenen Ports ausgeführt werden, können wir die Option -sV verwenden:

nmap -sV localhost -oN service_scan.txt

Dies führt eine Service-Versionserkennung durch und speichert die Ergebnisse in service_scan.txt.

Sehen wir uns an, welche zusätzlichen Informationen dies liefert:

cat service_scan.txt

Die Ausgabe sollte nun Versionsinformationen für erkannte Dienste enthalten, was für Sicherheitsbewertungen wertvoll ist, da bestimmte Versionen bekannte Schwachstellen aufweisen können.

Erweiterte Scan-Optionen für die Netzwerkbewertung

Nachdem wir die Grundlagen von Nmap und das Scannen mehrerer Ziele verstanden haben, wollen wir einige erweiterte Scan-Optionen untersuchen, die besonders nützlich für Cybersicherheitsbewertungen sind.

Portauswahl und Scan-Typen

Standardmäßig scannt Nmap die 1000 gebräuchlichsten TCP-Ports. Sie können jedoch anpassen, welche Ports gescannt werden sollen.

Scannen bestimmter Ports

Um bestimmte Ports zu scannen:

nmap -p 22,80,443 localhost

Dieser Befehl scannt nur die Ports 22, 80 und 443.

Um einen Bereich von Ports zu scannen:

nmap -p 20-25 localhost

Dies scannt die Ports 20 bis 25.

Um alle 65535 TCP-Ports zu scannen:

nmap -p- localhost

Beachten Sie, dass das Scannen aller Ports deutlich länger dauert.

Verwenden verschiedener Scan-Typen

Nmap unterstützt verschiedene Scantechniken. Der Standard ist ein TCP SYN-Scan (-sS), dies erfordert jedoch Root-Rechte. Ohne Root-Rechte verwendet Nmap einen TCP Connect-Scan (-sT).

Versuchen wir explizit einen TCP Connect-Scan:

nmap -sT localhost

Für einen heimlicheren Scan (erfordert Root-Rechte):

sudo nmap -sS localhost

Um UDP-Ports zu scannen (was oft übersehen wird, aber für die Sicherheit wichtig ist):

sudo nmap -sU -p 53,161,162 localhost

Dies scannt die UDP-Ports 53 (DNS), 161 und 162 (SNMP).

Betriebssystemerkennung und Versions-Scanning

Für umfassendere Informationen kombinieren wir die Betriebssystemerkennung und das Service-Versions-Scanning:

sudo nmap -sS -O -sV localhost

Die Option -O versucht, das Betriebssystem des Ziels zu identifizieren. Dies liefert wertvolle Informationen für Sicherheitsbewertungen, da verschiedene Betriebssysteme unterschiedliche Schwachstellen aufweisen können.

Lassen Sie uns aufschlüsseln, was jede Option tut:

  • -sS: Führt einen SYN-Scan durch (erfordert Root)
  • -O: Versucht, das Betriebssystem des Ziels zu identifizieren
  • -sV: Untersucht offene Ports, um Service-/Versionsinformationen zu ermitteln

Die Ausgabe enthält detaillierte Informationen über das Betriebssystem und die Service-Versionen, die auf dem Ziel ausgeführt werden.

Verwenden von Nmap-Skripten

Nmap enthält eine leistungsstarke Nmap Scripting Engine (NSE), die eine Vielzahl von Aufgaben ausführen kann, von der erweiterten Service-Erkennung bis zum Schwachstellen-Scanning.

Führen wir ein Basisskript aus, das auf häufig exponierte Dienste prüft:

nmap --script=default localhost

Für einen stärker sicherheitsorientierten Scan:

nmap --script=vuln localhost

Dies führt Schwachstellen-Erkennungsskripte gegen das Ziel aus, die häufige Sicherheitsprobleme identifizieren können.

Timing- und Leistungsoptionen

Beim Scannen mehrerer Ziele wird die Optimierung der Scan-Leistung entscheidend. Wir haben bereits die Option -T gesehen, aber es gibt detailliertere Steuerungsmöglichkeiten.

nmap -T4 --max-rtt-timeout 200ms --min-rate 1000 127.0.0.1/24

Dieser Befehl:

  • Verwendet die "aggressive" Timing-Vorlage (-T4)
  • Setzt das maximale Round-Trip-Timeout auf 200 ms
  • Setzt eine Mindestrate von 1000 Paketen pro Sekunde

Diese Einstellungen können Scans mehrerer Hosts erheblich beschleunigen, obwohl sie in überlasteten Netzwerken oder Netzwerken mit hoher Latenz möglicherweise weniger zuverlässig sind.

Kombinieren von allem für einen umfassenden Scan

Kombinieren wir mehrere Techniken für einen umfassenden Scan unseres lokalen Netzwerks:

sudo nmap -sS -sV -O -p 1-1000 --script=default -T4 -oA comprehensive_scan 127.0.0.1

Dieser Befehl führt aus:

  • Einen SYN-Scan
  • Service-Versions-Erkennung
  • Betriebssystemerkennung
  • Scannt die Ports 1-1000
  • Führt Standardskripte aus
  • Verwendet aggressives Timing
  • Speichert Ergebnisse in allen Formaten mit dem Präfix "comprehensive_scan"

Untersuchen wir die Ergebnisse:

cat comprehensive_scan.nmap

Dieser umfassende Scan liefert eine Fülle von Informationen über das Zielsystem, einschließlich offener Ports, laufender Dienste, Service-Versionen und potenzieller Schwachstellen.

Ethische Erwägungen und Best Practices

Bevor wir abschließen, ist es wichtig zu betonen, dass Nmap nur in Netzwerken verwendet werden sollte, in denen Sie die ausdrückliche Erlaubnis zum Scannen haben. Unbefugtes Scannen kann illegal sein und als feindselige Handlung wahrgenommen werden.

Einige Best Practices, die befolgt werden sollten:

  1. Holen Sie immer die Erlaubnis ein, bevor Sie ein Netzwerk oder System scannen
  2. Verwenden Sie nach Möglichkeit weniger aggressive Scans, um die Auswirkungen auf das Netzwerk zu minimieren
  3. Seien Sie sich der Möglichkeit von False Positives und False Negatives bewusst
  4. Dokumentieren Sie Ihre Scan-Aktivitäten zur Referenz und Rechenschaftspflicht
  5. Respektieren Sie die Privatsphäre und Vertraulichkeit der entdeckten Informationen

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man Nmap verwendet, um mehrere IP-Adressen gleichzeitig effizient zu scannen, eine entscheidende Fähigkeit für Netzwerkadministratoren und Cybersicherheitsexperten. Wir haben Folgendes behandelt:

  1. Installieren von Nmap und Durchführen von Basisscans, um seine Kernfunktionalität zu verstehen
  2. Verschiedene Methoden zur Angabe mehrerer Ziele, einschließlich IP-Bereiche, CIDR-Notation und Ziellisten
  3. Wie man Scan-Ergebnisse in verschiedenen Formaten für weitere Analysen interpretiert und speichert
  4. Erweiterte Scan-Techniken, die tiefere Einblicke in Netzwerkdienste und potenzielle Schwachstellen liefern

Diese Fähigkeiten bilden eine Grundlage für Netzwerk-Reconnaissance und Sicherheitsbewertung. Durch das effiziente Scannen mehrerer IP-Adressen können Sie schnell ein Netzwerk kartieren, laufende Dienste identifizieren und potenzielle Sicherheitslücken aufdecken.

Um Ihre Nmap-Kenntnisse weiterzuentwickeln, sollten Sie Folgendes in Betracht ziehen:

  • Spezialisiertere NSE-Skripte (Nmap Scripting Engine) für fokussierte Sicherheitsbewertungen
  • Integration von Nmap mit anderen Sicherheitstools
  • Automatisierung von Scans mit Skripten für die regelmäßige Sicherheitsüberwachung
  • Entwicklung benutzerdefinierter NSE-Skripte für spezifische Scan-Anforderungen

Denken Sie daran, dass Netzwerk-Scanning-Tools wie Nmap immer verantwortungsvoll und ethisch verwendet werden sollten, mit der entsprechenden Berechtigung zum Scannen der Zielsysteme.