Aller au contenu
Sécurité medium

Maîtriser Nmap : Scanner réseau et audit de sécurité

10 min de lecture

Quand on doit découvrir les machines actives sur un réseau, identifier les ports ouverts sur un serveur, ou auditer la sécurité d’une infrastructure, nmap est l’outil de référence. Créé en 1997 par Gordon Lyon (Fyodor), ce scanner réseau open source permet d’explorer, analyser et sécuriser des infrastructures de toute taille.

  • Découvrir les hôtes actifs sur un réseau
  • Scanner les ports et identifier les services
  • Détecter le système d’exploitation des cibles
  • Utiliser les scripts NSE pour l’audit de sécurité
  • Exporter les résultats pour documentation et comparaison

nmap fait partie des outils de reconnaissance réseau. Chaque outil a sa spécialité :

OutilSpécialitéQuand l’utiliser
nmapDécouverte hôtes/ports/servicesCartographie réseau, audit sécurité
masscanScan très rapideGrands réseaux (millions d’IP)
netcatConnexion manuelleTest ponctuel d’un service
tcpdumpCapture de paquetsAnalyse du trafic en temps réel
wiresharkAnalyse protocolaireDébogage réseau approfondi
niktoScan vulnérabilités webAudit serveurs HTTP

Quand utiliser nmap vs masscan ?

Situationnmapmasscan
Scan d’un serveur✅ Détails completsOverkill
Scan réseau /24✅ Parfait
Scan Internet entier❌ Trop lent✅ Conçu pour
Détection de services-sV❌ Limité
Scripts personnalisés✅ NSE
Détection d’OS-O

Workflow typique d’audit :

Fenêtre de terminal
# 1. Découverte des hôtes actifs (rapide)
nmap -sn 192.168.1.0/24
# 2. Scan des ports courants sur les hôtes trouvés
nmap -F -oA scan-initial 192.168.1.10-50
# 3. Scan approfondi sur les cibles intéressantes
nmap -sV -sC -O -oA scan-detail 192.168.1.42
# 4. Recherche de vulnérabilités
nmap --script vuln -p 80,443 192.168.1.42

🧠 Modèle mental — Comment fonctionne nmap

nmap = Définir la cible → Choisir le type de scan → Analyser les résultats

Modèle mental nmap : Cible (IP/réseau) → Type de scan (SYN/TCP/UDP) → Découverte (ports/services/OS)

Points clés

  • nmap envoie des paquets réseau pour découvrir hôtes, ports et services
  • Le scan SYN (-sS) est le plus courant : rapide et discret
  • Le scan TCP Connect (-sT) complète la connexion : plus visible mais fiable
  • Le scan UDP (-sU) est lent mais détecte DNS, DHCP, SNMP
  • L'option -A combine : détection OS, services, scripts et traceroute
  • -T0 à -T5 contrôle la vitesse (T4 = bon compromis rapidité/discrétion)

Règles d'or

1
Toujours avoir une autorisation avant de scanner Scanner sans autorisation est illégal et peut être considéré comme une attaque
2
Commencer par un scan léger puis approfondir Un scan -A ou -p- sur un grand réseau peut prendre des heures et déclencher des alertes
3
Exporter les résultats pour comparaison -oA génère tous les formats : permet de comparer l'état du réseau dans le temps

Vocabulaire essentiel

-sS
Scan SYN (semi-ouvert, rapide)
-sT
Scan TCP Connect (complet)
-sU
Scan UDP
-p 22,80,443
Ports spécifiques
-p-
Tous les 65535 ports
-A
Scan agressif (OS + services + scripts)
📚 Pour aller plus loin — 6 options avancées
-sV
Détection des versions de services
-O
Détection du système d'exploitation
-sn
Ping scan (découverte hôtes sans scan ports)
--script
Exécuter des scripts NSE
-T4
Timing agressif (rapide)
-oA
Exporter dans tous les formats

nmap envoie des paquets réseau vers les cibles, analyse les réponses (ou leur absence), et en déduit l’état des ports et les services qui tournent.

