Aller au contenu
Sécurité medium

nmap : analyser l'exposition réseau

32 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 (version 7.99 en 2026) 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

Un scan de ports laisse des traces : il apparaît dans les journaux de la cible et déclenche les systèmes de détection d'intrusion. Contrairement à une simple consultation de site web, il constitue une tentative caractérisée d'obtenir des informations sur un système. Lisez l'encadré ci-dessous avant la première commande, il conditionne tout l'usage de cet outil.

nmap fait partie des outils de reconnaissance réseau, ceux qui construisent une cartographie avant toute analyse plus fine. Il occupe une position particulière : assez rapide pour balayer un sous-réseau entier, assez détaillé pour identifier une version de service précise. Les outils du tableau ne le remplacent pas, ils prennent le relais à un autre moment de l'enquête, une fois que vous savez quoi regarder.

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

Tout le fonctionnement de nmap tient dans un principe unique : il envoie des paquets réseau vers les cibles, observe les réponses ou leur absence, et en déduit l'état des ports. Un port qui répond SYN-ACK est ouvert, un port qui répond RST est fermé, un port qui ne répond rien est déclaré filtered. Cette troisième catégorie est la source de la plupart des mauvaises interprétations.

🧠 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

Toutes les commandes de ce guide découlent de cette forme. Les options se placent avant la cible, et la cible peut être une adresse IP, un nom d'hôte, une plage ou un fichier.

Fenêtre de terminal
nmap [OPTIONS] [CIBLE]

Le type de scan détermine quels paquets sont envoyés, donc à la fois la vitesse, la discrétion et les droits requis. Retenez surtout que -sS et -sU fabriquent leurs paquets eux-mêmes et exigent donc sudo, là où -sT s'appuie sur la pile TCP du système et fonctionne sans privilège.

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é parce qu'il ne va jamais au bout de la connexion : il envoie le premier paquet, lit la réponse, puis coupe. La cible n'établit donc pas de session applicative et, historiquement, n'inscrivait rien dans les journaux du service concerné. Les pare-feu et systèmes de détection modernes repèrent malgré tout ce comportement, la discrétion est relative.

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)

Sans option -p, nmap ne scanne pas tout : il se limite aux 1000 ports les plus courants de sa base interne. Un service qui écoute sur un port exotique passe donc inaperçu, d'où l'intérêt de -p- sur une cible unique quand l'exhaustivité compte.

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

Ces trois options vont au-delà du simple état des ports et coûtent bien plus cher en temps et en bruit réseau. -A ne fait rien de nouveau : il active en une fois -sV, -O, les scripts par défaut et le traceroute, ce qui en fait l'option la plus facilement repérée par un système de détection.

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 ne se contente pas d'accélérer : elle ajuste les délais d'attente entre les paquets et le nombre de sondes envoyées en parallèle. Aller trop vite a un coût de fiabilité, car un port dont la réponse arrive après l'expiration du délai sera compté comme filtré. La valeur par défaut est -T3.

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.

Sans export, un scan n'existe que dans le terminal, ce qui interdit toute comparaison ultérieure. Le format XML est celui que consomment les outils d'analyse et de reporting ; le format grepable tient une ligne par hôte, exploitable par un script shell. En pratique, -oA évite d'avoir à choisir.

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

nmap est packagé par toutes les distributions, la version des dépôts suffit pour les usages de ce guide. Vérifiez systématiquement le numéro obtenu avec nmap --version : les scripts NSE évoluent d'une version à l'autre, et une version ancienne peut ne pas connaître un script cité ici.

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 écrits en Lua, livrés avec l'outil. C'est ce qui fait passer nmap du statut de scanner de ports à celui d'outil d'audit : un script interroge le service découvert, teste une configuration, ou vérifie une vulnérabilité connue. La contrepartie est le niveau d'intrusion, très variable d'un script à l'autre, qui doit être évalué avant chaque exécution.

