Guide complet de Nmap pour le pentest : commandes essentielles et détection de vulnérabilités
Nmap (Network Mapper) est l'outil de référence pour la découverte et l'audit de réseaux. Que vous soyez analyste red‑team, étudiant en cybersécurité ou administrateur réseau, maîtriser ses options vous permet d’identifier rapidement des hôtes, des ports ouverts, des services vulnérables et même le système d’exploitation cible. Ce guide présente, de façon pédagogique et pratique, les commandes indispensables, les techniques d’évasion, les formats de sortie et les bonnes pratiques de défense, toujours dans le respect du cadre légal (lab autorisé, CTF, engagement signé).
Installation et notions de base
Installation
- Debian/Ubuntu :
sudo apt-get update && sudo apt-get install nmap - Fedora/CentOS :
sudo dnf install nmap - macOS (Homebrew) :
brew install nmap - Windows : télécharger le programme d'installation officiel.
Notions de base
La syntaxe générale est nmap [options] cible. La cible peut être une adresse IP, un réseau (192.168.1.0/24) ou un nom d’hôte. Nmap possède trois niveaux de privilèges : utilisateur, root (ou administrateur) et privileged (pour les scans SYN). Certaines options (ex. -sS) requièrent les droits administrateur.
Découverte d’hôtes
Avant de scanner les ports, il faut identifier les machines actives. Le ping scan (-sn) envoie des requêtes ICMP, ARP et TCP SYN sur le port 443.
nmap -sn 10.0.0.0/24
Résultat typique :
Host: 10.0.0.12 (srv-web) Status: Up
Scan des ports
TCP connect (-sT)
Utilise l’appel système connect(). C’est le mode le plus simple mais le plus bruyant.
nmap -sT -p 1-1000 10.0.0.12
SYN stealth (-sS)
Envoie un SYN et attend le SYN‑ACK sans établir la connexion complète. Moins détectable, nécessite les droits root.
sudo nmap -sS -p 1-65535 10.0.0.12
UDP (-sU)
Les services UDP sont souvent négligés. Le scan est plus lent car il repose sur les réponses ICMP « port unreachable ».
sudo nmap -sU -p 53,161,500 10.0.0.12
Détection d’OS et de versions
Fingerprinting d’OS (-O)
Nmap compare les TTL, les tailles de fenêtre et les options TCP pour deviner le système d’exploitation.
sudo nmap -O 10.0.0.12
Détection de version (-sV)
Interroge les bannières des services et utilise une base de signatures pour identifier versions et modules.
nmap -sV -p 22,80,443 10.0.0.12
Scripts NSE (Nmap Scripting Engine)
Les scripts permettent d’automatiser des tests de vulnérabilité. Ils sont classés par catégories : vuln, auth, discovery, etc.
Vulnérabilités générales
nmap --script vuln 10.0.0.12
Base de données vulners
Le script vulners interroge la base vulners.com et associe les versions détectées aux CVE.
nmap -sV --script vulners 10.0.0.12
Enumération HTTP
nmap --script http-enum -p 80,8080 10.0.0.12
Vulnérabilités SMB
nmap --script smb-vuln* -p 445 10.0.0.12
Techniques d’évasion de pare‑feu
- Fragmentation (
-f) : divise les paquets en fragments afin de contourner certains IDS. - Longueur de données (
--data-length) : ajoute du remplissage aléatoire. - Port source (
--source-port) : utilise un port « autorisé » (ex. 53) pour masquer le trafic. - Décoys (
--decoys) : envoie des scans depuis plusieurs adresses IP factices.
Exemple combiné :
sudo nmap -sS -f --data-length 50 \
--source-port 53 --decoys 192.168.1.100,192.168.1.101 \
-p 22,80 10.0.0.12
Formats de sortie
-oN: texte brut lisible.-oX: XML, exploitable par des outils d’analyse.-oG: greppable, idéal pour les pipelines.
Exemple :
nmap -sV -oX scan.xml 10.0.0.12
Tableau récapitulatif des options
| Catégorie | Option | Description |
|---|---|---|
| Découverte | -sn | Ping scan, aucune analyse de ports. |
| Ports TCP | -sT | TCP connect (full handshake). |
| Ports TCP | -sS | SYN stealth, nécessite root. |
| Ports UDP | -sU | Scan UDP, plus lent. |
| OS | -O | Fingerprinting du système d’exploitation. |
| Version | -sV | Détection des versions de services. |
| Scripting | --script vuln | Exécution de tous les scripts de la catégorie vuln. |
| Evasion | -f | Fragmentation des paquets. |
| Evasion | --decoys | Ajoute des adresses IP factices. |
| Sortie | -oX | Export XML. |
| Sortie | -oG | Export greppable. |
Détection et défense
Un administrateur doit pouvoir repérer un scan Nmap afin de déclencher les mesures de défense.
- Signaux dans les logs : multiples SYN sans ACK, paquets ICMP « port unreachable », flux provenant de ports inhabituels.
- IDS/IPS : Snort, Suricata et Zeek possèdent des règles
ET SCAN NMAPqui déclenchent des alertes dès la première série de paquets SYN. - Honeypots : les systèmes leurre (ex. Cowrie) enregistrent les tentatives de scan et offrent des indicateurs précieux.
Contre‑mesures simples :
- Limiter le taux de connexion (
iptables -m limit). - Bloquer les IP qui envoient plus de X SYN par seconde.
- Activer la détection de scans dans le firewall (
--syn).
Erreurs fréquentes
- Oublier
sudopour les scans SYN ou UDP → résultats incomplets. - Scanner un réseau trop large sans filtrer (
-T4agressif) → surcharge du réseau. - Confondre
-p-(tous les ports) avec-p 1-65535→ le premier nécessite-p-sans espace. - Ignorer les messages d’avertissement de
Too many open files→ augmenterulimit -n. - Ne pas spécifier le protocole lorsqu’on utilise
--script→ le script ne s’exécute pas sur le bon port.
Conclusion – éthique et légalité
« Nmap n’est qu’un outil ; c’est l’intention de son utilisateur qui détermine la légalité de son emploi. » – Gordon Lyon (Fyodor)
Utiliser Nmap dans un cadre autorisé (lab interne, CTF, contrat de test d’intrusion signé) vous permet de découvrir des failles avant qu’un adversaire ne le fasse. Respectez toujours les règles d’engagement, informez les équipes de défense et documentez chaque étape. En combinant une connaissance fine des options de scan avec des mesures de détection et de réponse, vous transformez une simple découverte en un processus d’amélioration continue de la posture de sécurité.
>_ À propos de l'auteur
Trésor — KadoHackLabs
Cybersécurité · IA locale · Automatisation
Je documente la cybersécurité offensive, l'IA locale et l'automatisation. Tous mes outils et guides sont open-source sur GitHub — et pour passer vraiment à la pratique, j'ai condensé la méthode dans un pack d'apprentissage pas à pas.
Ressources open-source
- RedTeaming_CheatSheet
Aide-mémoire de pentest : toutes les commandes essentielles. - AdversarySim-AI
Assistant IA purple team avec Sliver C2 et LLM locaux (Ollama). - aisec
Suite d'outils de sécurité pilotés par IA, experts par classe, local-first. - guide-wireshark
Guide complet en français sur l'analyse de paquets, de l'OSI aux CTF.
Profil complet : github.com/kadohack12 · Boutique : whop.com/KadoHackLabs
Commentaires
Enregistrer un commentaire