Der Befehl nmap (Network Mapper) scannt Netzwerke und findet offene Ports, laufende Dienste und Betriebssysteme. Er gehört zu den wichtigsten Werkzeugen für Netzwerkanalyse und Sicherheitsaudits.

Wichtig: Scanne nur Systeme, für die du eine ausdrückliche Genehmigung hast. Das unerlaubte Scannen fremder Netzwerke ist in vielen Ländern illegal und kann rechtliche Konsequenzen haben.

Syntax des nmap-Befehls

Die grundlegende Syntax lautet:

nmap [OPTIONEN] ZIEL
  • OPTIONEN - Flags, die den Scan-Typ und das Verhalten steuern.
  • ZIEL - Eine IP-Adresse, ein Hostname oder ein Netzwerkbereich.

Installation

Auf den meisten Systemen ist nmap über die Paketverwaltung verfügbar.

Ubuntu und Debian:

sudo apt update && sudo apt install nmap

CentOS und Fedora:

sudo dnf install nmap

macOS (mit Homebrew):

brew install nmap

Einfacher Port-Scan

Der einfachste Aufruf scannt die 1000 häufigsten Ports eines Ziels:

nmap 192.168.1.100

Die Ausgabe zeigt offene Ports und die zugehörigen Dienste:

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
443/tcp  open  https

Scan-Typen

TCP SYN-Scan (Standard mit Root-Rechten)

Der SYN-Scan ist schnell und unauffällig. Er sendet nur SYN-Pakete und wartet auf Antworten, ohne die Verbindung vollständig aufzubauen:

sudo nmap -sS 192.168.1.100

TCP Connect-Scan

Ohne Root-Rechte führt nmap einen vollständigen TCP-Verbindungsaufbau durch:

nmap -sT 192.168.1.100

UDP-Scan

UDP-Dienste wie DNS oder DHCP erreichst du mit der Option -sU:

sudo nmap -sU 192.168.1.100

UDP-Scans dauern länger, da das Protokoll keine Verbindungsbestätigung kennt.

Ziele angeben

Einzelne Hosts

Scanne eine IP-Adresse oder einen Hostnamen:

nmap 192.168.1.100
nmap server.example.com

Netzwerkbereiche

Mit CIDR-Notation scannst du ganze Subnetze:

nmap 192.168.1.0/24

IP-Bereiche

Definiere Bereiche mit Bindestrich oder Komma:

nmap 192.168.1.1-50
nmap 192.168.1,2,3.100

Hosts ausschließen

Mit --exclude übergehst du bestimmte Adressen:

nmap 192.168.1.0/24 --exclude 192.168.1.1

Ports angeben

Bestimmte Ports scannen

Mit -p legst du fest, welche Ports geprüft werden:

nmap -p 22 192.168.1.100
nmap -p 80,443,8080 192.168.1.100
nmap -p 1-1000 192.168.1.100

Alle Ports scannen

Die Option -p- scannt alle 65535 Ports:

nmap -p- 192.168.1.100

Ports nach Namen

Du kannst Ports auch über den Dienstnamen angeben:

nmap -p ssh,http,https 192.168.1.100

Port-Zustände

Nmap unterscheidet verschiedene Port-Zustände:

  • open - Ein Dienst nimmt Verbindungen auf diesem Port entgegen.
  • closed - Der Port ist erreichbar, aber kein Dienst lauscht.
  • filtered - Eine Firewall blockiert die Verbindung; nmap kann den Status nicht bestimmen.

Host-Erkennung (Ping-Scan)

Mit -sn prüfst du, welche Hosts in einem Netzwerk erreichbar sind, ohne Ports zu scannen:

sudo nmap -sn 192.168.1.0/24

Das ist nützlich, um einen schnellen Überblick über aktive Geräte zu bekommen.

Dienst- und Versionserkennung

Dienste und Versionen erkennen

Die Option -sV ermittelt, welche Software auf offenen Ports läuft:

sudo nmap -sV 192.168.1.100

Beispielausgabe:

PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 8.9p1 Ubuntu
80/tcp  open  http    nginx 1.18.0
443/tcp open  https   nginx 1.18.0

Betriebssystem erkennen

Mit -O versucht nmap, das Betriebssystem des Ziels zu identifizieren:

sudo nmap -O 192.168.1.100

Alles auf einmal

Die Option -A kombiniert Betriebssystem-Erkennung, Versionserkennung, Script-Scanning und Traceroute:

sudo nmap -A 192.168.1.100

Scan-Geschwindigkeit

DNS-Auflösung deaktivieren

Mit -n überspringt nmap die DNS-Auflösung. Das beschleunigt Scans in großen Netzwerken:

sudo nmap -n 192.168.1.0/24

Timing-Vorlagen

Mit -T steuerst du die Geschwindigkeit von 0 (paranoid) bis 5 (aggressiv):

sudo nmap -T4 192.168.1.0/24

-T4 ist ein guter Kompromiss zwischen Geschwindigkeit und Zuverlässigkeit.

Ausgabe speichern

Normales Format

Mit -oN speicherst du die Ausgabe in lesbarem Format:

sudo nmap -sV 192.168.1.100 -oN scan-ergebnis.txt

XML-Format

Für die Weiterverarbeitung eignet sich das XML-Format:

sudo nmap -sV 192.168.1.100 -oX scan-ergebnis.xml

Grepbares Format

Die Option -oG erzeugt ein Format, das sich gut mit grep durchsuchen lässt:

sudo nmap -sV 192.168.1.100 -oG scan-ergebnis.grep

Nmap Scripting Engine (NSE)

Nmap enthält eine Scripting-Engine mit Hunderten vorgefertigter Skripte. Diese erweitern die Scan-Funktionen erheblich.

Skript ausführen

Mit --script rufst du ein bestimmtes Skript auf:

nmap --script http-headers 192.168.1.100

Standard-Skripte

Die Skriptkategorie default führt sichere, nützliche Skripte aus:

nmap -sC 192.168.1.100

Das entspricht --script=default.

Häufige Optionen im Überblick

OptionBeschreibung
-sSTCP SYN-Scan (Standard mit Root)
-sTTCP Connect-Scan
-sUUDP-Scan
-sVVersionserkennung
-OBetriebssystem-Erkennung
-AAggressive Erkennung (OS, Version, Scripts, Traceroute)
-pPorts angeben
-snPing-Scan (keine Ports)
-nKeine DNS-Auflösung
-vAusführlichere Ausgabe
-oNAusgabe in Datei (normales Format)

Zusammenfassung

Der Befehl nmap scannt Netzwerke nach offenen Ports, erkennt laufende Dienste und identifiziert Betriebssysteme. Er ist unverzichtbar für Netzwerkdiagnose und Sicherheitsanalysen. Setze ihn verantwortungsvoll ein und nur auf Systemen, die dir gehören oder für die du eine Genehmigung hast.