Chaque script appartient à une ou plusieurs catégories, et c'est la colonne « Risque » qui doit guider votre choix. Les catégories brute, exploit, dos et fuzzer modifient l'état de la cible ou peuvent l'interrompre : elles n'ont leur place que sur un système dont vous êtes propriétaire, jamais sur une production.

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é
malwareDétection de backdoorsFaible
broadcastDécouverte par broadcastFaible
fuzzerEnvoi de paquets malformésÉlevé
dosTest de déni de serviceTrès élevé
externalRequêtes vers des services tiersMoyen

L'option --script accepte un nom de script, un nom de catégorie ou un motif avec *, ce qui explique la variété des formes ci-dessous. Pensez aux guillemets dès qu'un motif contient une étoile, sinon le shell l'interprète comme un nom de fichier avant même que nmap la reçoive.

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

Ces cinq commandes couvrent les vérifications les plus demandées lors d'un audit : vulnérabilités connues, contenu exposé par un serveur web, qualité de la configuration TLS et méthodes d'authentification SSH acceptées. La dernière ne scanne rien, elle affiche la documentation d'un script avant que vous ne le lanciez.

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 patterns couvrent la grande majorité des scans réalisés au quotidien, de la simple découverte d'hôtes à l'audit de vulnérabilités. Chacun associe une formule générique et un exemple concret à adapter à votre cible autorisée.

Découvrir les ports ouverts sur une cible, le point de départ de toute analyse.

Fenêtre de terminal
# Formule
nmap <cible>
# Exemple
nmap 192.168.1.100
  • cible : adresse IP, nom d'hôte ou plage CIDR.

Scanner uniquement certains ports pour un résultat rapide et ciblé.

Fenêtre de terminal
# Formule
nmap -p <ports> <cible>
# Exemple
nmap -p 22,80,443,8080 192.168.1.100
  • -p : liste ou plage de ports à scanner.

Scanner les 65535 ports pour ne rien manquer.

Fenêtre de terminal
# Formule
nmap -p- <cible>
# Exemple
nmap -p- -T4 192.168.1.100

Très long sur un réseau complet : commencez plutôt par -F (fast scan) avant de cibler.

Identifier les versions exactes des services exposés.

Fenêtre de terminal
# Formule
nmap -sV <cible>
# Exemple
nmap -sV -p 22,80 192.168.1.100
  • -sV : interroge chaque service pour déterminer sa version, c'est la base du banner grabbing.

Identifier le système d'exploitation de la cible par empreinte TCP/IP.

Fenêtre de terminal
# Formule
nmap -O <cible>
# Exemple
sudo nmap -O 192.168.1.100

-O nécessite les droits root pour accéder aux raw sockets.

Collecter le maximum d'informations en une seule passe : OS, services, scripts, traceroute.

Fenêtre de terminal
# Formule
nmap -A <cible>
# Exemple
sudo nmap -A -T4 192.168.1.100

Bruyant et facilement détecté : commencez par un scan léger avant d'y recourir.

Scanner discrètement sans compléter les connexions TCP.

Fenêtre de terminal
# Formule
sudo nmap -sS <cible>
# Exemple
sudo nmap -sS -T2 192.168.1.100
  • -sS : scan SYN, semi-ouvert, rapide et plus discret qu'un scan complet.

Découvrir les services UDP : DNS, DHCP, SNMP.

Fenêtre de terminal
# Formule
sudo nmap -sU <cible>
# Exemple
sudo nmap -sU -p 53,67,161 192.168.1.100

Très lent : ciblez toujours les ports UDP courants plutôt que de tout scanner.

Trouver les hôtes actifs sans scanner les ports.

Fenêtre de terminal
# Formule
nmap -sn <réseau>
# Exemple
nmap -sn 192.168.1.0/24
  • -sn : ping scan, découverte d'hôtes uniquement, rapide et non intrusif.

Détecter les vulnérabilités connues via les scripts NSE.

