Tutoriel Nmap : scanner les réseaux de zéro à la découverte

Apprenez Nmap à partir de zéro avec des exemples pratiques de commandes. Maîtrisez la découverte d'hôtes, le scan de ports, la détection de services, le fingerprinting d'OS et les scripts NSE dans ce tutoriel pratique pour débutants.
- Offense
- Detection
- Skills
- Mindset
- Confidence
TL;DR
Nmap est l'outil de scan réseau le plus utilisé en cybersécurité, employé par plus de 80 % des testeurs d'intrusion pour la reconnaissance. Ce tutoriel guide les débutants à travers chaque technique essentielle de Nmap : découverte d'hôtes avec des balayages ping, scans TCP connect et SYN stealth, scan UDP, détection de versions de services, fingerprinting de système d'exploitation et automatisation avec le Nmap Scripting Engine (NSE). Chaque concept inclut des commandes terminal réelles que vous pouvez exécuter dans votre propre lab.
La mission devait être routinière. Elena, une testeuse d'intrusion junior lors de sa première évaluation professionnelle, était assise dans une salle de conférence avec son ordinateur portable connecté au réseau invité du client. Son chef d'équipe l'avait briefée sur le périmètre : un sous-réseau /24, 254 hôtes possibles, énumération complète des ports. Elle avait étudié la méthodologie en formation, lu la documentation et réussi son examen de certification. Maintenant, elle devait trouver les machines actives, déterminer ce qu'elles exécutaient et documenter chaque service exposé avant que l'équipe offensive ne puisse commencer l'exploitation.
Elle ouvrit un terminal et tapa sa première commande Nmap. En quelques secondes, les résultats commencèrent à défiler. Hôte 10.0.1.12 : ports 22, 80, 443 ouverts. Hôte 10.0.1.35 : ports 21, 139, 445 ouverts. Un partage de fichiers SMB sur un serveur non patché. Une application web exécutant une version obsolète d'Apache. Un port de base de données exposé à tout le sous-réseau. En 20 minutes, Elena avait cartographié la surface d'attaque qui guiderait toute la mission. Le réseau lui avait dit tout ce qu'elle avait besoin de savoir. Il lui avait suffi de poser les bonnes questions.
C'est ce que fait Nmap. Il traduit le concept abstrait de sécurité réseau en données concrètes et exploitables. Chaque port ouvert est une porte. Chaque service en exécution est une conversation en attente. Nmap vous aide à tous les trouver.
Ce que Nmap fait vraiment
Nmap, abréviation de Network Mapper, est un outil open source créé par Gordon Lyon en 1997. Il envoie des paquets spécialement conçus aux hôtes cibles et analyse les réponses pour déterminer quels hôtes sont actifs, quels ports sont ouverts, quels services sont en exécution, et souvent quel système d'exploitation la cible utilise.
Contrairement aux outils de surveillance passive comme Wireshark, Nmap est un scanner actif. Il génère du trafic et observe la réaction de la cible. Cela le rend indispensable pour les tests d'intrusion, l'audit réseau et les évaluations de sécurité, mais cela signifie aussi que vous devez avoir l'autorisation avant de scanner tout réseau que vous ne possédez pas.
Installez Nmap depuis nmap.org ou via le gestionnaire de paquets de votre système. Sur Kali Linux, il est préinstallé. Sur Ubuntu ou Debian, exécutez :
sudo apt install nmap
Sur macOS avec Homebrew :
brew install nmap
Vérifiez l'installation :
nmap --version
Vous devriez voir la version 7.90 ou ultérieure. Avec Nmap installé, vous êtes prêt à commencer à scanner.
Découverte d'hôtes : trouver les cibles actives
Avant de scanner les ports, vous devez savoir quels hôtes sur le réseau sont réellement actifs. Scanner les 65 535 ports sur 254 adresses quand seules 12 machines existent gaspille du temps et génère du bruit inutile. La découverte d'hôtes réduit le périmètre.
La technique de découverte la plus simple est un balayage ping, qui envoie des requêtes d'écho ICMP à chaque adresse dans une plage et note lesquelles répondent :
nmap -sn 192.168.1.0/24
Le flag -sn indique à Nmap de sauter le scan de ports et de vérifier uniquement si les hôtes sont actifs. La sortie affiche chaque hôte répondant avec son adresse IP et, quand disponible, son nom d'hôte et son adresse MAC. Sur un réseau domestique typique, cela se termine en moins de 5 secondes.
Certains hôtes bloquent l'ICMP. Quand le ping échoue, Nmap utilise des techniques supplémentaires. La commande suivante combine la découverte ARP (efficace sur les réseaux locaux), les sondes TCP SYN vers le port 443, les sondes TCP ACK vers le port 80 et les requêtes de timestamp ICMP :
sudo nmap -sn -PE -PS443 -PA80 -PP 192.168.1.0/24
Le préfixe sudo est important ici. Plusieurs méthodes de découverte nécessitent l'accès aux raw sockets, que seuls les comptes root ou administrateur peuvent utiliser.
Scan TCP : scans Connect et SYN Stealth
Une fois que vous savez quels hôtes sont actifs, le scan de ports révèle quels services écoutent les connexions. Le scan TCP est l'approche la plus courante car TCP alimente la majorité des services réseau : serveurs web, SSH, bases de données, messagerie et plus encore.
Scan TCP Connect
Le scan TCP connect est la méthode la plus directe. Nmap complète un handshake à trois voies complet (SYN, SYN-ACK, ACK) avec chaque port. Si la connexion réussit, le port est ouvert. Si la cible renvoie un paquet RST, le port est fermé.
nmap -sT 192.168.1.10
Ce scan ne nécessite aucun privilège spécial car il utilise le mécanisme de connexion normal du système d'exploitation. Le compromis est la visibilité : une connexion TCP complète apparaît dans les journaux serveur, les enregistrements de pare-feu et les alertes IDS/IPS. Si la discrétion est importante, utilisez un scan SYN à la place.
Scan SYN Stealth
Le scan SYN, aussi appelé scan half-open, est le scan par défaut de Nmap quand vous l'exécutez avec des privilèges root. Il envoie un paquet SYN et attend une réponse sans compléter le handshake :
sudo nmap -sS 192.168.1.10
Si la cible répond avec SYN-ACK, le port est ouvert. Nmap envoie immédiatement un RST pour interrompre la connexion avant qu'elle ne soit complètement établie. Si la cible répond avec RST, le port est fermé. S'il n'y a pas de réponse après plusieurs retransmissions, le port est marqué comme filtré, signifiant qu'un pare-feu ou filtre de paquets bloque probablement le trafic.
Un scan SYN par défaut vérifie 1 000 des ports TCP les plus couramment utilisés. Pour scanner les 65 535 ports :
sudo nmap -sS -p- 192.168.1.10
Le flag -p- signifie « tous les ports ». Vous pouvez aussi spécifier des plages personnalisées. Scannez uniquement les ports web et base de données principaux :
sudo nmap -sS -p 21,22,80,443,3306,5432,8080,8443 192.168.1.10
Scan UDP : le protocole oublié
Beaucoup d'évaluations de sécurité se concentrent exclusivement sur TCP et passent à côté de services critiques fonctionnant sur UDP. DNS (port 53), SNMP (port 161), DHCP (port 67/68) et NTP (port 123) reposent tous sur UDP. Un service SNMP vulnérable avec des community strings par défaut peut exposer toute la configuration réseau à un attaquant.
Le scan UDP est fondamentalement plus lent que TCP car il n'y a pas de handshake. Nmap envoie un paquet UDP au port cible. Si le port est fermé, la cible renvoie un message ICMP « port unreachable ». Si le port est ouvert, il peut répondre avec des données, ou ne rien envoyer du tout. Ce silence fait du scan UDP un jeu d'attente des délais d'expiration.
sudo nmap -sU --top-ports 100 192.168.1.10
Le flag --top-ports 100 limite le scan aux 100 ports UDP les plus couramment utilisés, ce qui réduit considérablement le temps de scan. Un scan UDP complet de 65 535 ports peut prendre plus d'une heure sur un seul hôte. Pour des évaluations approfondies, combinez TCP et UDP :
sudo nmap -sS -sU -p T:1-1000,U:53,67,68,123,161,162,500 192.168.1.10
Cela scanne les 1 000 ports TCP principaux et des ports UDP spécifiques à haute valeur en une seule passe.
Détection de versions de services
Savoir que le port 8080 est ouvert vous dit très peu. Savoir qu'il exécute Apache Tomcat 9.0.43 vous dit exactement quels CVE vérifier. La détection de versions transforme une liste de ports ouverts en un inventaire de logiciels que vous pouvez rechercher, tester et rapporter.
sudo nmap -sV 192.168.1.10
Le flag -sV déclenche les sondes de service de Nmap. Pour chaque port ouvert, Nmap envoie une série de requêtes spécifiques au protocole et compare les réponses à une base de données de plus de 11 000 signatures de services. La sortie inclut le nom du service, le numéro de version et parfois des détails supplémentaires comme la distribution de l'OS ou le hostname configuré.
Vous pouvez contrôler l'intensité de la détection. Le niveau par défaut (7 sur 9) équilibre précision et vitesse. Pour une précision maximale sur des cibles critiques :
sudo nmap -sV --version-intensity 9 192.168.1.10
Pour des scans plus rapides lors de la reconnaissance initiale, réduisez l'intensité :
sudo nmap -sV --version-light 192.168.1.10
La détection de versions est le moment où Nmap passe de la reconnaissance au renseignement exploitable. Un scanner de vulnérabilités croise la chaîne de version exacte avec des bases de données comme la National Vulnerability Database (NVD). Trouver OpenSSH 7.4 sur un serveur en 2026 vous indique immédiatement que ce système a des années de retard sur les correctifs de sécurité.
Détection et fingerprinting d'OS
Nmap identifie les systèmes d'exploitation en analysant les différences subtiles dans l'implémentation des piles TCP/IP. Windows, Linux, macOS et les équipements réseau répondent tous aux paquets spécialement conçus de manières légèrement différentes. Ces différences forment une empreinte que Nmap compare à sa base de données.
sudo nmap -O 192.168.1.10
La détection d'OS fonctionne mieux quand au moins un port ouvert et un port fermé existent sur la cible. Sans les deux, Nmap ne peut pas envoyer la gamme complète de paquets sondes nécessaires pour un fingerprinting précis. La sortie inclut la famille d'OS, l'estimation de version et un pourcentage de confiance.
Pour un scan initial complet combinant scan SYN, détection de versions et détection d'OS :
sudo nmap -sS -sV -O 192.168.1.10
Ou utilisez le flag -A, qui active la détection d'OS, la détection de versions, le scan de scripts et le traceroute en une seule commande :
sudo nmap -A 192.168.1.10
Le flag -A est appelé mode « agressif ». Il génère un trafic réseau important et prend plus de temps, utilisez-le donc sur des cibles ciblées plutôt que sur des sous-réseaux entiers.
Le Nmap Scripting Engine
Le Nmap Scripting Engine (NSE) étend Nmap d'un scanner de ports à une plateforme complète de reconnaissance. Écrit en Lua, NSE comprend plus de 600 scripts organisés en catégories : auth pour les tests d'authentification, vuln pour la détection de vulnérabilités, discovery pour l'énumération réseau, brute pour les tests de mots de passe et plus encore.
Exécutez l'ensemble de scripts par défaut contre une cible :
sudo nmap -sC 192.168.1.10
Le flag -sC est équivalent à --script=default et exécute les scripts considérés sûrs et utiles pour la plupart des évaluations. Les scripts par défaut incluent le fingerprinting de clés SSH, l'extraction de titres HTTP, l'analyse de certificats SSL et l'énumération de partages SMB.
Ciblez des catégories de vulnérabilités spécifiques :
sudo nmap --script vuln 192.168.1.10
Cela exécute tous les scripts de la catégorie vuln, vérifiant les vulnérabilités connues dans les services détectés. Soyez conscient que certains scripts de vulnérabilité exploitent activement des faiblesses (comme tester des identifiants par défaut), consultez donc la documentation des scripts avant de les exécuter contre des systèmes de production.
Exécutez des scripts individuels pour des vérifications ciblées. Testez la vulnérabilité EternalBlue SMB (MS17-010) :
sudo nmap --script smb-vuln-ms17-010 -p 445 192.168.1.10
Vérifiez la configuration SSL/TLS sur les serveurs web :
sudo nmap --script ssl-enum-ciphers -p 443 192.168.1.10
Le SANS Institute recommande de combiner NSE avec la détection de versions pour une couverture maximale :
sudo nmap -sV -sC --script vuln 192.168.1.10
Vous pouvez explorer la liste complète des scripts disponibles sur nmap.org/nsedoc.
Formats de sortie : sauvegarder vos résultats
Les évaluations professionnelles produisent des preuves. La sortie brute du terminal est difficile à analyser, rechercher et inclure dans les rapports. Nmap supporte plusieurs formats de sortie pour différents usages.
Sortie normale dans un fichier texte :
sudo nmap -sS -sV -oN scan_results.txt 192.168.1.10
Sortie XML pour l'intégration avec d'autres outils (Metasploit, scanners de vulnérabilités, parseurs personnalisés) :
sudo nmap -sS -sV -oX scan_results.xml 192.168.1.10
Sortie grepable pour l'analyse rapide en ligne de commande :
sudo nmap -sS -sV -oG scan_results.gnmap 192.168.1.10
Sauvegarder dans les trois formats simultanément :
sudo nmap -sS -sV -oA scan_results 192.168.1.10
Le flag -oA crée trois fichiers avec le nom de base que vous spécifiez : .nmap (normal), .xml (XML) et .gnmap (grepable). Utilisez toujours -oA lors d'évaluations réelles. Vous ne savez jamais quel format vous aurez besoin plus tard, et rescanner la cible pour obtenir un format de sortie différent gaspille du temps et génère du bruit réseau supplémentaire.
Assembler le tout : un flux de travail pratique
Un flux de travail Nmap structuré progresse à travers quatre phases, chacune s'appuyant sur les résultats précédents.
Phase 1 : Découverte d'hôtes. Balayez la plage cible pour trouver les hôtes actifs.
sudo nmap -sn 10.0.1.0/24 -oA discovery
Phase 2 : Scan rapide de ports. Scannez les hôtes découverts pour les ports les plus courants.
sudo nmap -sS --top-ports 1000 -iL targets.txt -oA quick_scan
Phase 3 : Énumération approfondie. Exécutez des scans complets de ports avec détection de versions et d'OS sur les cibles intéressantes.
sudo nmap -sS -sV -O -p- -iL priority_targets.txt -oA deep_scan
Phase 4 : NSE ciblé. Exécutez des scripts de vulnérabilité et d'énumération contre des services spécifiques.
sudo nmap -sV --script vuln,auth -p 21,22,80,443,445 -iL priority_targets.txt -oA vuln_scan
Cette approche par phases est efficace et méthodique. Vous évitez de passer des heures sur des scans complets de ports d'hôtes non pertinents, et vous construisez une image complète qui documente chaque découverte pour votre rapport.
Temporisation et performance
Nmap fournit des modèles de temporisation de T0 (paranoïaque) à T5 (insensé). Le défaut est T3 (normal). Lors d'évaluations internes où la discrétion est moins critique, augmentez la vitesse :
sudo nmap -T4 -sS -sV -p- 192.168.1.10
Lors d'évaluations externes où l'évasion d'IDS compte, ralentissez le scan :
sudo nmap -T2 -sS -sV 10.0.1.10
Le modèle T4 est le plus couramment utilisé dans les évaluations professionnelles. Il fournit une augmentation significative de la vitesse sans submerger les réseaux cibles. Évitez T5 sur les réseaux de production car la temporisation agressive peut causer des pertes de paquets et produire des résultats inexacts.
Erreurs courantes à éviter
Les débutants font souvent les mêmes erreurs en commençant avec Nmap. Exécuter des scans de tous les ports sans commencer par la découverte d'hôtes gaspille du temps et de la bande passante. Oublier le préfixe sudo fait que Nmap se rabat sur les scans TCP connect au lieu des scans SYN plus rapides. Scanner sans sauvegarder la sortie signifie perdre des résultats que vous ne pouvez pas reproduire. Ignorer UDP laisse un angle mort que les attaquants n'ignoreront pas. Utiliser une temporisation agressive (T5) sur des réseaux encombrés produit des résultats peu fiables car les délais d'expiration génèrent des faux négatifs.
L'erreur la plus significative est de traiter Nmap comme un outil pointer-cliquer plutôt que de comprendre ce que chaque type de scan fait au niveau du paquet. Quand vous comprenez qu'un scan SYN fonctionne en manipulant le handshake TCP, vous pouvez prendre des décisions éclairées sur quel type de scan convient à chaque situation. Quand vous comprenez que le scan UDP repose sur les réponses ICMP des ports fermés, vous comprenez pourquoi il prend autant de temps et comment l'optimiser.
Quoi pratiquer ensuite
Nmap est un outil qui s'apprend en l'utilisant. Montez un lab maison avec des machines virtuelles exécutant différents systèmes d'exploitation et services. Scannez-les systématiquement. Comparez les résultats de scans SYN aux résultats de scans connect et observez les différences dans vos captures Wireshark. Exécutez la détection de versions contre des services connus et vérifiez la précision. Explorez les scripts NSE en lisant leur documentation et en les testant contre des machines intentionnellement vulnérables comme Metasploitable 2 ou DVWA.
Apprenez la ligne de commande Linux si ce n'est pas déjà fait, car toute la puissance de Nmap vient de son enchaînement avec d'autres outils en ligne de commande. Redirigez la sortie grepable vers awk pour extraire des champs spécifiques. Utilisez diff pour comparer les résultats de scan dans le temps et détecter de nouveaux services. Alimentez la sortie XML dans des frameworks comme Metasploit pour les flux de travail d'exploitation.
Elena termina sa première mission avec un rapport de 47 pages documentant chaque hôte, chaque port ouvert, chaque version de service obsolète et chaque vulnérabilité que l'équipe avait exploitée. Nmap avait fourni la base de tout cela. L'outil n'avait pas nécessité des mois d'étude ni de compétences de programmation avancées. Il avait nécessité un terminal, une cible qu'elle avait la permission de scanner et la volonté de taper des commandes et de lire la sortie. Le réseau vous dit tout. Il suffit de savoir comment écouter.
Fondateur d'Unihackers
Une décennie à défendre des compagnies aériennes, des SOC et des organisations internationales
Daute a fondé Unihackers après une décennie passée à défendre des compagnies aériennes, des SOC managés et des organisations internationales. Il est Associate C|CISO et voix régulière sur l'IA et la cybersécurité dans les médias internationaux. Silver Winner aux Cyber Security Excellence Awards 2021. Il enseigne comme il aurait voulu apprendre lui-même : sans bruit, sur ce que les attaquants font vraiment, pour former des professionnels utiles dès le premier jour.
Voir le profilPrêt à lancer votre carrière en cybersécurité ?
Rejoignez des centaines de professionnels qui se sont reconvertis en cybersécurité avec notre programme pratique.

