Cybersécurité

Tutoriel : Scanner les vulnérabilités avec Nmap

10 دقائق للقراءة

Pourquoi Nmap reste l’outil n°1 d’audit réseau ?

Depuis 1997, Nmap est le standard absolu pour cartographier un réseau. Gratuit, open source, présent sur tous les Kali Linux, il fait ce qu’aucun outil GUI ne fait aussi rapidement : vous donner en 2 minutes la liste exacte des ports ouverts, services et versions sur 254 machines. Apprendre 10 commandes Nmap permet à un admin sénégalais de détecter 80 % des erreurs courantes (ports oubliés ouverts sur Internet, services obsolètes, partages SMB exposés, certificats SSL expirés) sans aucun outil payant.

Nmap : l’outil incontournable du scanner de vulnerabilites

Nmap (Network Mapper) est l’outil de scan réseau le plus utilise au monde par les professionnels de la sécurité. Gratuit et open source, il permet de découvrir les hotes actifs, les ports ouverts, les services en cours d’exécution et les vulnerabilites potentielles sur un réseau. Que vous securisiez le réseau d’une PME a Dakar ou que vous auditiez un serveur VPS hebergeant votre site WordPress, Nmap est votre premier outil de diagnostic.

Important : ne scannez JAMAIS un réseau ou un système sans autorisation ecrite prealable. Le scan non autorise est illegal au Sénégal (loi 2008-11 sur la cybercriminalite). Ce guide est destiné aux administrateurs système et professionnels de sécurité travaillant sur leurs propres infrastructures.

Installation de Nmap

Sur Windows

# Télécharger l'installateur depuis nmap.org
# L'installation inclut Zenmap (interface graphique) et Npcap

# Vérifier l'installation
nmap --version
# Nmap 7.94 ( https://nmap.org )

Sur Linux (Kali, Ubuntu, Debian)

# Sur Ubuntu/Debian
sudo apt update && sudo apt install nmap -y

# Sur Kali Linux (pre-installé)
nmap --version

# Installer les scripts NSE supplementaires
sudo apt install nmap-scripts -y

Les types de scan fondamentaux

Scan de découverte d’hotes (Ping Scan)

Identifiez quels appareils sont actifs sur votre réseau local :

# Découvrir tous les hotes actifs sur le réseau local
nmap -sn 192.168.1.0/24

# Résultat type :
# Nmap scan report for 192.168.1.1 (routeur)
# Host is up (0.0010s latency).
# Nmap scan report for 192.168.1.15 (PC comptable)
# Host is up (0.0030s latency).
# Nmap scan report for 192.168.1.42 (imprimante)
# Host is up (0.0050s latency).

# Découverte avec ARP (plus fiable sur réseau local)
nmap -sn -PR 192.168.1.0/24

# Sauvegarder l'inventaire en fichier
nmap -sn 192.168.1.0/24 -oN inventaire-reseau.txt

Scan de ports TCP (SYN Scan)

Le scan le plus courant. Rapide et discret, il identifie les ports ouverts sans établir de connexion complété :

# Scan SYN des 1000 ports les plus courants
sudo nmap -sS 192.168.1.1

# Scan de tous les 65535 ports TCP
sudo nmap -sS -p- 192.168.1.1

# Scan de ports spécifiques
sudo nmap -sS -p 22,80,443,3306,8080 192.168.1.1

# Scan d'une plage de ports
sudo nmap -sS -p 1-1024 192.168.1.1

Scan TCP Connect (sans privileges root)

# Si vous n'avez pas les droits root
nmap -sT 192.168.1.1
# Plus lent que SYN mais ne nécessité pas de privileges

Scan UDP

# Scanner les ports UDP (DNS, SNMP, DHCP)
sudo nmap -sU --top-ports 100 192.168.1.1

# Scan UDP spécifique
sudo nmap -sU -p 53,67,68,69,123,161,162,514 192.168.1.1
# Note : le scan UDP est beaucoup plus lent que TCP

Détection de services et versions

Savoir quel port est ouvert ne suffit pas. Il faut identifier le service exact et sa version pour trouver des vulnerabilites :

# Détection de version des services
nmap -sV 192.168.1.1

# Résultat type :
# PORT     STATE SERVICE     VERSION
# 22/tcp   open  ssh         OpenSSH 8.9p1 Ubuntu
# 80/tcp   open  http        Apache httpd 2.4.52
# 443/tcp  open  ssl/http    Apache httpd 2.4.52
# 3306/tcp open  mysql       MySQL 8.0.33

# Détection agressive (plus precise mais plus lente)
nmap -sV --version-intensity 5 192.168.1.1

# Détection OS + services + scripts + traceroute
nmap -A 192.168.1.1

# Détection du système d'exploitation
sudo nmap -O 192.168.1.1

Scripts NSE (Nmap Scripting Engine)

Les scripts NSE sont la fonctionnalité la plus puissante de Nmap. Ils automatisent la détection de vulnerabilites :

Catégories de scripts

Catégorie Usage Commande
vuln Détection de vulnerabilites connues --script vuln
auth Test d’authentification faible --script auth
default Scripts de base surs -sC
discovery Découverte d’informations --script discovery
brute Tests de force brute --script brute
safe Scripts sans risque --script safe