Fenêtre de terminal
# Formule
nmap --script vuln <cible>
# Exemple
nmap --script vuln -p 22,80,443 192.168.1.100

Intrusif : à réserver strictement à vos propres systèmes.

Sauvegarder les résultats pour analyse et comparaison dans le temps.

Fenêtre de terminal
# Formule
nmap -oA <prefix> <cible>
# Exemple
nmap -oA scan-2025-01-28 192.168.1.100
  • -oA : génère les formats Normal, XML et Grepable en une passe.

Ajuster la vitesse du scan selon le contexte.

Fenêtre de terminal
# Formule
nmap -T<0-5> <cible>
# Exemple
nmap -T4 192.168.1.100
  • -T0 à -T5 : de paranoid (0) à insane (5). -T4 est le bon compromis rapidité/discrétion.

Ces erreurs reviennent constamment et peuvent avoir des conséquences juridiques ou rendre un scan inexploitable. Les connaître protège autant votre temps que votre responsabilité.

C'est le seul piège de cette liste dont les conséquences ne sont pas techniques. La commande ci-dessous n'a rien d'agressif en apparence, elle suffit pourtant à vous exposer.

Fenêtre de terminal
nmap entreprise-externe.com

Symptôme : alerte de sécurité, plainte juridique, blocage de votre IP.

Cause : scanner un réseau sans autorisation est illégal et assimilable à une attaque. Obtenez toujours une autorisation écrite avant de scanner quoi que ce soit.

Le piège est sournois : selon la version et les capacités du binaire, la commande peut ne pas échouer du tout et basculer discrètement sur un autre type de scan. Vous croyez alors avoir fait un scan furtif.

Fenêtre de terminal
nmap -sS 192.168.1.100

Symptôme : erreur requires root privileges, ou bascule silencieuse vers un scan TCP Connect.

Cause : le scan SYN a besoin d'un accès aux raw sockets, réservé à root.

Fenêtre de terminal
sudo nmap -sS 192.168.1.100

Deux options anodines prises séparément deviennent ingérables combinées. Un /16 représente 65 534 hôtes possibles, à multiplier par le nombre de ports.

Fenêtre de terminal
nmap -p- 192.168.0.0/16

Symptôme : un scan qui dure des heures, voire des jours.

Cause : 65535 ports multipliés par des milliers d'hôtes représentent des millions de tests.

Fenêtre de terminal
nmap -sn 192.168.0.0/16 | grep "up" && nmap -F <cibles>

Le scan UDP est d'une autre nature que le TCP, et l'oublier coûte des heures. Un port UDP fermé renvoie un message ICMP, mais un port ouvert reste le plus souvent muet, ce qui oblige nmap à attendre.

Fenêtre de terminal
nmap -sU 192.168.1.100

Symptôme : un scan extrêmement lent, qui se compte en heures.

Cause : UDP ne renvoie pas d'ACK ; nmap attend l'expiration de chaque timeout.

Fenêtre de terminal
sudo nmap -sU -p 53,67,123,161 192.168.1.100

Vous ignorez les ports marqués filtered.

Symptôme : vous manquez des services actifs situés derrière un pare-feu.

Cause : filtered signifie « pas de réponse » (filtrage), ce qui n'équivaut pas à un port fermé. Utilisez --reason pour comprendre, et recoupez avec différents types de scans.

Fenêtre de terminal
nmap --reason -sS -sA 192.168.1.100

Cumuler l'option la plus bavarde et le rythme le plus rapide revient à annoncer le scan à toute l'infrastructure de surveillance. C'est la combinaison qui fait bannir une adresse IP en quelques secondes.

Fenêtre de terminal
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 très rapide.

Fenêtre de terminal
nmap -sV -T3 cible.com

Le temps perdu ici n'a rien à voir avec le scan lui-même, il vient d'une étape préalable presque invisible. Sur un réseau sans serveur DNS interne réactif, chaque adresse déclenche une résolution inverse qui doit expirer.

Fenêtre de terminal
nmap 192.168.1.0/24

