Aide-mémoire Nmap
Référence complète des commandes pour le scan réseau
De la découverte d'hôtes de base aux scripts NSE avancés — toutes les commandes dont vous avez besoin
📑 Navigation rapide
Qu'est-ce que Nmap ?
Nmap (Network Mapper) est un outil gratuit et open source pour la découverte réseau et l'audit de sécurité. Créé par Gordon Lyon (Fyodor) en 1997, il est devenu le standard de l'industrie pour le scan réseau, utilisé par les professionnels de la sécurité, les administrateurs système et les pentesters dans le monde entier.
Nmap utilise des paquets IP bruts pour déterminer les hôtes disponibles, les services, les systèmes d'exploitation, les configurations de pare-feu, et des dizaines d'autres caractéristiques. Il fonctionne sur tous les principaux systèmes d'exploitation et les packages officiels sont disponibles sur nmap.org.
📦 Installation
Debian/Ubuntu/Kali
sudo apt install nmap
RHEL/CentOS/Fedora
sudo dnf install nmap
macOS (Homebrew)
brew install nmap
Windows
Download from nmap.org/download
🎯 Commandes de scan basiques
| Commande | Description |
|---|---|
| nmap <target> | Scanner un hôte unique (défaut : 1000 ports principaux) |
| nmap 192.168.1.1-254 | Scanner une plage d'IP |
| nmap 192.168.1.0/24 | Scanner un sous-réseau entier (notation CIDR) |
| nmap -iL targets.txt | Scanner les cibles depuis un fichier |
| nmap --exclude 192.168.1.1 | Exclure des hôtes spécifiques du scan |
| nmap --excludefile exclude.txt | Exclure les hôtes listés dans un fichier |
🔎 Découverte d'hôtes (scan ping)
| Option | Description | Exemple |
|---|---|---|
| -sn | Scan ping uniquement (sans scan de ports) | nmap -sn 192.168.1.0/24 |
| -Pn | Ignorer la découverte d'hôtes (traiter tous comme en ligne) | nmap -Pn <target> |
| -PS | Ping TCP SYN sur les ports spécifiés | nmap -PS22,80,443 <target> |
| -PA | Ping TCP ACK | nmap -PA80,443 <target> |
| -PU | Ping UDP | nmap -PU53 <target> |
| -PE | Ping ICMP echo | nmap -PE <target> |
| -PP | Ping ICMP timestamp | nmap -PP <target> |
| -PM | Ping ICMP netmask | nmap -PM <target> |
| -PR | Ping ARP (réseau local uniquement) | nmap -PR 192.168.1.0/24 |
💡 Conseil pro
Utilisez -sn pour des balayages réseau rapides sans déclencher la détection de scan de ports. Combinez avec -PR sur les réseaux locaux pour une découverte ARP plus rapide.
🔌 Techniques de scan de ports
| Option | Type de scan | Description |
|---|---|---|
| -sS | TCP SYN (furtif) | Scan semi-ouvert, rapide et furtif (nécessite root) |
| -sT | TCP Connect | Connexion TCP complète (root non requis) |
| -sU | Scan UDP | Scanner les ports UDP (plus lent que TCP) |
| -sA | TCP ACK | Cartographier les règles de pare-feu (filtré vs non filtré) |
| -sW | TCP Window | Comme ACK mais détecte les ports ouverts via la taille de fenêtre |
| -sN | TCP Null | Aucun flag défini (évite certains pare-feu) |
| -sF | TCP FIN | Seul le flag FIN défini |
| -sX | TCP Xmas | Flags FIN, PSH, URG définis |
| -sM | TCP Maimon | Sonde FIN/ACK |
| -sI | Idle/Zombie | Scan furtif utilisant un hôte zombie |
🎚️ Spécification des ports
| Option | Description | Exemple |
|---|---|---|
| -p 80 | Scanner un port unique | nmap -p 80 <target> |
| -p 80,443,8080 | Scanner des ports spécifiques | nmap -p 80,443,8080 <target> |
| -p 1-1000 | Scanner une plage de ports | nmap -p 1-1000 <target> |
| -p- | Scanner les 65535 ports | nmap -p- <target> |
| -p U:53,T:80 | Spécifier les ports UDP et TCP | nmap -p U:53,T:80,443 <target> |
| --top-ports N | Scanner les N ports les plus courants | nmap --top-ports 100 <target> |
| -F | Scan rapide (100 ports principaux) | nmap -F <target> |
| -r | Scanner les ports séquentiellement | nmap -r <target> |
🔍 Détection de services et versions
| Option | Description |
|---|---|
| -sV | Détecter les versions des services sur les ports ouverts |
| --version-intensity 0-9 | Définir l'intensité du scan de version (0=léger, 9=toutes les sondes) |
| --version-light | Scan de version léger (intensité 2) |
| --version-all | Essayer toutes les sondes (intensité 9) |
| -A | Scan agressif : -sV -O -sC --traceroute |
📋 Exemple : détection de services complète
nmap -sV --version-all -p 22,80,443,3306,8080 <target>
💻 Détection d'OS
| Option | Description |
|---|---|
| -O | Activer la détection d'OS |
| --osscan-limit | Tenter la détection d'OS uniquement sur les cibles prometteuses |
| --osscan-guess | Deviner l'OS plus agressivement |
| --max-os-tries N | Limiter les tentatives de détection d'OS par cible |
📋 Exemple : détection d'OS avec devinette agressive
sudo nmap -O --osscan-guess <target>
📜 Nmap Scripting Engine (NSE)
NSE contient des centaines de scripts pour la détection de vulnérabilités, le brute forcing, la découverte, et plus. Les scripts sont situés dans /usr/share/nmap/scripts/ sur la plupart des systèmes Linux.
| Option | Description |
|---|---|
| -sC | Exécuter les scripts par défaut (équivalent à --script=default) |
| --script=<name> | Exécuter un ou plusieurs scripts spécifiques |
| --script=<category> | Exécuter tous les scripts d'une catégorie |
| --script-args=<args> | Fournir des arguments aux scripts |
| --script-updatedb | Mettre à jour la base de données des scripts |
| --script-help=<name> | Afficher l'aide d'un script |
Catégories de scripts
Détection de vulnérabilités
Exploitation active
Attaques par force brute
Scripts non intrusifs
Découverte de services
Vérifications d'authentification
Scripts sûrs standard
Peut faire crasher les services
Exemples de scripts NSE courants
# Scan de vulnérabilitésnmap --script vuln <target># Énumération HTTPnmap --script http-enum -p 80,443 <target># Vérification de vulnérabilités SMBnmap --script smb-vuln* -p 445 <target># Transfert de zone DNSnmap --script dns-zone-transfer -p 53 <target># Force brute SSHnmap --script ssh-brute -p 22 <target># Analyse SSL/TLSnmap --script ssl-enum-ciphers -p 443 <target># Vérification de connexion anonyme FTPnmap --script ftp-anon -p 21 <target># Énumération MySQLnmap --script mysql-info -p 3306 <target>
⚡ Timing et performance
Templates de timing
| Option | Nom | Cas d'usage |
|---|---|---|
| -T0 | Paranoid | Évasion IDS, extrêmement lent |
| -T1 | Sneaky | Évasion IDS, lent |
| -T2 | Polite | Réduire la charge réseau |
| -T3 | Normal | Timing par défaut |
| -T4 | Aggressive | Scan rapide sur réseaux fiables |
| -T5 | Insane | Très rapide, peut manquer des ports |
📄 Formats de sortie
| Option | Format | Description |
|---|---|---|
| -oN file.txt | Normal | Sortie lisible par l'humain |
| -oX file.xml | XML | XML lisible par machine |
| -oG file.gnmap | Grepable | Facile à grep et parser |
| -oA basename | Tous les formats | Sortie dans tous les formats (.nmap, .xml, .gnmap) |
💡 Conseil pro
Utilisez toujours -oA pour sauvegarder les résultats dans tous les formats. Cela vous donne de la flexibilité pour le reporting (normal), l'automatisation (XML), et les recherches rapides (grepable).
🛡️ Évasion de pare-feu et IDS
| Option | Description |
|---|---|
| -f | Fragmenter les paquets (8 octets par fragment) |
| --mtu N | Définir un MTU personnalisé (doit être multiple de 8) |
| -D decoy1,decoy2,ME | Utiliser des adresses leurres (ME = votre vraie IP) |
| -S <spoofed_ip> | Usurper l'adresse source |
| -g <port> | Utiliser un port source spécifique |
| --data-length N | Ajouter des données aléatoires aux paquets |
| --randomize-hosts | Randomiser l'ordre des hôtes cibles |
| --spoof-mac <mac> | Usurper l'adresse MAC (0 pour aléatoire) |
🔥 Combinaisons de scans courantes
# Balayage réseau rapidenmap -sn 192.168.1.0/24# Scan de services standardnmap -sV -sC -p- <target># Scan complet (services + OS + scripts)nmap -A -T4 <target># Scan rapide des ports principauxnmap -F -T4 <target># Scan furtif avec détection de servicesnmap -sS -sV -O -T4 <target># Scan UDP des ports courantssudo nmap -sU --top-ports 20 <target># Scan de vulnérabilitésnmap --script vuln -sV <target># Énumération de serveur webnmap -sV --script=http-enum,http-headers,http-methods -p 80,443,8080 <target>
📊 Comprendre les états des ports
open
Application acceptant activement des connexions
closed
Port accessible mais aucune application en écoute
filtered
Pare-feu bloquant, impossible de déterminer l'état
unfiltered
Accessible, mais open/closed inconnu (scan ACK)
open|filtered
Open ou filtered, impossible de déterminer (UDP)
closed|filtered
Closed ou filtered, impossible de déterminer
📚 Ressources supplémentaires
- Manuel officiel Nmap — Référence complète des commandes
- Documentation des scripts NSE — Tous les scripts disponibles
- Livre Nmap Network Scanning — Livre en ligne gratuit par Fyodor
- Dépôt GitHub Nmap — Code source et issues
🎯 Aide-mémoire Nmap terminé !
Vous disposez maintenant d'une référence complète pour l'outil de scan réseau le plus puissant en cybersécurité. De la découverte basique à l'évasion avancée, ces commandes sont utilisées quotidiennement par les professionnels de la sécurité dans le monde entier.
Prêt à scanner votre prochaine cible !