Fenêtre de terminal
nmap [OPTIONS] [CIBLE]
ScanOptionUsageVitesse
SYN-sSScan standard (semi-ouvert)Rapide
TCP Connect-sTConnexion complèteMoyen
UDP-sUServices UDP (DNS, DHCP)Lent
Ping-snDécouverte hôtes uniquementTrès rapide

Le scan SYN (-sS) est le plus utilisé :

Fenêtre de terminal
# Scan SYN (nécessite root) - rapide et discret
sudo nmap -sS 192.168.1.100
# Scan TCP Connect - pas besoin de root, mais plus lent
nmap -sT 192.168.1.100

Différence technique :

  • SYN : envoie SYN, reçoit SYN-ACK, envoie RST (pas de connexion complète)
  • TCP Connect : établit une vraie connexion TCP (3-way handshake complet)
SyntaxeSignificationExemple
-p NPort N seul-p 22 → port SSH
-p N,M,PPorts N, M et P-p 22,80,443
-p N-MDe N à M-p 1-1024 → ports privilégiés
-p-Tous les 65535 portsExhaustif mais lent
-FFast (100 ports courants)Rapide
Fenêtre de terminal
# Détection des versions de services
nmap -sV 192.168.1.100
# Détection du système d'exploitation
sudo nmap -O 192.168.1.100
# Scan "agressif" : OS + services + scripts + traceroute
sudo nmap -A 192.168.1.100

L’option -T contrôle l’agressivité du scan :

NiveauNomUsage
-T0ParanoidÉvitement IDS extrême
-T1SneakyÉvitement IDS
-T2PoliteCharge réseau réduite
-T3NormalPar défaut
-T4AggressiveRéseaux rapides et fiables
-T5InsaneTrès rapide, risque de rater des ports

Recommandation : -T4 pour les audits internes, -T2 ou -T3 pour rester discret.

Fenêtre de terminal
# Format normal (lisible)
nmap -oN scan.txt 192.168.1.100
# Format XML (pour outils d'analyse)
nmap -oX scan.xml 192.168.1.100
# Format grepable (pour scripts)
nmap -oG scan.gnmap 192.168.1.100
# Tous les formats en une fois
nmap -oA scan-2026-01-28 192.168.1.100
Fenêtre de terminal
sudo apt update && sudo apt install nmap
nmap --version

Le NSE permet d’automatiser des tâches avancées grâce à des scripts en Lua.

CatégorieUsageRisque
safeScripts non intrusifsAucun
defaultExécutés avec -sCFaible
discoveryCollecte d’informationsFaible
versionDétection de versionsFaible
authTests d’authentificationMoyen
vulnDétection de vulnérabilitésMoyen
bruteForce bruteÉlevé
exploitExploitationTrès élevé
intrusiveScripts potentiellement disruptifsÉlevé
Fenêtre de terminal
# Scripts par défaut (safe + version)
nmap -sC 192.168.1.100
# Scripts d'une catégorie
nmap --script discovery 192.168.1.100
# Script spécifique
nmap --script http-title -p 80 192.168.1.100
# Plusieurs scripts
nmap --script "http-*" -p 80,443 192.168.1.100
# Scripts avec arguments
nmap --script http-brute --script-args userdb=users.txt -p 80 192.168.1.100
Fenêtre de terminal
# Recherche de vulnérabilités
nmap --script vuln -p 80,443 192.168.1.100
# Énumération HTTP
nmap --script http-enum -p 80,443 192.168.1.100
# Détection SSL/TLS
nmap --script ssl-enum-ciphers -p 443 192.168.1.100
# Informations SSH
nmap --script ssh-auth-methods -p 22 192.168.1.100
# Découvrir les scripts disponibles
nmap --script-help "*ssh*"

Ces recettes couvrent les cas d'usage les plus fréquents. Cliquez sur un pattern pour voir la formule complète et un exemple prêt à copier.

Scan basique Base