Scripts de vulnerabilite essentiels

# Scanner toutes les vulnerabilites connues
nmap --script vuln 192.168.1.1

# Vérifier les vulnerabilites SSL/TLS
nmap --script ssl-enum-ciphers -p 443 monsite.sn

# Détecter Heartbleed
nmap --script ssl-heartbleed -p 443 monsite.sn

# Vérifier les vulnerabilites SMB (WannaCry, EternalBlue)
nmap --script "smb-vuln*" -p 445 192.168.1.0/24

# Tester les credentials par défaut
nmap --script http-default-accounts -p 80,8080 192.168.1.1

# Enumerer les utilisateurs
nmap --script smb-enum-users -p 445 192.168.1.1

Scripts pour serveurs web (WordPress, Apache, Nginx)

# Enumeration de répertoires web
nmap --script http-enum -p 80,443 monsite.sn

# Détecter le CMS (WordPress, Joomla, etc.)
nmap --script http-generator -p 80,443 monsite.sn

# Vérifier les méthodes HTTP dangereuses
nmap --script http-methods -p 80,443 monsite.sn

# Détecter un WAF (Web Application Firewall)
nmap --script http-waf-detect -p 80,443 monsite.sn

# Headers de sécurité
nmap --script http-security-headers -p 80,443 monsite.sn

# Vulnerabilites WordPress spécifiques
nmap --script http-wordpress-enum -p 80,443 monsite.sn

Cas pratiques pour le Sénégal

Cas 1 : Auditer le réseau d’une PME

# Étape 1 : Inventaire complet du réseau
nmap -sn 192.168.1.0/24 -oN inventaire.txt

# Étape 2 : Scanner les ports ouverts sur chaque hote
nmap -sS -sV --top-ports 1000 192.168.1.0/24 -oN ports-ouverts.txt

# Étape 3 : Identifier les services vulnerables
nmap --script vuln 192.168.1.0/24 -oN vulnerabilites.txt

# Étape 4 : Vérifier les partages réseau non sécurisés
nmap --script smb-enum-shares -p 445 192.168.1.0/24

# Points d'attention :
# - Imprimantes avec interface web sans mot de passe (port 80/443)
# - NAS ou serveurs de fichiers avec SMB ouvert
# - Cameras IP avec credentials par défaut
# - Routeur avec interface d'administration accessible

Cas 2 : Auditer un serveur VPS (site WordPress)

# Scan complet du serveur
nmap -sS -sV -sC -O -p- votre-serveur.sn -oN audit-vps.txt

# Vérifier la configuration SSL
nmap --script ssl-enum-ciphers,ssl-cert -p 443 votre-serveur.sn

# Vérifier que seuls les ports nécessaires sont ouverts
# Ports attendus pour un serveur WordPress :
# 22 (SSH), 80 (HTTP), 443 (HTTPS)
# Tout autre port ouvert doit être justifie

# Tester la sécurité SSH
nmap --script ssh-auth-methods,ssh2-enum-algos -p 22 votre-serveur.sn

Cas 3 : Vérifier un réseau WiFi d’entreprise

# Scanner les appareils connectés au WiFi
nmap -sn 10.0.0.0/24

# Identifier les appareils non autorises
# Comparer avec votre inventaire connu

# Vérifier si des appareils exposent des services dangereux
nmap -sS -p 445,3389,23,21 10.0.0.0/24
# 445 : partage fichiers (risque si ouvert)
# 3389 : bureau a distance (ne devrait pas être accessible)
# 23 : Telnet (jamais acceptable)
# 21 : FTP (préférer SFTP)

Formats de sortie et rapports

# Sortie normale (lisible)
nmap -sV 192.168.1.1 -oN rapport-normal.txt

# Sortie XML (pour traitement automatise)
nmap -sV 192.168.1.1 -oX rapport.xml

# Sortie Grepable (pour filtrage avec grep)
nmap -sV 192.168.1.1 -oG rapport-grep.txt

# Tous les formats en même temps
nmap -sV 192.168.1.1 -oA rapport-complet
# Produit : rapport-complet.nmap, rapport-complet.xml, rapport-complet.gnmap

# Filtrer les résultats grepable
grep "open" rapport-grep.txt
grep "/tcp.*open" rapport-grep.txt | awk '{print $2, $3}'

Optimisation des scans

Gérer la vitesse

# Templates de timing (T0 a T5)
nmap -T0 192.168.1.1   # Paranoiaque (très lent, discret)
nmap -T1 192.168.1.1   # Sournois
nmap -T2 192.168.1.1   # Poli
nmap -T3 192.168.1.1   # Normal (défaut)
nmap -T4 192.168.1.1   # Agressif (recommande en LAN)
nmap -T5 192.168.1.1   # Dement (risque de rater des ports)

# Pour un réseau local au Sénégal, T4 est ideal
# Pour un scan distant sur connexion 3G/4G, restez sur T3

# Limiter le debit pour ne pas saturer une connexion lente
nmap --max-rate 100 192.168.1.0/24