Symptôme : un scan lent à démarrer sur un grand réseau.

Cause : nmap tente de résoudre chaque IP en nom d'hôte.

Fenêtre de terminal
nmap -n 192.168.1.0/24

Vous vous fiez aveuglément à la sortie de -sV.

Symptôme : la version affichée ne correspond pas à la réalité.

Cause : un service peut masquer ou modifier sa bannière. Recoupez toujours avec d'autres outils comme telnet, curl ou nc.

Ce lab vous fait manipuler nmap sur des cibles autorisées (localhost et votre propre réseau). Comptez 20 minutes.

Le script suivant vérifie l'installation de nmap et prépare un dossier de résultats :

Fenêtre de terminal
# Scanner uniquement votre propre réseau
# Vérifier si nmap est installé
which nmap || echo "Installez nmap : sudo apt install nmap"
# Créer un dossier pour les résultats
mkdir -p ~/nmap-lab/results
cd ~/nmap-lab
# Vérifier les services locaux actifs
echo "=== Services locaux actifs ==="
ss -tlnp 2>/dev/null | head -20
echo "Lab prêt dans ~/nmap-lab"

Pour tout nettoyer à la fin : rm -rf ~/nmap-lab.

Suivez-les dans l'ordre : chacune ajoute une option à la précédente, du scan le plus simple à l'export exploitable. Comparez systématiquement la sortie de nmap avec celle de ss -tlnp obtenue plus haut, c'est le meilleur moyen de vérifier que vous lisez correctement les résultats.

  1. Scan basique d'un hôte, découvrez les ports ouverts de localhost : nmap localhost. Sans options, nmap scanne les 1000 ports les plus courants. Pour plus de détails : nmap -v localhost.

  2. Scan de ports spécifiques, ciblez uniquement 22, 80 et 443 : nmap -p 22,80,443 localhost. Cibler des ports précis réduit fortement le temps de scan.

  3. Détection des versions de services, identifiez les versions : nmap -sV localhost. Chaque port ouvert s'affiche avec son service et sa version exacte (ex. OpenSSH 9.6p1).

  4. Scan de découverte réseau, listez les hôtes actifs sans scanner les ports : nmap -sn 192.168.1.0/24. Adaptez la notation CIDR à votre réseau. Avec résolution DNS : nmap -sn -R 192.168.1.0/24.

  5. Exporter les résultats, scannez et archivez dans tous les formats : nmap -oA ~/nmap-lab/results/localhost localhost. Trois fichiers sont créés : .nmap, .xml, .gnmap.

Ces exercices vont du premier scan à l'audit de vulnérabilités. Toutes les cibles sont localhost ou votre réseau. Lisez l'énoncé, cherchez la commande, puis dépliez la solution.

Les trois premiers exercices portent sur la forme de base de la commande et sur les deux options que vous utiliserez le plus souvent, -p et -sV.

Exercice 1, Scan basique. Scannez localhost pour découvrir les ports ouverts.

Indice : la commande la plus simple, nmap <cible>.

Voir la solution
Fenêtre de terminal
nmap localhost

Sans options, nmap scanne les 1000 ports TCP les plus courants.

Exercice 2, Ports spécifiques. Scannez uniquement les ports 80, 443 et 8080 sur localhost.

Indice : -p suivi des numéros séparés par des virgules.

Voir la solution
Fenêtre de terminal
nmap -p 80,443,8080 localhost

-p cible des ports précis pour un scan rapide.

Exercice 3, Détection de services. Identifiez les versions des services sur les ports ouverts de localhost.

Indice : -sV interroge les services pour leur version.

Voir la solution
Fenêtre de terminal
nmap -sV localhost

-sV envoie des probes spécifiques pour identifier la version de chaque service.

On passe de l'hôte unique au réseau, et du résultat affiché au résultat archivé. Ces trois exercices combinent plusieurs options dans une même commande.

Exercice 4, Découverte réseau. Listez tous les hôtes actifs de votre réseau local, sans scanner les ports.