Découvrir les ports ouverts sur une cible

nmap 192.168.1.100
Formule nmap <cible>
Exemple
nmap 192.168.1.100
Paramètres
  • cible — IP, hostname, ou plage CIDR
Ports spécifiques Base

Scanner uniquement certains ports

nmap -p 22,80,443,8080 192.168.1.100
Formule nmap -p <ports> <cible>
Exemple
nmap -p 22,80,443,8080 192.168.1.100
Paramètres
  • ports — Liste ou plage de ports
  • cible — Hôte cible
Tous les ports Inter.

Scanner les 65535 ports

nmap -p- -T4 192.168.1.100
Formule nmap -p- <cible>
Exemple
nmap -p- -T4 192.168.1.100
Paramètres
  • cible — Hôte cible
Éviter si : Très long sur un réseau complet
Alternative : Commencer par -F (fast) puis cibler
Détection de services Base

Identifier les versions des services

nmap -sV -p 22,80 192.168.1.100
Formule nmap -sV <cible>
Exemple
nmap -sV -p 22,80 192.168.1.100
Paramètres
  • cible — Hôte cible
Détection d'OS Inter.

Identifier le système d'exploitation

sudo nmap -O 192.168.1.100
Formule nmap -O <cible>
Exemple
sudo nmap -O 192.168.1.100
Paramètres
  • cible — Hôte cible
Éviter si : Nécessite les droits root
Scan agressif Inter.

Collecter le maximum d'informations

sudo nmap -A -T4 192.168.1.100
Formule nmap -A <cible>
Exemple
sudo nmap -A -T4 192.168.1.100
Paramètres
  • cible — Hôte cible
Éviter si : Bruyant et facilement détecté
Alternative : Commencer par un scan léger
Scan furtif SYN Inter.

Scanner discrètement sans compléter les connexions

sudo nmap -sS -T2 192.168.1.100
Formule sudo nmap -sS <cible>
Exemple
sudo nmap -sS -T2 192.168.1.100
Paramètres
  • cible — Hôte cible
Scan UDP Inter.

Découvrir les services UDP (DNS, DHCP, SNMP)

sudo nmap -sU -p 53,67,161 192.168.1.100
Formule sudo nmap -sU <cible>
Exemple
sudo nmap -sU -p 53,67,161 192.168.1.100
Paramètres
  • cible — Hôte cible
Éviter si : Très lent, cibler les ports UDP courants
Découverte réseau Base

Trouver les hôtes actifs sans scanner les ports

nmap -sn 192.168.1.0/24
Formule nmap -sn <réseau>
Exemple
nmap -sn 192.168.1.0/24
Paramètres
  • réseau — Plage CIDR du réseau
Scan de vulnérabilités Avancé

Détecter les vulnérabilités connues

nmap --script vuln -p 22,80,443 192.168.1.100
Formule nmap --script vuln <cible>
Exemple
nmap --script vuln -p 22,80,443 192.168.1.100
Paramètres
  • cible — Hôte cible
Éviter si : Intrusif, uniquement sur vos propres systèmes
Export multi-format Base

Sauvegarder les résultats pour analyse

nmap -oA scan-2025-01-28 192.168.1.100
Formule nmap -oA <prefix> <cible>
Exemple
nmap -oA scan-2025-01-28 192.168.1.100
Paramètres
  • prefix — Préfixe des fichiers de sortie
  • cible — Hôte cible
Contrôle de timing Base

Ajuster la vitesse du scan

nmap -T4 192.168.1.100
Formule nmap -T<0-5> <cible>
Exemple
nmap -T4 192.168.1.100
Paramètres
  • niveau — 0=paranoid, 1=sneaky, 2=polite, 3=normal, 4=aggressive, 5=insane
  • cible — Hôte cible

Ces erreurs courantes peuvent faire perdre du temps ou causer des dégâts. Les pièges les plus critiques sont affichés en premier.

Scanner sans autorisation

nmap entreprise-externe.com

