Nmap (Network Mapper) est l’outil de scanning réseau le plus utilisé au monde. Il permet de découvrir des hôtes, identifier les ports ouverts, détecter les services et leurs versions, et exécuter des scripts d’audit. Ce chapitre vous apprend à l’utiliser efficacement lors d’un audit ou d’un test d’intrusion.

Les types de scans

# SYN Scan (-sS) : le plus courant, furtif, nécessite root
sudo nmap -sS 192.168.1.0/24

# TCP Connect (-sT) : complet, sans root, laisse des traces dans les logs
nmap -sT cible.fr

# UDP Scan (-sU) : lent mais indispensable pour DNS, SNMP, NTP
sudo nmap -sU -p 53,161,123 cible.fr

# NULL, FIN, Xmas : contournement de certains firewalls
sudo nmap -sN cible.fr   # NULL (aucun flag)
sudo nmap -sF cible.fr   # FIN
sudo nmap -sX cible.fr   # Xmas (FIN+PSH+URG)

Découverte d’hôtes

# Ping sweep sur un réseau /24
nmap -sn 192.168.1.0/24

# Désactiver le ping (utile si ICMP bloqué)
nmap -Pn 10.0.0.1

# Scanner une plage d'IPs
nmap 10.0.0.1-50

# Depuis une liste de cibles
nmap -iL cibles.txt

Détection de services et versions (-sV)

# Détecter les services et leurs versions
nmap -sV 192.168.1.1

# Exemple de sortie :
# 22/tcp  open  ssh     OpenSSH 8.9p1 Ubuntu
# 80/tcp  open  http    Apache httpd 2.4.52
# 443/tcp open  ssl/http nginx 1.18.0
# 3306/tcp open mysql   MySQL 8.0.33

# Agressivité de la détection (0-9, défaut 7)
nmap -sV --version-intensity 9 192.168.1.1

Détection du système d’exploitation (-O)

sudo nmap -O cible.fr

# Combiner OS + services + traceroute + scripts
sudo nmap -A cible.fr

Scripts NSE (Nmap Scripting Engine)

NSE permet d’automatiser des vérifications de sécurité via des scripts Lua.

# Lister les scripts disponibles
ls /usr/share/nmap/scripts/ | grep http

# Script de détection de vulnérabilités
nmap --script vuln 192.168.1.1

# Vérifier les en-têtes HTTP de sécurité
nmap --script http-security-headers cible.fr

# Tester les CVE SMB (EternalBlue)
nmap --script smb-vuln-ms17-010 192.168.1.1

# Brute force SSH
nmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1

# Enumération SNMP
nmap -sU --script snmp-info -p 161 192.168.1.1

Gestion du timing et de la discrétion

# Niveaux de timing (-T0 à -T5)
# T0 (paranoïd) : très lent, maximum de discrétion
# T3 (normal) : par défaut
# T5 (insane) : très rapide, bruyant

sudo nmap -T1 --scan-delay 5s 192.168.1.0/24   # Furtif
sudo nmap -T4 192.168.1.0/24                    # Rapide (lab)

# Fragmenter les paquets pour contourner les IDS
sudo nmap -f -sS cible.fr

# Décoys : masquer l'IP source
sudo nmap -D RND:10 192.168.1.1

Formats de sortie

# Normal + XML + Grepable simultanément
sudo nmap -sV -oA scan_complet 192.168.1.0/24

# Lire un scan XML avec nmap
nmap --resume scan_complet.xml

# Convertir en HTML
xsltproc scan_complet.xml -o rapport.html
Points clés :

  • Le SYN scan (-sS) est le plus courant : rapide, semi-furtif, nécessite root
  • -sV détecte les versions des services, -O le système d’exploitation
  • Les scripts NSE automatisent la détection de vulnérabilités (–script vuln)
  • Les niveaux de timing (-T) permettent d’adapter discrétion et vitesse
SEE ALL Add a note
YOU
Add your Comment