Nmap Cheatsheet
Scan. Enumerate. Understand.
Syntaxe de base
nmap [options] [cible]
Cible = IP, range (192.168.1.0/24), hostname, fichier (-iL hosts.txt)
Types de scan
Découverte d’hôtes
nmap -sn 192.168.1.0/24 # Ping sweep — hôtes actifs sans port scan
nmap -Pn 192.168.1.1 # Skip host discovery — considère l'hôte comme up
nmap -PS22,80,443 192.168.1.1 # TCP SYN ping sur ports spécifiques
nmap -PA80 192.168.1.1 # TCP ACK ping
nmap -PU53 192.168.1.1 # UDP ping
nmap -PE 192.168.1.1 # ICMP echo ping
Scans TCP
nmap -sS 192.168.1.1 # SYN scan (stealth) — défaut root
nmap -sT 192.168.1.1 # TCP connect scan — défaut non-root
nmap -sA 192.168.1.1 # ACK scan — détecte les firewalls
nmap -sW 192.168.1.1 # Window scan
nmap -sN 192.168.1.1 # NULL scan — aucun flag TCP
nmap -sF 192.168.1.1 # FIN scan
nmap -sX 192.168.1.1 # Xmas scan — FIN+PSH+URG
nmap -sM 192.168.1.1 # Maimon scan
Scans UDP & autres
nmap -sU 192.168.1.1 # UDP scan (lent)
nmap -sU -sS 192.168.1.1 # UDP + SYN simultanés
nmap -sO 192.168.1.1 # IP protocol scan
Ports
nmap -p 80 192.168.1.1 # Port unique
nmap -p 80,443,8080 192.168.1.1 # Ports multiples
nmap -p 1-1024 192.168.1.1 # Range
nmap -p- 192.168.1.1 # Tous les ports (1-65535)
nmap -p U:53,T:80 192.168.1.1 # UDP + TCP mixte
nmap --top-ports 100 192.168.1.1 # Top 100 ports les plus communs
nmap -F 192.168.1.1 # Fast scan — top 100 ports
Détection de services & OS
nmap -sV 192.168.1.1 # Version des services
nmap -sV --version-intensity 9 # Intensité max (0-9)
nmap -O 192.168.1.1 # Détection OS (root requis)
nmap -O --osscan-guess # Guess OS si pas de match exact
nmap -A 192.168.1.1 # Agressif : OS + version + scripts + traceroute
Scripts NSE (Nmap Scripting Engine)
nmap -sC 192.168.1.1 # Scripts par défaut
nmap --script=banner 192.168.1.1 # Script unique
nmap --script=http-title,http-headers 192.168.1.1 # Scripts multiples
nmap --script=vuln 192.168.1.1 # Scripts de vulnérabilités
nmap --script=safe 192.168.1.1 # Scripts safe uniquement
nmap --script=exploit 192.168.1.1 # Scripts d'exploitation
nmap --script=auth 192.168.1.1 # Authentification par défaut
nmap --script=brute 192.168.1.1 # Brute force credentials
nmap --script=discovery 192.168.1.1 # Découverte réseau
# Avec arguments
nmap --script=http-brute --script-args userdb=/usr/share/wordlists/users.txt 192.168.1.1
# Localisation des scripts
ls /usr/share/nmap/scripts/
nmap --script-updatedb # Update la DB des scripts
Scripts utiles par protocole
# HTTP
nmap --script=http-enum 192.168.1.1 # Enumération répertoires
nmap --script=http-robots.txt 192.168.1.1 # Lecture robots.txt
nmap --script=http-shellshock 192.168.1.1 # Test Shellshock
# SMB
nmap --script=smb-vuln-ms17-010 192.168.1.1 # EternalBlue
nmap --script=smb-enum-shares 192.168.1.1 # Partages SMB
nmap --script=smb-enum-users 192.168.1.1 # Utilisateurs SMB
nmap --script=smb-os-discovery 192.168.1.1 # OS via SMB
# DNS
nmap --script=dns-brute 192.168.1.1 # Brute force sous-domaines
nmap --script=dns-zone-transfer 192.168.1.1 # Tentative de zone transfer
# FTP
nmap --script=ftp-anon 192.168.1.1 # Anonymous FTP
nmap --script=ftp-brute 192.168.1.1 # Brute force FTP
# SSH
nmap --script=ssh-auth-methods 192.168.1.1 # Méthodes d'auth SSH
nmap --script=ssh-brute 192.168.1.1 # Brute force SSH
# MySQL
nmap --script=mysql-empty-password 192.168.1.1
nmap --script=mysql-databases 192.168.1.1
Timing & Performance
nmap -T0 192.168.1.1 # Paranoid — très lent, IDS evasion
nmap -T1 192.168.1.1 # Sneaky
nmap -T2 192.168.1.1 # Polite
nmap -T3 192.168.1.1 # Normal (défaut)
nmap -T4 192.168.1.1 # Aggressive — labs et réseaux rapides
nmap -T5 192.168.1.1 # Insane — très bruyant
# Contrôle fin
nmap --min-rate 1000 192.168.1.1 # Min 1000 paquets/sec
nmap --max-rate 500 192.168.1.1 # Max 500 paquets/sec
nmap --min-parallelism 10 # Parallélisme minimum
nmap --max-retries 2 192.168.1.1 # Limite les retransmissions
Evasion & Spoofing
nmap -D RND:10 192.168.1.1 # Decoys — 10 IPs aléatoires
nmap -D 192.168.1.5,192.168.1.6 192.168.1.1 # Decoys spécifiques
nmap -S 192.168.1.100 192.168.1.1 # Spoof source IP (root)
nmap -e eth0 192.168.1.1 # Interface spécifique
nmap --source-port 53 192.168.1.1 # Spoof port source
nmap -f 192.168.1.1 # Fragmentation des paquets
nmap --mtu 24 192.168.1.1 # MTU custom (multiple de 8)
nmap --data-length 25 192.168.1.1 # Padding des paquets
nmap --randomize-hosts 192.168.1.0/24 # Ordre aléatoire des cibles
nmap --spoof-mac 0 192.168.1.1 # MAC aléatoire
Output
nmap -oN output.txt 192.168.1.1 # Format normal
nmap -oX output.xml 192.168.1.1 # Format XML
nmap -oG output.gnmap 192.168.1.1 # Format grepable
nmap -oA output 192.168.1.1 # Les 3 formats simultanément
nmap -v 192.168.1.1 # Verbose
nmap -vv 192.168.1.1 # Double verbose
nmap -d 192.168.1.1 # Debug
nmap --reason 192.168.1.1 # Raison de l'état de chaque port
nmap --open 192.168.1.1 # Affiche uniquement les ports ouverts
nmap --packet-trace 192.168.1.1 # Trace chaque paquet
Combos utiles en pentest
# Recon initial rapide
nmap -T4 -F 192.168.1.0/24
# Scan complet sur une cible identifiée
nmap -sS -sV -sC -O -p- -T4 192.168.1.1
# Scan discret full port
nmap -sS -T2 -p- --min-rate 500 192.168.1.1
# Vuln scan ciblé
nmap -sV --script=vuln 192.168.1.1
# Audit SMB (Windows)
nmap -p 445 --script=smb-vuln-ms17-010,smb-enum-shares,smb-enum-users 192.168.1.1
# Découverte réseau passive
nmap -sn -T2 --randomize-hosts 192.168.1.0/24
# Export XML pour import dans Metasploit
nmap -sS -sV -oX scan.xml 192.168.1.1
db_import scan.xml # Dans msfconsole
États des ports
| État | Signification |
|---|---|
open | Port actif, service en écoute |
closed | Port accessible mais pas de service |
filtered | Firewall/filtre — pas de réponse |
unfiltered | Accessible, état inconnu (ACK scan) |
open|filtered | Ouvert ou filtré — impossible à distinguer |
closed|filtered | Fermé ou filtré |
hashwar.net — notes from the edge.