Indice : -sn réalise un ping scan.

Voir la solution
Fenêtre de terminal
nmap -sn 192.168.1.0/24

-sn est rapide et non intrusif, idéal pour cartographier un réseau.

Exercice 5, Export multi-format. Scannez localhost et exportez dans les formats normal, XML et grepable.

Indice : -oA génère trois fichiers avec le même préfixe.

Voir la solution
Fenêtre de terminal
nmap -oA scan-localhost localhost

-oA (All outputs) est pratique pour archiver et analyser les scans.

Exercice 6, Scan complet avec timing. Scannez tous les ports de localhost avec un timing agressif.

Indice : -p- pour tous les ports, -T4 pour le timing.

Voir la solution
Fenêtre de terminal
nmap -p- -T4 localhost

-p- est exhaustif mais long ; -T4 accélère sans être trop bruyant.

Ces deux exercices demandent des privilèges élevés ou activent des scripts. Ils produisent beaucoup plus de trafic que les précédents, d'où l'importance de rester sur localhost.

Exercice 7, Détection d'OS. Identifiez le système d'exploitation de localhost.

Indice : -O nécessite sudo pour les raw sockets.

Voir la solution
Fenêtre de terminal
sudo nmap -O localhost

-O utilise des signatures TCP/IP pour identifier l'OS.

Exercice 8, Scripts NSE de découverte. Utilisez les scripts NSE de découverte sur les ports 22 et 80 de localhost.

Indice : --script discovery lance les scripts de collecte d'informations.

Voir la solution
Fenêtre de terminal
nmap --script discovery -p 22,80 localhost

Les scripts NSE automatisent la collecte d'informations sur les services.

Dernier exercice, et le plus intrusif du lot. La catégorie vuln teste réellement des failles connues : ne la lancez que sur votre propre machine, jamais sur un serveur partagé même interne.

Exercice 9, Audit de vulnérabilités. Recherchez les vulnérabilités connues sur les ports web de localhost.

Indice : --script vuln lance les scripts de détection de vulnérabilités.

Voir la solution
Fenêtre de terminal
nmap --script vuln -p 80,443,8080 localhost

Les scripts vuln testent les CVE connues sur les services exposés.

Quand un scan échoue ou se comporte mal, ces méthodes de diagnostic et ces erreurs fréquentes couvrent la grande majorité des cas.

Ces options ne changent rien au scan lui-même, elles changent ce que nmap vous montre de son travail. --reason est la plus utile au quotidien : elle indique quel paquet a conduit à classer un port open, closed ou filtered, ce qui transforme un résultat en information exploitable.

Fenêtre de terminal
# Mode verbeux : progression en temps réel
nmap -v <cible>
# Mode très verbeux : détails complets de chaque étape
nmap -vv <cible>
# Comprendre pourquoi un port est open/closed/filtered
nmap --reason <cible>
# Voir les paquets envoyés et reçus
nmap -d <cible>
# Déboguer un script NSE
nmap --script-trace --script <script> <cible>

Ces quatre messages couvrent l'essentiel du support autour de nmap. Attention au deuxième : -Pn fait disparaître le symptôme en supposant l'hôte actif, mais il allonge d'autant le scan puisque tous les ports seront testés, y compris sur une machine réellement éteinte.

ErreurCause probableSolution
You requested a scan type which requires root privilegesScan SYN (-sS), OS (-O) ou UDP (-sU) sans sudoAjouter sudo devant la commande
Host seems downPare-feu bloquant l'ICMP, hôte éteint, ou mauvaise IPForcer le scan avec -Pn pour ignorer le ping
All 1000 scanned ports are filteredPare-feu strict, hôte protégé, ou mauvais réseauEssayer un ACK scan -sA ou ajuster --scan-delay
Scan taking too longRéseau trop grand, timing trop lent, trop de portsRéduire le périmètre, augmenter le timing, utiliser -F

