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 Portclosed: Der Port ist zugänglich, aber keine Anwendung lauscht darauffiltered: Nmap kann nicht feststellen, ob der Port geöffnet ist, da eine Firewall den Zugriff blockiertunfiltered: Der Port ist zugänglich, aber Nmap kann nicht feststellen, ob er geöffnet oder geschlossen istopen|filtered: Nmap kann nicht feststellen, ob der Port geöffnet oder gefiltert istclosed|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:
- Holen Sie immer die Erlaubnis ein, bevor Sie ein Netzwerk oder System scannen
- Verwenden Sie nach Möglichkeit weniger aggressive Scans, um die Auswirkungen auf das Netzwerk zu minimieren
- Seien Sie sich der Möglichkeit von False Positives und False Negatives bewusst
- Dokumentieren Sie Ihre Scan-Aktivitäten zur Referenz und Rechenschaftspflicht
- 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:
- Installieren von Nmap und Durchführen von Basisscans, um seine Kernfunktionalität zu verstehen
- Verschiedene Methoden zur Angabe mehrerer Ziele, einschließlich IP-Bereiche, CIDR-Notation und Ziellisten
- Wie man Scan-Ergebnisse in verschiedenen Formaten für weitere Analysen interpretiert und speichert
- 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.