Danger
Le piège : nmap entreprise-externe.com
Symptôme : Alerte de sécurité, plainte juridique, blocage IP
Cause : Scanner un réseau sans autorisation est illégal
Correction : Toujours obtenir une autorisation écrite avant de scanner
Scan SYN sans root

nmap -sS 192.168.1.100

Attention
Le piège : nmap -sS 192.168.1.100
Symptôme : Erreur "requires root privileges" ou scan TCP Connect utilisé
Cause : Le scan SYN nécessite l'accès aux raw sockets (root)
Correction : Utiliser sudo pour les scans SYN, OS et certains scripts
sudo nmap -sS 192.168.1.100
Scan -p- sur un grand réseau

nmap -p- 192.168.0.0/16

Attention
Le piège : nmap -p- 192.168.0.0/16
Symptôme : Scan qui dure des heures voire des jours
Cause : 65535 ports × milliers d'hôtes = millions de tests
Correction : Commencer par -sn pour découverte, puis -F, puis cibler
nmap -sn 192.168.0.0/16 | grep "up" && nmap -F <cibles>
Scan UDP sans cibler les ports

nmap -sU 192.168.1.100

Attention
Le piège : nmap -sU 192.168.1.100
Symptôme : Scan extrêmement lent (heures)
Cause : UDP n'envoie pas d'ACK, nmap attend les timeouts
Correction : Cibler les ports UDP courants : 53, 67, 123, 161, 500
sudo nmap -sU -p 53,67,123,161 192.168.1.100
Scan -A déclenche les alertes

nmap -A -T5 cible.com

Attention
Le piège : nmap -A -T5 cible.com
Symptôme : IP bloquée, alertes IDS/IPS, scan interrompu
Cause : -A est bruyant (scripts, OS, traceroute) et -T5 est rapide
Correction : Utiliser -T2 ou -T3, scanner par étapes
nmap -sV -T3 cible.com
Interpréter "filtered" comme fermé

Ignorer les ports "filtered"

Info
Le piège : Ignorer les ports "filtered"
Symptôme : Manquer des services derrière un pare-feu
Cause : Filtered = pas de réponse (firewall), pas nécessairement fermé
Correction : Utiliser --reason pour comprendre, tester avec différents scans
nmap --reason -sS -sA 192.168.1.100
Résolution DNS ralentit le scan

nmap 192.168.1.0/24

Info
Le piège : nmap 192.168.1.0/24
Symptôme : Scan lent à démarrer sur un grand réseau
Cause : Nmap tente de résoudre chaque IP en hostname
Correction : Utiliser -n pour désactiver la résolution DNS
nmap -n 192.168.1.0/24
Versions de services incorrectes

Se fier aveuglément à -sV

Info
Le piège : Se fier aveuglément à -sV
Symptôme : Version affichée ne correspond pas à la réalité
Cause : Les services peuvent masquer ou modifier leurs bannières
Correction : Corroborer avec d'autres outils (telnet, curl, nc)

🔧 Quand ça ne marche pas

Méthodes de debug

Mode verbeux

Afficher la progression en temps réel

nmap -v <cible>

Mode très verbeux

Détails complets sur chaque étape

nmap -vv <cible>

Raison des résultats

Comprendre pourquoi un port est open/closed/filtered

nmap --reason <cible>

Debug des paquets

Voir les paquets envoyés/reçus

nmap -d <cible>

Test de script

Débugger un script NSE

nmap --script-trace --script <script> <cible>

Erreurs fréquentes

You requested a scan type which requires root privileges
Causes possibles
  • Scan SYN (-sS), OS (-O), ou UDP (-sU) sans sudo
Diagnostic
  1. Vérifier le type de scan demandé
  2. Les scans raw socket nécessitent root
✅ Solution

Ajouter sudo devant la commande

Vérifier avec :
sudo nmap -sS localhost
Host seems down
Causes possibles
  • Pare-feu bloque ICMP
  • Hôte réellement éteint
  • Mauvaise IP
