Nmap Verkenning: Van Scan tot Exploitatie
Nmap (Network Mapper) is de industriestandaard voor netwerkverkenning en poortscanning. Of je nu een intern netwerk in kaart brengt of een extern aanvalsoppervlak verkent, Nmap is vrijwel altijd de eerste tool die je inzet. In deze tutorial behandelen we alle essientiele scantechnieken, van host discovery tot NSE-scripts, en koppelen we dit aan de geautomatiseerde scans van Incompetent Bastard.
Deze tutorial is uitsluitend bedoeld voor gebruik in geautoriseerde testomgevingen.
Vereisten
- Nmap geinstalleerd (
nmap --versionom te controleren) - Root/sudo-rechten (vereist voor SYN scans en OS-detectie)
- Een netwerk of host waarvoor je expliciete testtoestemming hebt
- Optioneel: Incompetent Bastard draaiend voor geintegreerde scans
- Basiskennis van TCP/IP en netwerken
IB – Het script scan.sh automatiseert
de volledige Nmap-workflow. Gebruik:
./scan.sh eth0 engagement-naam 10.1.2.0/24. Het draait
quick scans, full-port scans en vuln scans parallel in
screen-sessies.
Stap 1: Host Discovery
Voordat je poorten scant, moet je weten welke hosts actief zijn.
Ping sweep
# ICMP echo, TCP SYN op 443, TCP ACK op 80, ICMP timestamp
nmap -sn 10.10.10.0/24
# Alleen ARP discovery (in lokale netwerken, zeer betrouwbaar)
nmap -sn -PR 192.168.1.0/24
# Zonder DNS-resolutie (sneller)
nmap -sn -n 10.10.10.0/24Discovery zonder ICMP
Veel firewalls blokkeren ICMP. Gebruik alternatieve methoden:
# TCP SYN discovery op veelgebruikte poorten
nmap -sn -PS22,80,443,445,3389 10.10.10.0/24
# TCP ACK discovery (werkt soms door stateful firewalls)
nmap -sn -PA80,443 10.10.10.0/24
# UDP discovery
nmap -sn -PU53,161 10.10.10.0/24
# Combineer meerdere methoden
nmap -sn -PS22,80,443 -PA80 -PU53 10.10.10.0/24Resultaten opslaan
# Sla actieve hosts op in een bestand
nmap -sn 10.10.10.0/24 -oG - | grep "Up" | awk '{print $2}' > actieve_hosts.txtStap 2: Poortscanning
TCP SYN scan (half-open)
De standaard en meest gebruikte scantechniek. Vereist root-rechten.
# SYN scan op de top 1000 poorten
sudo nmap -sS 10.10.10.5
# SYN scan op alle 65535 poorten
sudo nmap -sS -p- 10.10.10.5
# Specifieke poorten
sudo nmap -sS -p 22,80,443,445,3389 10.10.10.5
# Poortbereik
sudo nmap -sS -p 1-1024 10.10.10.5TCP Connect scan
Wanneer je geen root-rechten hebt. Maakt een volledige TCP-verbinding.
nmap -sT -p- 10.10.10.5UDP scan
UDP-services zoals DNS, SNMP en TFTP worden vaak over het hoofd gezien.
# UDP scan (langzaam, gebruik -F voor snellere scan)
sudo nmap -sU -F 10.10.10.5
# Combineer TCP en UDP
sudo nmap -sS -sU -F 10.10.10.5
# Specifieke UDP-poorten
sudo nmap -sU -p 53,69,123,161,500 10.10.10.5IB – De IB scan.sh gebruikt de volgende
nmap-configuratie voor de snelle TCP-scan:
-Pn -sT -sV -d -A -F --open --max-retries 25 --max-rate 500 --max-scan-delay 50.
Voor UDP: -sUV -sT -T5 -F --version-intensity 0.
Alleen open poorten tonen
# Filter op open poorten (verwijdert filtered/closed)
nmap -sS --open 10.10.10.5Stap 3: Service- en Versiedetectie
Weten welke poort open is, is niet genoeg. Je moet weten welke software erachter draait.
# Versiedetectie
nmap -sV 10.10.10.5
# Agressievere versiedetectie (intensiteit 0-9)
nmap -sV --version-intensity 9 10.10.10.5
# Lichtgewicht versiedetectie (sneller)
nmap -sV --version-light 10.10.10.5
# Combineer met SYN scan
sudo nmap -sS -sV -p- 10.10.10.5Banners handmatig ophalen
# Nmap banner grab script
nmap -sV --script=banner -p 21,22,25,80 10.10.10.5Stap 4: OS-detectie
# OS-detectie (vereist root)
sudo nmap -O 10.10.10.5
# OS-detectie met agressieve gok
sudo nmap -O --osscan-guess 10.10.10.5
# Alles combineren: OS + versie + scripts + traceroute
sudo nmap -A 10.10.10.5De -A vlag is een afkorting voor
-O -sV -sC --traceroute en is vaak de beste keuze voor een
grondige scan.
Stap 5: NSE Scripts
De Nmap Scripting Engine (NSE) breidt Nmap uit met honderden scripts voor kwetsbaarheidsdetectie, brute force en meer.
Script-categorieen
# Standaard scripts (veilig en nuttig)
nmap -sC 10.10.10.5
# Specifieke categorie
nmap --script=vuln 10.10.10.5
# Meerdere categorieen
nmap --script="vuln,auth" 10.10.10.5
# Specifiek script
nmap --script=http-title -p 80 10.10.10.5Veelgebruikte NSE scripts
# HTTP enumeratie
nmap --script=http-enum -p 80,443 10.10.10.5
# SMB kwetsbaarheden (EternalBlue etc.)
nmap --script=smb-vuln* -p 445 10.10.10.5
# FTP anonieme login
nmap --script=ftp-anon -p 21 10.10.10.5
# DNS zone transfer
nmap --script=dns-zone-transfer --script-args dns-zone-transfer.domain=doelwit.lab -p 53 10.10.10.5
# SSL/TLS informatie
nmap --script=ssl-cert,ssl-enum-ciphers -p 443 10.10.10.5
# SNMP informatie
nmap --script=snmp-info,snmp-brute -p 161 -sU 10.10.10.5
# MySQL enumeratie
nmap --script=mysql-info,mysql-enum -p 3306 10.10.10.5
# SMB shares opsommen
nmap --script=smb-enum-shares,smb-enum-users -p 445 10.10.10.5Script-argumenten
# HTTP brute force met eigen wordlist
nmap --script=http-brute --script-args="http-brute.path=/admin,userdb=users.txt,passdb=pass.txt" -p 80 10.10.10.5
# Script-hulp bekijken
nmap --script-help=http-enumIB – De vuln-scan in scan.sh gebruikt
--script vuln om automatisch kwetsbaarheden te detecteren.
Resultaten worden opgeslagen in
raw/nmap/{host}_vuln_scan.nmap.
Stap 6: Output Formaten
Sla je resultaten altijd op in meerdere formaten.
# Normaal formaat
nmap -oN scan_resultaat.nmap 10.10.10.5
# Grepable formaat (handig voor scripting)
nmap -oG scan_resultaat.gnmap 10.10.10.5
# XML formaat (voor import in andere tools)
nmap -oX scan_resultaat.xml 10.10.10.5
# Alle drie tegelijk
nmap -oA scan_resultaat 10.10.10.5Resultaten verwerken
# Open poorten uit grepable output halen
grep "open" scan_resultaat.gnmap | awk '{print $2}'
# XML converteren naar HTML rapport
xsltproc scan_resultaat.xml -o rapport.htmlStap 7: Timing en Performance
Timing templates
# T0 (paranoid) - zeer langzaam, IDS-evasion
nmap -T0 10.10.10.5
# T1 (sneaky) - langzaam
nmap -T1 10.10.10.5
# T2 (polite) - verlaagt belasting
nmap -T2 10.10.10.5
# T3 (normal) - standaard
nmap -T3 10.10.10.5
# T4 (aggressive) - snel, betrouwbaar lokaal netwerk
nmap -T4 10.10.10.5
# T5 (insane) - zeer snel, kan resultaten missen
nmap -T5 10.10.10.5Fijnafstelling
# Maximaal aantal parallelle probes
nmap --min-rate 1000 --max-rate 5000 10.10.10.5
# Retries beperken
nmap --max-retries 2 10.10.10.5
# Timeout per host
nmap --host-timeout 300s 10.10.10.0/24Stap 8: Firewall-evasion
Fragmentatie
# Pakketten fragmenteren (8 bytes per fragment)
sudo nmap -f 10.10.10.5
# Eigen fragment grootte
sudo nmap --mtu 16 10.10.10.5Decoys en source-manipulatie
# Decoy scan (verberg je IP tussen nepbronnen)
sudo nmap -D 10.10.10.1,10.10.10.2,ME,10.10.10.3 10.10.10.5
# Specifieke source poort (sommige firewalls staan 53 of 80 toe)
sudo nmap --source-port 53 10.10.10.5
# Idle/zombie scan (volledig anoniem)
sudo nmap -sI zombie_host:80 10.10.10.5Andere evasion-technieken
# Willekeurige volgorde van hosts
nmap --randomize-hosts 10.10.10.0/24
# Eigen data toevoegen aan pakketten
nmap --data-length 50 10.10.10.5
# MAC-adres spoofen
sudo nmap --spoof-mac 00:11:22:33:44:55 10.10.10.5Stap 9: Praktische Scanstrategieen
Externe pentest workflow
# Stap 1: Quick scan op veelgebruikte poorten
nmap -Pn -sS -sV --open -T4 -p 21,22,25,53,80,110,143,443,445,993,995,1433,3306,3389,5432,8080,8443 -oA extern_quick doelwit.nl
# Stap 2: Full port scan
nmap -Pn -sS -sV -p- --open -T4 -oA extern_full doelwit.nl
# Stap 3: Vuln scan op gevonden poorten
nmap -Pn -sV --script vuln -p 22,80,443 -oA extern_vuln doelwit.nlInterne pentest workflow
# Stap 1: Host discovery
nmap -sn -PR 192.168.1.0/24 -oG discovery.gnmap
# Stap 2: Quick TCP scan op actieve hosts
nmap -sS -sV -F --open -iL actieve_hosts.txt -oA intern_quick
# Stap 3: Full scan op interessante hosts
nmap -sS -sV -A -p- --open 192.168.1.10 -oA intern_full_host10
# Stap 4: UDP scan op kritieke services
nmap -sU -p 53,67,68,69,123,161,162,500,514,1900 -iL actieve_hosts.txt -oA intern_udpIB – Gebruik
./scan.sh eth0 klant-intern 192.168.1.0/24 om de volledige
interne workflow geautomatiseerd uit te voeren. Quick TCP, UDP,
full-port en vuln scans draaien parallel in screen-sessies. Controleer
voortgang met screen -ls.
Specifieke service-enumeratie
# Webservers vinden
nmap -sS -p 80,443,8080,8443 --open 10.10.10.0/24 -oG webservers.gnmap
# Domain controllers vinden
nmap -sS -p 88,389,636,445 --open 10.10.10.0/24
# Databases vinden
nmap -sS -p 1433,1521,3306,5432,27017 --open 10.10.10.0/24
# Mail servers
nmap -sS -p 25,110,143,465,587,993,995 --open 10.10.10.0/24Stap 10: Van Scan naar Exploitatie
Na het scannen is de volgende stap het analyseren van resultaten en het identificeren van aanvalsmogelijkheden.
Resultaten analyseren
Zoek naar: 1. Verouderde softwareversies – Vergelijk met bekende CVE’s 2. Standaard credentials – FTP anonymous, default admin/admin 3. Onversleutelde services – Telnet, FTP, HTTP zonder TLS 4. Misconfiguraties – Open SMB shares, zone transfers 5. Bekende kwetsbaarheden – NSE vuln-scripts melden deze direct
Searchsploit koppeling
# Zoek exploits voor gevonden services
searchsploit "Apache 2.4.49"
searchsploit "ProFTPD 1.3.5"
searchsploit "OpenSSH 7.2"Nmap resultaten naar IB
# Na het scannen kun je gevonden services als bevindingen vastleggen
# in het IB Findings dashboard: /dashboard/findingsVeelgemaakte Fouten
- Scannen zonder
-Pn– Hosts achter firewalls worden als offline gezien als ICMP geblokkeerd is. - UDP vergeten – Veel kritieke services draaien op UDP (DNS, SNMP, TFTP).
- Te agressief scannen – Gebruik T4 als maximum op productiesystemen om crashes te voorkomen.
- Output niet opslaan – Gebruik altijd
-oAom alle formaten te bewaren. - Scope overschrijden – Scan alleen IP-ranges en domeinen die in je scope staan.
Samenvatting
In deze tutorial heb je geleerd hoe je Nmap effectief inzet tijdens een penetratietest:
- Host discovery – Gebruik ping sweeps en TCP/UDP discovery om actieve hosts te vinden.
- Poortscanning – Kies de juiste scantechniek (SYN, Connect, UDP) voor je situatie.
- Versiedetectie – Identificeer exact welke software op welke poort draait.
- NSE scripts – Gebruik scripts voor geautomatiseerde kwetsbaarheidsdetectie.
- Output – Sla resultaten op in meerdere formaten voor analyse en rapportage.
- Timing en evasion – Pas je scansnelheid en -technieken aan op de omgeving.
- IB integratie – Gebruik scan.sh voor een volledige geautomatiseerde scanworkflow.
Nmap is het fundament van elke pentest. Besteed tijd aan het leren van de opties en het analyseren van resultaten – dit bepaalt het succes van de rest van je assessment.