Innan någon attackerar ett system måste de veta vad som finns där. Nmap är verktyget som svarar på den frågan. Det skickar paket till en IP-adress eller ett nätverk och berättar vilka portar som är öppna, vilka services som körs, och ofta vilket operativsystem som är på andra sidan.
scanme.nmap.org (officiell testserver), ditt eget hemnätverk, HackTheBox, TryHackMe, eller en VM du själv satt upp.
01Vad Nmap egentligen är
Stora nätverk består av massor av datorer, routrar, skrivare, servrar och IoT-prylar. Varje sak lyssnar på vissa portar — siffror mellan 1 och 65535 som identifierar olika tjänster. Webbservrar lyssnar typiskt på port 80 (HTTP) och 443 (HTTPS). SSH-servrar på 22. Mejlservrar på 25 och 587.
Nmap skickar små paket till en lista av portar och tittar på svaret. Om porten svarar med "ja jag är här" → open. Om den svarar med "nej" → closed. Om den inte svarar alls (en brandvägg slukar paketet) → filtered.
Att veta vilka portar som är öppna är första steget i:
- Försvar — du upptäcker att din router har en port öppen som du inte visste om
- Pentesting — du kartlägger vad ditt mål faktiskt exponerar
- Felsökning — "varför kommer inte SSH fram?" → Nmap svarar
02Installation
Linux (Ubuntu, Debian, Kali):
sudo apt install nmap
nmap --version
Nmap version 7.94
macOS:
brew install nmap
Windows: ladda ner installern från nmap.org/download. Den innehåller även Zenmap (grafiskt gränssnitt om du föredrar det) och Npcap (paketbiblioteket Nmap behöver för att fungera).
03Ditt första scan
Nmap-folket driver en officiell test-server på scanme.nmap.org som du har tillstånd att skanna. Perfekt för övning:
nmap scanme.nmap.org Starting Nmap 7.94 ( https://nmap.org ) Nmap scan report for scanme.nmap.org (45.33.32.156) Host is up (0.18s latency). Not shown: 996 closed tcp ports (reset) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 9929/tcp open nping-echo 31337/tcp open Elite Nmap done: 1 IP address (1 host up) scanned in 4.21 seconds
Vad utdatan säger:
- Host is up — datorn svarar (den är online)
- 996 closed tcp ports — Nmap testade 1000 portar; 996 av dem var stängda
- Port 22 open: ssh — SSH-servern är aktiv → du kan logga in via SSH om du har inloggning
- Port 80 open: http — det finns en webbserver där
- Port 9929 + 31337 — extra services som scanme kör för demo
04Mer information med flaggor
Nmaps grundscan visar bara vilka portar som är öppna. Med flaggor får du mycket mer:
-sV — service version detection. Vad körs det för version på den öppna porten?
nmap -sV scanme.nmap.org PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
Nu vet vi inte bara att SSH är öppet — vi vet att det är OpenSSH 6.6.1 på Ubuntu. Det här är guld för en angripare (kan slå upp kända sårbarheter i den versionen) och guld för en försvarare (kan se "shit, vi kör en gammal version, dags att patcha").
-O — OS detection. Gissar operativsystem från små skillnader i hur datorn svarar på paket:
sudo nmap -O scanme.nmap.org
Running: Linux 5.X
OS details: Linux 5.0 - 5.5
-p — specifika portar. Vanlig syntax:
# bara port 22 och 80 nmap -p 22,80 scanme.nmap.org # alla 65535 portar (tar längre tid) nmap -p- scanme.nmap.org # ett intervall nmap -p 1-1000 scanme.nmap.org
-A — aggressive scan. Slår på allt på en gång: version detection, OS detection, scriptscanning och traceroute. Mest information men också mest "synligt" på nätverket:
nmap -A scanme.nmap.org
05Förstå open / closed / filtered
- open — porten lyssnar och svarar. En service är aktiv där.
- closed — porten är åtkomlig men ingen service lyssnar. Datorn säger "nej, ingen här" — vanligt för portar som inte används.
- filtered — Nmap fick inget svar alls. Oftast betyder det att en brandvägg blockerar paketet. Du vet inte om porten egentligen är öppen eller stängd.
- open|filtered — Nmap är osäker. Vanligt vid UDP-scans där "inget svar" kan betyda båda.
06Praktiska kommandon att komma ihåg
# scanna ditt eget hemnätverk (hitta alla enheter) nmap -sn 192.168.1.0/24 # snabbt scan av topp 100 vanligaste portarna nmap -F 192.168.1.1 # spara resultatet till fil i alla format nmap -A -oA min-scan scanme.nmap.org # scan utan att pinga först (om mål blockerar ping) nmap -Pn scanme.nmap.org
07Vad du lärt dig
- Nmap berättar vilka portar som är öppna på ett mål
- Open = service lyssnar, closed = inget lyssnar, filtered = brandvägg blockerar
-sV= vilken version körs,-O= vilket OS,-A= allt på en gångscanme.nmap.orgär ett lagligt övningsmål- Att scanna utan tillstånd är dataintrång — håll dig till egna system och lagliga mål
Övning: kartlägg ditt hemnätverk
1. Hitta din routers IP — på de flesta hem-routrar är det 192.168.1.1 eller 192.168.0.1. På Windows: ipconfig, leta efter "Default Gateway".
2. Scanna alla enheter på ditt nätverk: nmap -sn 192.168.1.0/24 — du ser alla telefoner, datorer och IoT-prylar som är uppkopplade.
3. Scanna din router: nmap -sV 192.168.1.1 — vilka portar är öppna mot ditt LAN?
4. Reflektera: är något öppet som du inte förväntade dig? Många hemroutrar har t.ex. en webbadmin på port 80 eller 443 som är trevlig att veta om.
5. Scanna scanme.nmap.org med -A: nmap -A scanme.nmap.org — läs hela utdatan och se hur mycket info som faller ut.