À garder sous la main : la syntaxe générale, la sélection de ports, les types de scans et les options d'export les plus utilisées.

Trois façons de désigner ce qu'on scanne, de l'hôte unique au fichier de cibles. -iL accepte un mélange d'IP, de plages et de noms d'hôtes, à raison d'une entrée par ligne.

SyntaxeSignificationExemple
nmap <cible>Scan basique des 1000 ports courantsnmap 192.168.1.100
nmap <réseau>/24Scanner tout un sous-réseaunmap 192.168.1.0/24
nmap -iL fichier.txtLire les cibles depuis un fichiernmap -iL hosts.txt

Ces quatre formes se combinent avec n'importe quel type de scan. -F et -p- sont les deux extrêmes : 100 ports d'un côté, la totalité des 65535 de l'autre.

SyntaxeSignificationExemple
-p <ports>Ports spécifiques-p 22,80,443
-p <debut>-<fin>Plage de ports-p 1-1024
-p-Tous les 65535 portsnmap -p- localhost
-FFast scan (100 ports)nmap -F localhost

Un seul type de scan par commande. Repérez le sudo dans les exemples : il signale les modes qui fabriquent leurs propres paquets et exigent donc les privilèges nécessaires aux raw sockets.

SyntaxeSignificationExemple
-sSScan SYN (semi-ouvert, rapide)sudo nmap -sS localhost
-sTScan TCP Connect (complet)nmap -sT localhost
-sUScan UDPsudo nmap -sU -p 53 localhost
-snPing scan (découverte d'hôtes)nmap -sn 192.168.1.0/24

Ces options s'ajoutent à un type de scan, elles ne le remplacent pas. Elles allongent toutes la durée d'exécution, -A étant la plus coûteuse puisqu'elle active d'un coup la détection de version, celle de l'OS, les scripts par défaut et le traceroute.

SyntaxeSignificationExemple
-sVDétection des versions de servicesnmap -sV localhost
-ODétection du système d'exploitationsudo nmap -O localhost
-AScan 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

Les options les plus utiles au quotidien se trouvent ici. Deux d'entre elles font gagner un temps considérable sur un grand réseau : -n supprime la résolution DNS inverse, -Pn saute la phase de découverte d'hôtes quand vous savez déjà que la cible répond.

SyntaxeSignificationExemple
-T<0-5>Niveau de timing-T4 (agressif)
-nPas de résolution DNSnmap -n 192.168.1.0/24
--min-ratePaquets par seconde minimum--min-rate 1000
-oN <fichier>Export au format normal-oN scan.txt
-oX <fichier>Export au format XML-oX scan.xml
-oA <prefix>Export dans tous les formats-oA scan-2025
-PnIgnorer le ping (hôte « down »)nmap -Pn localhost
--reasonAfficher la raison du résultatnmap --reason localhost

Vous maîtrisez nmap quand vous pouvez cocher chacun de ces points sans hésiter :

  • Je sais scanner un hôte ou un réseau.
  • Je sais cibler des ports spécifiques.
  • Je sais détecter les versions de services.
  • Je sais détecter le système d'exploitation.
  • Je sais utiliser les scripts NSE.
  • Je sais exporter et documenter mes scans.
  • Je sais ajuster le timing selon le contexte.

Les questions portent uniquement sur ce qui vient d'être expliqué : types de scans, sélection de ports, catégories NSE et interprétation des résultats.

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

Les questions ci-dessous reviennent souvent sur nmap, en particulier autour du cadre légal, de la différence entre les états closed et filtered, et du choix du type de scan.

Nmap couvre à lui seul l'essentiel de la découverte réseau et de l'audit de sécurité : scans TCP et UDP, détection des services et du système, et plusieurs centaines de scripts NSE. Cette étendue a une contrepartie, chaque option choisie déplace le curseur entre exhaustivité, vitesse et discrétion, et c'est cet arbitrage qui distingue un scan utile d'un scan qui vous fait remarquer.

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 tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn