Hvad er Nmap, og hvem bruger det?

Nmap (Network Mapper) blev skrevet af Gordon Lyon (alias Fyodor) og udgivet i 1997 i Phrack Magazine. I dag er det open source under en tilpasset licens og vedligeholdes aktivt. Seneste stabile version er 7.95 (maj 2024).

Det bruges af sysadmins til at kortlægge netværk, af pentestere til at finde angrebsflader, og af sikkerhedshold til at verificere at firewallregler rent faktisk virker. Det dukker op i næsten alle kendte penetrationstest-frameworks (Metasploit, Kali Linux, Parrot OS) og er nævnt direkte i NIST SP 800-115 som et anbefalet scanningsværktøj.

Filmen The Matrix Reloaded (2003) brugte Nmap i en scene for at virke teknisk troværdig. Det er det samme Nmap du bruger i dag.

⚠️ Kun på netværk du ejer eller har skriftlig tilladelse til at scanne. I Danmark er uautoriseret scanning af fremmede systemer strafbart under straffelovens § 263. Scanner du dit eget hjemmenetværk eller en testmaskine du selv ejer, er du på den rigtige side af loven.

Installer Nmap

# Debian / Ubuntu / Raspberry Pi OS
sudo apt install nmap

# macOS (Homebrew)
brew install nmap

# Windows – installer fra nmap.org/download
# eller via Chocolatey:
choco install nmap

De fem scans du bruger oftest

1. Find alle enheder på dit hjemmenetværk

sudo nmap -sn 192.168.1.0/24

-sn er et ping-sweep: ingen port scanning, kun host discovery. Ændrer du subnet til dit eget (tjek med ip route eller ipconfig), får du en liste over alle enheder der svarer. Nyttigt til at finde den nye Pi, en gammel printer der aldrig er blevet opdateret, eller enheder du ikke vidste var på netværket.

2. Se hvad der kører på en specifik maskine

sudo nmap -sV -p 1-1024 192.168.1.100

-sV aktiverer service-version detection. Nmap sender sonder mod åbne porte og forsøger at matche svaret mod en database på over 11.000 service-signaturer (nmap-service-probes). Du ser ikke bare "port 22 åben". Du ser "OpenSSH 9.2p1 Debian". Det fortæller dig om versionen er sårbar over for kendte CVE'er.

3. Scan alle 65.535 porte

sudo nmap -p- -T4 192.168.1.100

Som standard scanner Nmap kun de 1.000 mest almindelige porte. Tjenester der kører på usædvanlige porte (en SSH-server på port 2222, en webserver på 8443) bliver ikke fundet med en standard-scan. -p- scanner alle. -T4 er en timing-template der gør det hurtigere. Skalaen er fra 0 (paranoid, langsom) til 5 (vanvittig, upålidelig på belastede netværk). T4 er det rigtige valg på et lokalt netværk.

4. OS-fingerprinting

sudo nmap -O 192.168.1.100

Nmap analyserer TCP/IP-svar-mønstre og sammenligner dem mod en database af kendte OS-fingerprints. Det er ikke 100% præcist, men det kommer tæt på for de fleste systemer. Kræver root/sudo fordi det bruger rå IP-pakker. Hvis Nmap returnerer "OS details: Linux 5.15 - 6.1", ved du hvilken kerneversion du kigger på.

5. Aggressiv scan (alt på én gang)

sudo nmap -A -T4 192.168.1.100

-A slår OS detection, service version detection, script scanning og traceroute til. Mere støjende og langsommere, men giver dig det fulde billede. Brug det på din own infrastruktur når du vil have en komplet snapshot.

Nmap Scripting Engine (NSE)

NSE er det der gør Nmap til mere end et scanningsværktøj. Det er en Lua-baseret scriptengine med over 600 inkluderede scripts (i /usr/share/nmap/scripts/) der kan gøre alt fra DNS-opslag til sårbarhedsscanning.

Kør sårbarhedsscripts

sudo nmap -sV --script vuln 192.168.1.100

Kører alle scripts i "vuln"-kategorien mod de fundne services. Det tjekker bl.a. for EternalBlue (MS17-010), Heartbleed (CVE-2014-0160), og en række andre kendte CVE'er. Ikke en erstatning for en dedikeret sårbarhedsscanner (Nessus, OpenVAS), men et solidt første skridt.

HTTP-headers og SSL-info

# Tjek HTTP-headers
nmap --script http-headers -p 80,443 192.168.1.100

# SSL/TLS-certifikat og cipher suites
nmap --script ssl-cert,ssl-enum-ciphers -p 443 192.168.1.100

Tjek for standard-passwords på services

sudo nmap --script ssh-brute -p 22 192.168.1.100
⚠️ Dette script sender faktiske loginforsøg. Brug kun på dine egne maskiner. Aktiverer du det mod en fremmed server, er det et brud ind.

Gem output til videre analyse

# Normal tekstoutput
nmap -sV 192.168.1.0/24 -oN scan_$(date +%Y%m%d).txt

# XML-output (til automatiseret behandling)
nmap -sV 192.168.1.0/24 -oX scan_$(date +%Y%m%d).xml

# Alle formater på én gang
nmap -sV 192.168.1.0/24 -oA scan_$(date +%Y%m%d)

XML-output er nyttigt hvis du vil parse resultaterne automatisk, f.eks. for at opdage ændringer i åbne porte over tid. Det åbner for at bygge et simpelt overvågningsværktøj (se nedenfor).

Hvorfor Nmap stadig er relevant i 2026

Alternativer som Masscan er hurtigere til store netværk (kan scanne hele internettet på under 6 minutter på 10 Gbps), men Masscan giver dig kun åbne porte: ingen service-detection, ingen scripting, ingen OS-fingerprinting. Nmap og Masscan bruges ofte i kombination: Masscan til at finde åbne porte hurtigt, Nmap til at gå i dybden.

Cloud-baserede angreb sker stadig primært via åbne porte og forkert konfigurerede services. Shodan.io crawler kontinuerligt hele internettet med Nmap-lignende teknikker og viser offentlige resultater. Det betyder at din server allerede er scannet, hvad enten du vil det eller ej. Det eneste der hjælper er at vide hvad der er åbent, før angriberne bruger det imod dig.

💡 Homelab-tip: Kør en ugentlig Nmap-scan mod din Pi og gem XML-output. Et simpelt script der differ den nye scan mod den forrige kan fortælle dig om nye porte er dukket op — f.eks. fordi Docker har eksponeret noget du ikke regnede med.

Hurtig kommando-oversigt

Flag Hvad det gør
-sS SYN-scan (stealth, kræver root)
-sT TCP connect-scan (ingen root)
-sU UDP-scan (langsom, men nødvendig)
-sV Service/version detection
-O OS-fingerprinting
-A Aggressiv scan (OS + version + scripts + traceroute)
-p- Scan alle 65.535 porte
-sn Ping-sweep, ingen portscanning
-T0–T5 Timing (T4 = hurtig, T0 = næsten usynlig)
-oX fil.xml Gem output som XML
--script vuln Kør sårbarhedsscripts

Kilder