Diagnostic
  1. ping <cible>
  2. Vérifier l'IP
  3. Tester -Pn pour ignorer le ping
✅ Solution

Utiliser -Pn pour forcer le scan même sans réponse ping

Vérifier avec :
nmap -Pn <cible>
All 1000 scanned ports are filtered
Causes possibles
  • Pare-feu strict
  • Hôte protégé
  • Mauvais réseau
Diagnostic
  1. Vérifier la connectivité
  2. Tester un autre type de scan
✅ Solution

Essayer -sA (ACK scan) ou --scan-delay pour contourner

Vérifier avec :
nmap -sA <cible>
Scan taking too long
Causes possibles
  • Réseau trop grand
  • Timing trop lent
  • Trop de ports
Diagnostic
  1. Vérifier la taille de la plage
  2. Vérifier le timing (-T)
✅ Solution

Réduire le scope, augmenter le timing, utiliser -F

Vérifier avec :
nmap -T4 -F <cible>

📋 Cheatsheet nmap

📝 Syntaxe :

nmap <cible> Scan basique des 1000 ports courants
nmap <réseau>/24 Scanner tout un sous-réseau
nmap -iL fichier.txt Lire les cibles depuis un fichier

🚀 Commandes types :

Scan basique Découvrir les ports ouverts sur une cible
nmap 192.168.1.100
Ports spécifiques Scanner uniquement certains ports
nmap -p 22,80,443,8080 192.168.1.100
Détection de services Identifier les versions des services
nmap -sV -p 22,80 192.168.1.100
Découverte réseau Trouver les hôtes actifs sans scanner les ports
nmap -sn 192.168.1.0/24
Export multi-format Sauvegarder les résultats pour analyse
nmap -oA scan-2025-01-28 192.168.1.100

⚙️ Options

-p <ports> Ports spécifiques -p 22,80,443
-p <debut>-<fin> Plage de ports -p 1-1024
-p- Tous les 65535 ports nmap -p- localhost
-F Fast scan (100 ports) nmap -F localhost
-sS Scan SYN (semi-ouvert, rapide) sudo nmap -sS localhost
-sT Scan TCP Connect (complet) nmap -sT localhost
-sU Scan UDP sudo nmap -sU -p 53 localhost
-sn Ping scan (découverte hôtes) nmap -sn 192.168.1.0/24
-sV Détection des versions de services nmap -sV localhost
-O Détection du système d'exploitation sudo nmap -O localhost
-A Scan agressif (OS + services + scripts) sudo nmap -A localhost
--script <nom> Exécuter un script NSE --script http-title
--script <catégorie> Scripts d'une catégorie --script vuln
--script-help Aide sur les scripts nmap --script-help "*ssh*"
-T<0-5> Niveau de timing -T4 (agressif)
-n Pas de résolution DNS nmap -n 192.168.1.0/24
--min-rate Paquets/seconde minimum --min-rate 1000
-oN <fichier> Export format normal -oN scan.txt
-oX <fichier> Export format XML -oX scan.xml
-oG <fichier> Export format grepable -oG scan.gnmap
-oA <prefix> Export tous formats -oA scan-2025
-v / -vv Mode verbeux nmap -vv localhost
-Pn Ignorer le ping (hôte down) nmap -Pn localhost
--reason Afficher la raison du résultat nmap --reason localhost

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

10 questions
8 min.
80% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Nmap est l’outil incontournable pour la découverte réseau et l’audit de sécurité. Sa polyvalence (scans TCP/UDP, détection OS/services, scripts NSE) en fait un allié puissant pour cartographier et sécuriser vos infrastructures.

Points clés à retenir :

  1. Toujours avoir une autorisation avant de scanner
  2. Commencer simple (-sn, -F) puis approfondir
  3. -sV pour les services, -O pour l’OS, -A pour tout
  4. -T4 pour la rapidité, -T2 pour la discrétion
  5. -oA pour exporter dans tous les formats
  6. —script vuln pour l’audit de vulnérabilités

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.