Maîtriser Nmap au niveau CEH : scans TCP SYN, FIN, XMAS, NULL, ACK, UDP, détection de version et OS, scripts NSE pour le fingerprinting, techniques d’évasion firewall (fragmentation, decoys, idle scan, source port spoofing). Toutes les commandes et un workflow complet sur cibles légales.
📍 À lire d’abord : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026 · Lab CEH avec Kali Linux + DVWA + HTB Academy · Reconnaissance et OSINT pas-à-pas.
⚠️ Tous les scans de ce tutoriel s’exécutent contre Metasploitable 2 dans ton lab interne (10.10.10.20) ou contre
scanme.nmap.org(officiellement autorisé par le projet Nmap pour les exercices). Aucune autre cible.
Introduction
Nmap (Network Mapper) est l’outil de scan réseau de référence depuis 1997. Pour le CEH v13, il est central au module 03 Scanning Networks (~8 % de l’examen) et omniprésent dans tous les autres modules pratiques. Maîtriser Nmap, c’est maîtriser la phase 2 d’un pentest — celle où tu transformes la liste de cibles OSINT en cartographie précise des services exposés et de leurs versions exploitables.
Ce tutoriel va au-delà du nmap -sV target : tu apprendras les neuf types de scan TCP/UDP, l’utilisation du Nmap Scripting Engine (NSE) avec ses 600+ scripts, les techniques d’évasion firewall que les attaquants utilisent en conditions réelles, et comment corréler les outputs avec la base CVE pour identifier les exploits applicables. À la fin, tu seras capable de scanner un réseau d’entreprise complet, identifier 95 % de ses faiblesses connues, et le faire en 30 minutes sans déclencher l’IDS.
Prérequis
- Lab Kali Linux 2026.1 fonctionnel.
- Cible Metasploitable 2 démarrée en réseau interne (10.10.10.20).
- Compréhension TCP/IP (handshake, états des ports, flags TCP).
- Lecture rapide de la documentation Nmap recommandée — le man page fait 200 pages.
- Niveau attendu : intermédiaire.
- Temps estimé : 4 heures pour couvrir l’intégralité.
Étape 1 — Anatomie d’un scan Nmap
Avant de lancer des commandes, comprends ce que Nmap fait réellement. Pour chaque port à scanner, Nmap envoie des paquets et observe les réponses :
Port OPEN : la cible répond positivement (SYN/ACK pour TCP, paquet data pour UDP)
Port CLOSED : la cible répond négativement (RST pour TCP, ICMP unreachable pour UDP)
Port FILTERED : aucune réponse (firewall a droppé), ou ICMP unreachable type 13
Port UNFILTERED : ACK reçu, mais Nmap ne sait pas si le port est open ou closed
(typique du scan ACK contre un firewall stateless)
Port OPEN|FILTERED : ambiguïté (UDP scan, scan FIN/XMAS/NULL contre Windows)
Comprendre ces six états te permet de choisir le bon type de scan selon ce que tu veux apprendre. Un scan rapide pour cartographie : -sS. Un scan furtif contre un IDS faiblard : -sN ou -sX. Un scan derrière un firewall pour cartographier ses règles : -sA.
Étape 2 — Scans TCP SYN (le plus utilisé)
Le scan SYN, dit aussi half-open ou stealth scan, est la commande par défaut de Nmap quand tu es root. Il envoie un paquet TCP SYN, attend une réponse :
– SYN/ACK reçu → port open, Nmap répond RST pour clore avant le 3-way handshake complet
– RST reçu → port closed
– Aucune réponse → port filtered
C’est le compromis idéal entre vitesse et discrétion : pas de connexion complète établie, donc pas d’enregistrement dans les logs applicatifs côté serveur.
# Scan SYN sur tous les ports les plus communs (top 1000)
sudo nmap -sS -T4 10.10.10.20
# Scan SYN sur tous les 65535 ports
sudo nmap -sS -p- -T4 10.10.10.20
# Scan SYN sur ports spécifiques
sudo nmap -sS -p 21,22,80,443,3306,3389,8080 10.10.10.20
# Scan SYN avec sortie verbose
sudo nmap -sS -v 10.10.10.20
Les options -T0 à -T5 règlent l’agressivité temporelle : T0 (paranoid, anti-IDS, 5 minutes par port), T1 (sneaky), T2 (polite), T3 (default), T4 (aggressive), T5 (insane, peut perdre des résultats). Pour la pratique CEH, T4 est le standard ; pour de la prod furtive, T2.
Étape 3 — Scans TCP alternatifs (FIN, XMAS, NULL, ACK)
Plusieurs types de scan TCP exploitent les nuances du protocole pour contourner les filtres ou identifier des comportements spécifiques.
Scan FIN (-sF) — envoie un paquet avec uniquement le flag FIN. Selon RFC 793, un port closed répond RST, un port open ne répond rien. Sur Linux/Unix, ça fonctionne ; sur Windows (qui ne respecte pas la RFC), tous les ports répondent RST → résultat closed faussé. À utiliser pour distinguer cibles Linux vs Windows en aveugle.
Scan XMAS (-sX) — envoie un paquet avec FIN+PSH+URG, comme un sapin de Noël illuminé. Même comportement et même limitation Windows que FIN.
Scan NULL (-sN) — paquet sans aucun flag. Idem.
sudo nmap -sF 10.10.10.20
sudo nmap -sX 10.10.10.20
sudo nmap -sN 10.10.10.20
Scan ACK (-sA) — envoie un paquet avec uniquement ACK. Ne détermine pas si un port est open/closed mais permet de cartographier les règles d’un firewall stateless. Si réponse RST = pas de filtrage ; pas de réponse = filtré par firewall.
sudo nmap -sA 10.10.10.20
Étape 4 — Scan UDP (souvent négligé)
UDP est sans état : pas de handshake. Nmap envoie un paquet UDP vide vers chaque port et attend :
– Réponse UDP → port open
– ICMP unreachable type 3 code 3 → port closed
– ICMP unreachable autre type → port filtered
– Aucune réponse → port open|filtered (ambigu)
Le scan UDP est lent par construction (timeout long pour décider qu’aucune réponse n’arrivera) et limité par le rate-limiting ICMP de la plupart des OS. Ne pas oublier qu’UDP cache des services critiques : DNS (53), DHCP (67/68), TFTP (69), NTP (123), SNMP (161/162), IPSec (500), SIP (5060).
# Scan UDP top 100 ports les plus communs (recommandé, rapide)
sudo nmap -sU --top-ports 100 -T4 10.10.10.20
# Scan UDP complet (lent — 4 à 8 heures sur /32)
sudo nmap -sU -p- 10.10.10.20
# Scan UDP avec détection de version
sudo nmap -sU -sV --version-intensity 0 -T4 --top-ports 100 10.10.10.20
--version-intensity 0 envoie uniquement les probes les plus probables — accélère drastiquement la détection de version sans sacrifier les résultats sur les services courants.
Étape 5 — Détection de version et OS
Au-delà du status open/closed, Nmap peut identifier précisément la version du logiciel qui écoute et l’OS du système.
# Détection de version (envoie des probes spécifiques au protocole détecté)
sudo nmap -sV 10.10.10.20
# Détection d'OS (analyse les caractéristiques TCP/IP)
sudo nmap -O 10.10.10.20
# Tout-en-un : SYN scan + version + OS + scripts par défaut
sudo nmap -A 10.10.10.20
# Avec verbose
sudo nmap -A -v 10.10.10.20
L’option -A (aggressive) combine -sV -O -sC --traceroute. C’est la commande la plus utilisée en pentest standard. Sur Metasploitable 2, tu obtiendras typiquement :
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.8
139/tcp open netbios-ssn Samba smbd 3.X - 4.X
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
...
OS: Linux 2.6.X (88%)
Chaque version est ensuite à confronter à la base CVE pour identifier les exploits applicables — vsftpd 2.3.4, par exemple, contient une backdoor (CVE-2011-2523) exploitable via Metasploit en 30 secondes.
Étape 6 — Nmap Scripting Engine (NSE)
Le NSE est ce qui fait de Nmap bien plus qu’un scanner de ports : 600+ scripts en Lua qui automatisent des tâches d’audit avancées. Les scripts sont organisés en catégories : auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln.
# Lancer tous les scripts default (= -sC)
sudo nmap -sC 10.10.10.20
# Lancer une catégorie de scripts
sudo nmap --script vuln 10.10.10.20
# Scripts qui détectent les CVE connus
sudo nmap --script vulners --script-args mincvss=7.0 -sV 10.10.10.20
# Script spécifique sur un port
sudo nmap --script smb-vuln-* -p 445 10.10.10.20
sudo nmap --script ssl-enum-ciphers -p 443 example.com
# Lister les scripts disponibles
ls /usr/share/nmap/scripts/ | grep -i smb
nmap --script-help "smb-*"
Les scripts les plus utilisés en pratique pour CEH :
http-enum (énumère répertoires web)
http-shellshock (CVE-2014-6271)
http-sql-injection (détection SQLi basique)
ssh-auth-methods (méthodes d'auth supportées)
ssh-hostkey (récupère et fingerprint la clé)
ssh2-enum-algos (algos de chiffrement supportés)
ssl-enum-ciphers (ciphers et protocoles SSL/TLS)
ssl-cert (certificat SSL détaillé)
smb-enum-shares (partages SMB exposés)
smb-os-discovery (OS via SMB)
smb-vuln-ms17-010 (EternalBlue, CVE-2017-0144)
mysql-empty-password (compte root sans mdp)
mysql-info (version + config)
ftp-anon (FTP anonyme autorisé)
ftp-vsftpd-backdoor (backdoor vsftpd 2.3.4)
dns-zone-transfer (AXFR autorisé)
snmp-info (community strings public/private)
Lancer la suite vuln complète sur Metasploitable 2 :
sudo nmap -sV --script vuln 10.10.10.20 -oN metasploitable-vuln.txt
Tu obtiendras une liste de CVE explicites pour chaque service vulnérable — exploitable directement en phase suivante.
Étape 7 — Évasion firewall et IDS
Quand la cible est protégée par un firewall ou un IDS, Nmap propose plusieurs techniques pour passer.
Fragmentation (-f, --mtu) : découpe les paquets en petits fragments. Beaucoup d’IDS n’inspectent que le premier fragment.
sudo nmap -sS -f 10.10.10.20
sudo nmap -sS --mtu 16 10.10.10.20 # fragments de 16 octets
Decoy scan (-D) : envoie le scan depuis plusieurs IPs sources falsifiées en parallèle de ta vraie IP, noyant ton IP dans la masse côté logs.
sudo nmap -sS -D RND:10 10.10.10.20 # 10 decoys aléatoires
sudo nmap -sS -D 192.168.1.5,192.168.1.6,ME 10.10.10.20 # decoys explicites
Idle scan (-sI) : utilise un zombie (machine intermédiaire avec faible activité) pour scanner sans jamais que ta vraie IP n’apparaisse côté cible. Technique avancée, fonctionne uniquement si le zombie a un IPID prédictible.
sudo nmap -sI <zombie_IP> 10.10.10.20
Source port spoofing (--source-port, -g) : utilise un port source spécifique (ex: 53 = DNS, 80 = HTTP) que beaucoup de firewalls laissent passer en sortie.
sudo nmap -sS --source-port 53 10.10.10.20
sudo nmap -sS -g 80 10.10.10.20
Spoofing MAC et timing très lent :
sudo nmap -sS --spoof-mac 0 10.10.10.20 # MAC aléatoire
sudo nmap -sS --spoof-mac Apple 10.10.10.20 # MAC d'un constructeur
sudo nmap -sS -T0 10.10.10.20 # extrêmement lent, anti-IDS
À l’examen CEH, ces options sont régulièrement testées avec des questions du type « quelle option Nmap utiliseriez-vous pour… » — mémoriser au moins les flags principaux.
Étape 8 — Sortie et formats de rapport
Pour un pentest pro, garder les outputs Nmap dans des formats structurés est obligatoire pour le rapport.
# Output normal (lisible)
sudo nmap -A 10.10.10.20 -oN scan-normal.txt
# Output XML (parsable)
sudo nmap -A 10.10.10.20 -oX scan.xml
# Output greppable (pour scripts shell)
sudo nmap -A 10.10.10.20 -oG scan.gnmap
# Tous les formats à la fois
sudo nmap -A 10.10.10.20 -oA scan-complet
L’XML est précieux : convertible en HTML lisible avec xsltproc /usr/share/nmap/nmap.xsl scan.xml > scan.html, ou ingérable par Metasploit pour importer les hôtes (db_import scan.xml).
Étape 9 — Workflow complet sur Metasploitable 2
Voici un workflow professionnel à exécuter en lab pour couvrir l’intégralité du module 03 CEH :
# Phase 1 : découverte d'hôtes vivants sur le sous-réseau
sudo nmap -sn 10.10.10.0/24 -oN hosts-alive.txt
# Phase 2 : scan rapide TCP top 1000 sur les hôtes vivants
sudo nmap -sS -T4 -F 10.10.10.20 -oN scan-quick.txt
# Phase 3 : scan complet TCP tous ports + détection de version
sudo nmap -sS -sV -p- -T4 10.10.10.20 -oA scan-full
# Phase 4 : scan UDP top 100
sudo nmap -sU --top-ports 100 -T4 10.10.10.20 -oN scan-udp.txt
# Phase 5 : détection OS et scripts par défaut
sudo nmap -O -sC -T4 10.10.10.20 -oN scan-os-default.txt
# Phase 6 : scripts vuln pour identification CVE
sudo nmap -sV --script vuln -T4 10.10.10.20 -oN scan-vuln.txt
# Phase 7 : exploitation des findings via Metasploit (sujet du tutoriel suivant)
Documenter chaque phase avec son output. Le rapport final agrège : N hôtes vivants, M ports ouverts au total, K services identifiés, X CVE applicables, Y exploits Metasploit disponibles.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
nmap retourne tous les ports filtered |
Pas exécuté en root | Préfixer par sudo pour les scans SYN qui requièrent des paquets raw |
| Scan extrêmement lent | T1 ou T0 par défaut, ou cible avec rate-limiting | Augmenter à T4, ou changer de cible |
Pas de réponse de scanme.nmap.org |
Site temporairement down ou IP changée | Vérifier dig scanme.nmap.org, alternative : utiliser une cible HTB |
-O retourne « no exact OS match » |
Cible avec stack TCP/IP atypique ou trop peu de ports ouverts | Combiner avec -sV, parfois besoin d’au moins 1 port open + 1 port closed |
| Scripts NSE échouent | Scripts obsolètes après mise à jour Nmap | nmap --script-updatedb |
| Output corrompu sur grand scan | Disque plein, ou -vv qui sature le terminal |
Toujours utiliser -oA pour fichier persistent |
| Décale temps réel sans réponse pour UDP | Rate-limiting ICMP côté cible | Patience requise pour UDP, ou réduire le scope avec --top-ports 50 |
| Firewall bloque tout | -sS détecté par IDS moderne |
Tenter -sT (TCP connect, plus discret), ou techniques d’évasion |
| Permission denied sur output XML | Mauvais répertoire d’écriture | Toujours écrire dans ~/scans/, jamais dans / |
Adaptation au contexte ouest-africain
Pour les ESN qui auditent des PME : le workflow Nmap complet sur un /24 prend 1-3 heures et constitue le livrable phase 2 d’un audit. Documenter chaque phase avec son timestamp et son output. Charger 2 jours de prestations sur cette phase suffit pour 90 % des audits PME.
Pour les opérateurs et hébergeurs : Nmap est un outil de monitoring défensif aussi valuable qu’offensif. Scan régulier de tes propres plages d’IP publiques avec nmap -sV --script vuln te révèle les expositions accidentelles avant qu’un attaquant ne les exploite.
Pour les CSIRT/CERT régionaux (cf. cyber.sn, ANSI Côte d’Ivoire) : Nmap est la base d’une surveillance proactive d’infrastructures critiques nationales. Le combo Shodan + Nmap permet de cartographier les expositions critiques à l’échelle d’un pays.
Pour les bug bounty hunters : ne pas scanner agressivement par défaut un programme bounty sans lire le scope. Plusieurs programmes (HackerOne, Bugcrowd) interdisent les scans automatisés. Lire le scope avant chaque scan.
FAQ
Pourquoi Nmap est-il considéré comme illégal en France/Belgique ?
Pas illégal en soi, mais l’utilisation contre un système non autorisé est punie par les lois nationales (article 323-1 du code pénal français, loi belge sur la criminalité informatique). En Afrique de l’Ouest, idem : possession légale, utilisation non autorisée illégale.
Combien de temps pour scanner /16 (65 000 IPs) ?
Avec -sS -T4 --top-ports 100, environ 4-6 heures depuis une connexion fibre 100 Mbps. Avec scan complet -p-, 24-48 heures. Pour des opérations massives, utiliser masscan (10x plus rapide que Nmap au prix de moins de précision).
Nmap remplace-t-il masscan ou zmap ?
Non, c’est complémentaire. Nmap : précision et features (NSE, OS detection). Masscan/Zmap : vitesse pure (5 millions de pps possibles). En pratique : Masscan pour découvrir, Nmap pour caractériser.
Quelle différence entre -sS et -sT ?
-sS (SYN stealth) demande root et utilise des paquets raw. -sT (TCP connect) ne demande pas root mais établit le 3-way handshake complet, donc trace dans les logs applicatifs. Préférer -sS quand possible.
Comment Nmap détecte-t-il l’OS ?
Il envoie une série de probes (16 paquets différents) qui exploitent les nuances de l’implémentation TCP/IP de chaque OS. Il compare les réponses à une base de signatures (~5 000 fingerprints). Précision typique : 80-95 %.
Le NSE est-il sécurisé ?
Les scripts catégorie safe n’envoient que des probes inoffensifs. Les scripts intrusive, dos, exploit peuvent crash la cible — ne JAMAIS les utiliser sans autorisation écrite. Toujours lire la doc d’un script avant nmap --script-help <nom>.
Existe-t-il une interface graphique ?
Zenmap, fournie avec Nmap. Elle affiche le réseau en topologie cliquable, sauvegarde les scans, compare les résultats entre deux scans. Utile pour les rapports clients qui préfèrent du visuel.
Pour aller plus loin
- 🔝 Article cadre : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026
- ⬅️ Prérequis : Lab CEH Kali + DVWA + HTB · OSINT et reconnaissance
- ➡️ Suite logique : Exploitation web avec Burp Suite Community (à venir).
- ➡️ Exploitation système : Metasploit Framework (à venir).
- Documentation officielle : nmap.org — le livre Nmap est gratuit en ligne, 600+ pages écrites par Fyodor (créateur). scanme.nmap.org — cible officiellement autorisée pour pratique.
- Cheat sheets : SANS Nmap Cheat Sheet (PDF gratuit), HighOn.coffee Nmap reference.
- Suggestion d’entraînement : exécute le workflow complet de l’étape 9 sur Metasploitable 2, puis sur scanme.nmap.org. Compare les outputs : Metasploitable est riche en CVE, scanme est durci. C’est exactement la différence entre un audit interne et un audit perimeter.
Mots-clés secondaires : Nmap scan SYN UDP, Nmap NSE scripts vuln, évasion firewall Nmap, idle scan zombie, fragmentation paquets Nmap, détection OS Nmap, scanning networks CEH.