ITSkillsCenter
Cybersécurité

Scan réseau avancé avec Nmap — tutoriel CEH 2026

14 min de lecture

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


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.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité