Nmap Anleitung: Netzwerke scannen und Schwachstellen erkennen
Nmap (Network Mapper) ist ein Open-Source-Tool zur Netzwerkerkundung und Sicherheitsüberprüfung. Es hilft Administratoren und Entwicklern dabei, Hosts zu identifizieren, laufende Dienste zu erkennen und potenzielle Schwachstellen innerhalb eines Netzwerks aufzudecken. Nmap zeigt an, welche Ports aktiv sind, welche Dienste darauf lauschen und welches Betriebssystem auf dem Zielsystem ausgeführt wird.
In dieser Anleitung werden die wichtigsten Aufgaben mit Nmap vorgestellt – darunter das Scannen von Hosts auf offene Ports, das Ermitteln der auf diesen Ports laufenden Dienste sowie die Nutzung der Nmap Scripting Engine (NSE) zur Schwachstellenanalyse. Außerdem erfahren Sie, wie Sie die Scan-Ergebnisse interpretieren und grundlegende Sicherheitsmaßnahmen umsetzen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass:
- Sie Zugriff auf ein Linux-basiertes System haben.
- Ihr Benutzerkonto über
sudo-Rechte verfügt, aber kein Root-Konto ist.
Der Befehl nmap
In diesem Abschnitt wird die Syntax des Befehls nmap erläutert und seine Hauptbestandteile erklärt.
Befehls-Syntax
nmap [SCAN TYPES...] [OPTIONS] TARGET
Erklärung:
- [SCAN TYPES…]: Bestimmt, wie Nmap den Zielhost untersucht und offene Ports erkennt.
- [OPTIONS]: Zusätzliche Parameter und Flags, die das Scanverhalten und die Ausgabe steuern.
- TARGET: Gibt das Zielsystem oder Netzwerk an – IP-Adresse, Hostname, IP-Bereich oder Subnetz.
Häufige Scan-Typen
Nachfolgend sind die gängigsten Scan-Typen aufgeführt. Einige erfordern erhöhte Rechte.
| Option | Beschreibung |
|---|---|
| -sS | TCP SYN Scan (Standard, benötigt Root-Rechte) |
| -sT | TCP Connect Scan |
| -sU | UDP Scan |
| -sn | Nur Host-Erkennung, kein Port-Scan |
| -sV | Erkennung der Dienstversion |
| -O | Erkennung des Betriebssystems |
| -A | Aggressiver Scan, aktiviert -sV, -O und -sC |
Häufige Befehlsoptionen
| Option | Flag | Beschreibung |
|---|---|---|
| Portspezifikation | -p | Bestimmt, welche Ports gescannt werden, z. B. -p 22,80,443. |
| Schneller Scan | -F | Scant nur die 100 häufigsten Ports. |
| Detaillierte Ausgabe | -v | Zeigt detaillierte Informationen während des Scans an. |
Durchführen eines Basis-Portscans
Mit Nmap lassen sich offene TCP-Ports identifizieren, die potenzielle Einstiegspunkte darstellen könnten. In diesem Beispiel wird localhost als Ziel verwendet. Ersetzen Sie es durch eine IP-Adresse oder einen Hostnamen, den Sie scannen dürfen.
Standardmäßig überprüft Nmap die 1.000 häufigsten Ports. Führen Sie den folgenden Befehl aus, um einen Basis-Scan zu starten:
$ sudo nmap localhost
Beispielausgabe
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-03 21:49 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
3001/tcp open nessus
5432/tcp open postgresql
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Ergebnisse interpretieren
- Not shown: 997 closed tcp ports – Diese Ports sind geschlossen oder gefiltert.
- PORT – Zeigt die Portnummer und das Protokoll an.
- STATE – Gibt an, ob der Port offen, geschlossen oder gefiltert ist.
- SERVICE – Zeigt den erkannten Dienst, der auf dem Port läuft.
In diesem Beispiel sind die offenen Ports 22 (SSH), 3001 (Nessus) und 5432 (PostgreSQL).
Dienste und Betriebssysteme erkennen
Mit Nmap lassen sich auch die Versionen der auf offenen Ports laufenden Dienste feststellen – hilfreich zur Erkennung veralteter oder unsicherer Software.
Führen Sie folgenden Befehl aus, um die Versionserkennung zu starten:
$ sudo nmap -sV localhost
Beispielausgabe
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-03 21:56 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.13 (Ubuntu Linux; protocol 2.0)
3001/tcp open nessus?
5432/tcp open postgresql PostgreSQL DB 9.6.0 or later
Die Ausgabe zeigt erkannte Versionen wie OpenSSH 9.6p1 und PostgreSQL 9.6.0 oder neuer. Das Fragezeichen bei Nessus bedeutet, dass die Erkennung unsicher ist und manuell überprüft werden sollte.
Schwachstellenscans mit der Nmap Scripting Engine (NSE)
Die Nmap Scripting Engine (NSE) erweitert Nmap um automatisierte Aufgaben wie Schwachstellen-Scans. Die Kategorie vuln enthält Skripte, die bekannte Sicherheitslücken prüfen. Im folgenden Beispiel wird ein Test mit dem FTP-Dienst vsftpd durchgeführt, um eine absichtliche Schwachstelle zu erkennen.
Installation von vsftpd
Auf Ubuntu- oder Debian-Systemen:
$ sudo apt install -y vsftpd
Auf Rocky Linux oder RHEL-Systemen:
$ sudo dnf install -y vsftpd
Schwachstelle erzeugen (Anonymer Login)
Um eine Sicherheitslücke zu simulieren, aktivieren Sie den anonymen Zugriff in der vsftpd-Konfiguration.
Datei bearbeiten:
$ sudo nano /etc/vsftpd.conf
Suchen Sie die Zeile anonymous_enable=NO und ändern Sie den Wert auf YES. Speichern Sie die Datei und starten Sie den Dienst neu:
$ sudo systemctl restart vsftpd
Schwachstellenscan ausführen
Führen Sie das Skript ftp-anon aus, um zu prüfen, ob der FTP-Server anonyme Logins erlaubt:
$ sudo nmap -p 21 --script ftp-anon localhost
Beispielausgabe
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-22 11:04 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
21/tcp open ftp
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
Der Scan bestätigt die Schwachstelle: anonymer FTP-Zugang ist erlaubt (FTP code 230).
Behebung der Schwachstelle
Deaktivieren Sie den anonymen Login, um die Sicherheitslücke zu schließen.
Bearbeiten Sie erneut die Konfigurationsdatei:
$ sudo nano /etc/vsftpd.conf
Ändern Sie anonymous_enable=YES zurück auf NO und starten Sie den Dienst neu:
$ sudo systemctl restart vsftpd
Scannen Sie erneut, um sicherzustellen, dass die Schwachstelle behoben wurde:
$ sudo nmap -p 21 --script ftp-anon localhost
Ausgabe
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-22 11:19 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
21/tcp open ftp
Nmap done: 1 IP address (1 host up) scanned in 2.53 seconds
Fazit
Diese Anleitung hat gezeigt, wie Nmap eingesetzt wird, um Netzwerke zu scannen und Schwachstellen zu erkennen. Sie haben verschiedene Scan-Arten durchgeführt, Dienste und Versionen analysiert, den anonymen FTP-Zugang getestet und die Konfiguration abgesichert. Für weiterführende Informationen empfiehlt sich die offizielle Nmap-Dokumentation.