Techniques d’evasion (pour tests de pénétration autorises)

# Fragmentation des paquets
nmap -f 192.168.1.1

# Decoy scan (masquer votre IP parmi des leurres)
nmap -D RND:5 192.168.1.1

# Changer le port source
nmap --source-port 53 192.168.1.1

# Scan idle (utiliser un zombie)
nmap -sI zombie-ip 192.168.1.1

Automatisation avec des scripts Bash

#!/bin/bash
# Script d'audit réseau automatise

TARGET="192.168.1.0/24"
DATE=$(date +%Y-%m-%d)
OUTPUT_DIR="audit-$DATE"
mkdir -p "$OUTPUT_DIR"

echo "[1/4] Découverte des hotes..."
nmap -sn $TARGET -oG "$OUTPUT_DIR/hotes.gnmap"
HOSTS=$(grep "Up" "$OUTPUT_DIR/hotes.gnmap" | awk '{print $2}')
echo "Hotes trouves : $(echo "$HOSTS" | wc -l)"

echo "[2/4] Scan des ports et services..."
nmap -sS -sV --top-ports 1000 -T4 $TARGET -oN "$OUTPUT_DIR/services.txt" -oX "$OUTPUT_DIR/services.xml"

echo "[3/4] Scan de vulnerabilites..."
nmap --script vuln $TARGET -oN "$OUTPUT_DIR/vulns.txt"

echo "[4/4] Vérification SSL..."
for host in $HOSTS; do
  nmap --script ssl-enum-ciphers -p 443 $host >> "$OUTPUT_DIR/ssl.txt"
done

echo "Audit terminé. Résultats dans $OUTPUT_DIR/"

Complements a Nmap : outils associés

Outil Rôle Quand l’utiliser
Zenmap Interface graphique Nmap Pour les debutants ou la visualisation réseau
Masscan Scan de ports ultra-rapide Scanner des plages IP très larges
Nikto Scanner de vulnerabilites web Après avoir identifie un serveur web avec Nmap
OpenVAS Scanner de vulnerabilites complet Audits de sécurité approfondis
WPScan Scanner WordPress Auditer un site WordPress specifiquement

Erreurs fréquentes

1. Scanner Internet sans autorisation explicite

Cause : on lance nmap -sS -p- 196.0.0.0/8 « pour s’entraîner » depuis chez soi. Outre l’illégalité (loi 2008-11), votre FAI (Sonatel, Free) détecte le scan massif et peut suspendre votre ligne.

Solution : entraînez-vous sur scanme.nmap.org (autorisé par les auteurs de Nmap), votre LAN 192.168.x.x, ou des plateformes type TryHackMe/HackTheBox.

2. Scan trop agressif qui crash le service

Cause : nmap -T5 -A --script vuln -p- target.sn sur un serveur de production peut saturer la base de données, déclencher des alertes WAF (Cloudflare, Wordfence) ou faire crasher des applications anciennes.

Solution : commencez doucement : -T3 (normal) ou -T2 (poli) sur la production. Limitez le débit avec --max-rate 100. Et toujours en fenêtre maintenance autorisée.

3. Confondre « port ouvert » et « vulnérabilité »

Cause : on rapporte les 12 ports ouverts comme autant de vulnérabilités. Un port 443 (HTTPS) ouvert est normal, c’est la version du service qui peut être obsolète.

Solution : couplez systématiquement -sV (détection version) avec --script vuln. La vraie vulnérabilité est : « Apache 2.4.49 sur le port 80 vulnérable à CVE-2021-41773 ».

4. nmap -sS sans sudo

Cause : le SYN scan nécessite des paquets bruts (raw sockets) — donc des privilèges root. Sans sudo, Nmap retombe silencieusement sur -sT (TCP Connect), beaucoup plus lent et plus visible.

Solution : utilisez sudo nmap -sS ou installez les capabilities : sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap).

5. --script vuln sans relecture

Cause : on prend les résultats --script vuln au pied de la lettre. Beaucoup de scripts NSE produisent des false positives (CVE annoncées par signature de version mais le patch est appliqué).

Solution : validez chaque vulnérabilité signalée avec une seconde source : NVD, CVEDetails, ou un PoC manuel. Une CVE flag par Nmap n’est pas une certitude, c’est une piste.

Checklist audit réseau avec Nmap

  • Autorisation ecrite obtenue avant tout scan
  • Inventaire des hotes actifs réalisé (nmap -sn)
  • Ports ouverts identifies sur chaque hote (nmap -sS -sV)
  • Services et versions detectes (nmap -sV)
  • Scripts de vulnerabilite executes (--script vuln)
  • Configuration SSL/TLS verifiee (ssl-enum-ciphers)
  • Ports inutiles identifies pour fermeture
  • Rapport genere et sauvegarde en XML et texte
  • Résultats communiques au responsable IT
  • Plan de remediation etabli pour chaque vulnerabilite trouvee

Pour explorer plus loin

Un hébergeur abordable pour vos projets

Hostinger combine prix raisonnable et stabilité. Lien partenaire — pas de surcoût pour vous.

Choisir une offre →

Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.

مشاركة