Nmap : guide pratique de la découverte réseau et du scan de ports
Aide-mémoire pratique pour cartographier un réseau et auditer les ports ouverts sans prise de tête.
Nmap (Network Mapper) est l'outil incontournable quand il s'agit d'explorer un réseau, de cartographier ses machines ou de vérifier quels ports et services sont réellement ouverts.
Rappel de bon sens : Scanner un réseau sans autorisation explicite est illégal (article 323-1 du Code pénal). Réservez vos scans à votre propre réseau local, vos machines de test (CTF) ou dans le cadre d'un audit formel.
Comment fonctionne le scan sous le capot ?
Pour chaque port testé, Nmap envoie des paquets réseau ciblés et analyse la réponse pour déterminer son état :
- Open (Ouvert) : Une application écoute et accepte la connexion.
- Closed (Fermé) : La machine répond mais aucun service ne tourne sur ce port (paquet TCP RST).
- Filtered (Filtré) : Un pare-feu bloque ou avale le paquet sans répondre.
Les options indispensables au quotidien
| Option | Rôle | Exemple | Remarques |
|---|---|---|---|
-sS |
SYN Stealth Scan (demi-connexion) | sudo nmap -sS 192.168.1.1 |
Le mode standard avec les droits root. Rapide et discret (n'établit pas de connexion complète). |
-sT |
TCP Connect Scan | nmap -sT 192.168.1.1 |
Utilisé sans droits root. Établit la négociation TCP complète (3-way handshake). |
-sU |
Scan UDP | sudo nmap -sU 192.168.1.1 |
Beaucoup plus lent que TCP mais indispensable pour auditer DNS (53), DHCP (67), SNMP (161), WireGuard (51820). |
-sn |
Ping scan / Découverte d'hôtes | nmap -sn 192.168.1.0/24 |
Ne scanne aucun port : repère simplement les machines allumées sur le sous-réseau. |
-sV |
Détection de version des services | nmap -sV -p 80,443 192.168.1.10 |
Analyse la bannière pour identifier le logiciel exact (ex: Apache 2.4.52, OpenSSH 8.9). |
-O |
Détection de l'OS | sudo nmap -O 192.168.1.10 |
Analyse les spécificités de la pile TCP/IP pour déduire le système d'exploitation. |
-sC |
Scripts par défaut (NSE) | nmap -sC 192.168.1.10 |
Lance une série de scripts sûrs du Nmap Scripting Engine pour collecter plus d'infos. |
-A |
Scan complet tout-en-un | nmap -A 192.168.1.10 |
Combine -sV, -O, -sC et traceroute. |
-p |
Choix des ports | nmap -p 22,80,443 192.168.1.10 |
-p- pour scanner la totalité des 65 535 ports ; -F pour le top 100 rapide. |
-T0 à -T5 |
Vitesse du scan | nmap -T4 192.168.1.10 |
-T4 est le réglage recommandé pour un réseau stable. -T2 pour être plus discret. |
-oA |
Export multi-formats | nmap -oA mon_audit 192.168.1.10 |
Génère simultanément les fichiers texte (.nmap), XML (.xml) et grepable (.gnmap). |
Quelques exemples concrets
1. Voir qui est connecté sur le réseau local
Pour lister rapidement les machines actives sans déclencher d'alarmes :
nmap -sn 192.168.1.0/24
2. Audit standard d'un serveur
Scan rapide des ports habituels avec identification des services et scripts de base :
sudo nmap -sS -sV -sC -T4 192.168.1.50 -oA scan_initial
3. Scan exhaustif de tous les ports
Pour s'assurer qu'aucun conteneur ou service de debug ne tourne sur un port obscur :
sudo nmap -p- -sV --min-rate 1000 -T4 192.168.1.50 -oN scan_complet.txt
4. Recherche de failles connues avec les scripts NSE
Nmap intègre des scripts capables de tester la vulnérabilité des services détectés :
nmap --script=vuln -p 80,443,445 192.168.1.50
En résumé
- Avec les droits root, la base par défaut est toujours
-sS -T4. - L'option
-sVcouplée à-sCfait gagner un temps précieux pour comprendre ce qui tourne réellement derrière un port. - Sauvegardez toujours vos scans avec
-oA[nom]`` pour pouvoir analyser les résultats à tête reposée ou les comparer plus tard ;)