🎯 Objectif de la semaine
Maîtriser Nmap pour cartographier professionnellement un réseau : identifier les hôtes actifs, analyser les services ouverts, détecter les systèmes d'exploitation et comprendre la surface d'attaque sans déclencher d'alertes.
Pourquoi Nmap est fondamental : 80% d'un pentest réussi repose sur une reconnaissance impeccable. Nmap est votre œil numérique, votre carte topographique du terrain ennemi.
Demi-connexions] D --> G[🏎️ -T4 Timing
Bilan rapide] E --> H[📈 -A Aggressive
OS + Services + Scripts] F --> I[📋 Résultats bruts] G --> I H --> I I --> J{🎯 Analyse stratégique} J --> K[🎪 Ports ouverts] J --> L[🖥️ OS Fingerprinting] J --> M[🔧 Versions services] J --> N[⚠️ Vulnérabilités potentielles] K --> O[🗺️ Carte d'attaque] L --> O M --> O N --> O O --> P[⚔️ Plan d'action S13+] style C fill:#00f5a0,stroke:#000 style D fill:#ff6b00,stroke:#000 style E fill:#ef4444,stroke:#000 style O fill:#9d4edd,stroke:#fff,stroke-width:2px
📚 Sujet – Théorie (1 heure)
Nmap : L'art et la science de la cartographie réseau
Nmap n'est pas simplement un scanner de ports. C'est un système complexe d'ingénierie réseau qui utilise les protocoles TCP/IP de manière créative pour extraire des informations.
🔬 Comment Nmap fonctionne vraiment :
- SYN Scan (-sS) : Envoie un paquet SYN, reçoit SYN-ACK, envoie RST (jamais de connexion complète)
- Connect Scan (-sT) : Utilise l'appel système connect() - laisse des logs
- UDP Scan (-sU) : Envoie des paquets UDP vides, analyse les réponses ICMP
- OS Detection (-O) : Analyse les subtiles différences d'implémentation TCP/IP
La matrice des scans : choisir la bonne approche
👻 Scan Furtif (-sS)
Utilisation : Pentest externe, évasion IDS
Mécanique : Demi-connexions TCP
Détectabilité : Très faible
Vitesse : Moyenne
Commande : nmap -sS -T2
⚡ Scan Rapide (-T4)
Utilisation : Lab interne, évaluation rapide
Mécanique : Paquets parallélisés
Détectabilité : Élevée
Vitesse : Très rapide
Commande : nmap -T4 -p-
📊 Scan Complet (-A)
Utilisation : Audit de sécurité approfondi
Mécanique : Multiple techniques combinées
Détectabilité : Maximum
Vitesse : Lente
Commande : nmap -A -sV -O
Comprendre les états de ports et leur signification
| État Nmap | Signification technique | Implication sécurité | Action recommandée |
|---|---|---|---|
| open | Service écoute et accepte connexions | 🔴 Haute - Surface d'attaque directe | Analyse immédiate du service |
| filtered | Firewall/IDS bloque les probes | 🟡 Moyenne - Défenses actives présentes | Techniques d'évasion, scans UDP |
| closed | Port accessible mais pas de service | 🟢 Basse - Pas de service exposé | Peut indiquer un ancien service |
| unfiltered | Accessible mais état indéterminé | 🟠 Variable - Nécessite investigation | Scans ACK ou Window |
⚖️ Aspects légaux et éthiques
Nmap sur des systèmes non autorisés est illégal. En environnement contrôlé :
- Documentez chaque scan (cible, heure, commande exacte)
- Respectez les plages horaires autorisées si applicables
- Ne scannez jamais des ports sensibles (ex: 22, 3389) en production sans accord
- Utilisez
--script safepour éviter les scripts dangereux
OS Fingerprinting : l'empreinte digitale des systèmes
Nmap compare les réponses TCP/IP avec une base de données de 2,600+ signatures OS. Chaque système a des subtiles différences d'implémentation :
- TTL initial (Windows: 128, Linux: 64)
- Taille de fenêtre TCP
- Options TCP activées
- Réponses aux paquets invalides
🔬 Mission pratique – Laboratoire (2 heures)
🏁 Configuration du lab : Assurez-vous d'avoir votre Kali + Metasploitable2 + Ubuntu en réseau Host-Only. IP typiques : Kali (192.168.56.101), Metasploitable2 (192.168.56.102), Ubuntu (192.168.56.103).
Étape 1 : Préparation et vérification
# Mise à jour et vérification Nmap
sudo apt update && sudo apt install nmap -y
nmap --version
# Doit afficher version 7.94+ avec NSE (Nmap Scripting Engine)
# Découverte du réseau
ip a | grep "inet "
# Notez votre IP et le réseau (ex: 192.168.56.0/24)
Étape 2 : Découverte d'hôtes stratégique
Ne pas scanner aveuglément - comprendre ce que vous faites :
# Méthode 1 : Ping scan classique
nmap -sn 192.168.56.0/24
# -sn : Pas de scan de ports, juste discovery
# Résultat : Liste des IP actives avec MAC addresses
# Méthode 2 : ARP scan (plus fiable en LAN)
nmap -PR 192.168.56.0/24
# -PR : ARP discovery (ne traverse pas les routeurs)
# Méthode 3 : Scan avec exclusion de soi-même
nmap -sn 192.168.56.0/24 --exclude 192.168.56.101
# --exclude : Ne pas scanner certaines IP
# Analyse des résultats
echo "=== Hôtes actifs détectés ==="
nmap -sn 192.168.56.0/24 | grep "Nmap scan" | awk '{print $5}'
# Notez : Metasploitable2 (vulnérable) et Ubuntu (cible secondaire)
Étape 3 : Scan de ports méthodique
📋 Stratégie de scan en 4 phases :
# Phase 1 : Scan rapide des ports communs (top 1000)
nmap -sS 192.168.56.102
# Notez les ports ouverts immédiats (21, 22, 80, 443, 445...)
# Phase 2 : Scan complet (tous les ports)
nmap -sS -p- 192.168.56.102
# -p- : Tous les ports 1-65535
# Temps estimé : 5-10 minutes
# Phase 3 : Scan ciblé des services intéressants
nmap -sS -p21,22,80,443,445,3306,8080 192.168.56.102
# Se concentrer sur les ports à haut risque
# Phase 4 : Scan UDP des services critiques
nmap -sU -p53,67,68,69,123,161 192.168.56.102
# UDP scan (beaucoup plus lent)
# Note : DNS, DHCP, TFTP, NTP, SNMP
Étape 4 : Fingerprinting avancé
# Détection OS et versions de services
nmap -sV -O 192.168.56.102
# -sV : Service version detection
# -O : OS detection (nécessite droits root)
# Analyse détaillée avec scripts NSE
nmap -sC 192.168.56.102
# -sC : Exécute les scripts par défaut (safe)
# Scan agressif complet (pour le lab seulement)
nmap -A 192.168.56.102
# -A : Aggressive (OS + Version + Script + Traceroute)
# ATTENTION : Très bruyant, jamais en production!
Étape 5 : Optimisation et timing
# Comparaison des timings
time nmap -T0 192.168.56.102 # Paranoid (5 min+)
time nmap -T1 192.168.56.102 # Sneaky (15-100 sec)
time nmap -T2 192.168.56.102 # Polite (10 sec)
time nmap -T3 192.168.56.102 # Normal (5 sec) [DÉFAUT]
time nmap -T4 192.168.56.102 # Aggressive (2 sec)
time nmap -T5 192.168.56.102 # Insane (<1 sec)
# Scan optimisé pour vitesse/stealth balance
nmap -sS -T4 --min-rate 1000 192.168.56.102
# --min-rate : Au moins 1000 paquets/seconde
Étape 6 : Documentation professionnelle
# Création d'un rapport complet
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
TARGET="192.168.56.102"
# Scan et sauvegarde en formats multiples
nmap -sS -sV -O -p- -T4 $TARGET -oA scan-$TIMESTAMP-$TARGET
# -oA : Génère les trois formats (.nmap, .xml, .gnmap)
# Fichiers générés :
ls -la scan-$TIMESTAMP-$TARGET.*
# scan-20240101-120000-192.168.56.102.nmap : Format lisible
# scan-20240101-120000-192.168.56.102.xml : Format machine (pour outils)
# scan-20240101-120000-192.168.56.102.gnmap : Format grepable
# Extraction d'informations spécifiques
grep "open" scan-$TIMESTAMP-$TARGET.nmap
grep "OS details" scan-$TIMESTAMP-$TARGET.nmap
# Conversion XML vers HTML (optionnel)
xsltproc scan-$TIMESTAMP-$TARGET.xml -o scan-$TIMESTAMP-$TARGET.html
Étape 7 : Analyse stratégique des résultats
📊 Matrice d'analyse des ports ouverts (exemple Metasploitable2)
| Port | Service | Version | Risque | Action S13+ |
|---|---|---|---|---|
| 21 | FTP | vsftpd 2.3.4 | 🔴 CRITIQUE | Backdoor connue - Exploit immédiat |
| 22 | SSH | OpenSSH 4.7p1 | 🟠 MOYEN | Brute-force credentials |
| 80 | HTTP | Apache 2.2.8 | 🟠 MOYEN | Énumération web, injection |
| 445 | SMB | Samba 3.0.20 | 🔴 CRITIQUE | MS08-067 exploit possible |
🎯 Défi avancé : Profiling complet
Créez un script full-profile.sh qui pour une cible donnée :
- Découvre tous les hôtes actifs dans le /24
- Scanne les 1000 ports principaux sur chaque hôte
- Identifie l'OS de chaque hôte
- Génère un rapport HTML avec classification des risques
- Exporte les données en CSV pour analyse Excel
Indice : Utilisez nmap -oX et parsez avec xmlstarlet ou Python.
📋 Objectif de la semaine – Validation des compétences
✅ Compétences techniques acquises
- Maîtrise de 8+ types de scans Nmap et leur cas d'usage
- Capacité à interpréter les 4 états de ports et leur implication sécurité
- OS fingerprinting manuel (analyse TTL, window size, etc.)
- Génération de rapports en 3 formats (nmap, xml, gnmap)
- Optimisation des scans (timing, débit, évasion)
🧠 Mindset développé
- Compréhension que la reconnaissance est 80% du succès d'un pentest
- Habitude de toujours documenter avant de scanner
- Conscience du compromis vitesse/détectabilité/furtivité
- Approche méthodique : discovery → scan léger → scan approfondi
🔮 Préparation pour la semaine 13 :
Vous avez maintenant une carte complète de Metasploitable2. La semaine prochaine, nous exploiterons les vulnérabilités identifiées. Assurez-vous d'avoir :
- Votre rapport Nmap complet de Metasploitable2
- Identifié au moins 5 services vulnérables
- Compris la différence entre port ouvert et service exploitable
📚 Ressources avancées
Pour devenir expert Nmap :
- Nmap Network Scanning : Le livre officiel (gratuit en ligne)
- NSE Script Database : Documentation de tous les scripts NSE
- Scanning Methodology : Standard professionnel de scanning
⚠️ Erreurs courantes à éviter
- Scan complet en production : Jamais sans autorisation écrite
- Oublier les scans UDP : Les services critiques (DNS, DHCP) sont en UDP
- Négliger la documentation : Un scan non documenté est inutile légalement
- Scanner depuis son IP personnelle : Utilisez des proxies/VPN en external
🗺️ Frère d'armes,
Cette semaine, vous avez appris à voir l'invisible.
Nmap n'est pas un simple outil technique. C'est une philosophie : comprendre avant d'agir, cartographier avant d'attaquer, observer avant d'engager.
Vous avez découvert que chaque système raconte une histoire à travers ses ports ouverts. Un port 21 avec vsftpd 2.3.4 dit "j'ai une backdoor". Un port 445 avec Samba 3.0.20 dit "je suis vulnérable à MS08-067". Un port 22 avec OpenSSH ancien dit "mes credentials sont peut-être faibles".
Cette capacité à lire le langage silencieux des réseaux est ce qui sépare le script kiddie du professionnel.
Votre rapport Nmap n'est pas une simple liste de ports. C'est une carte au trésor. Chaque port ouvert est une porte potentielle. Chaque version obsolète est une faille potentielle. Chaque service non sécurisé est un chemin potentiel.
La semaine 12 marque la fin de la phase de reconnaissance pure. Vous avez maintenant les yeux pour voir.
La semaine 13, vous donnerez les mains pour agir.
Mais souvenez-vous : un guerrier qui agit sans voir est un soldat aveugle. Un guerrier qui voit sans agir est un espion inutile.
Vous êtes maintenant celui qui voit. Bientôt, vous serez celui qui agit.
Rangez soigneusement votre carte. Aiguisez vos outils d'exploitation.
Le terrain est cartographié. Les cibles sont identifiées. Les failles sont repérées.
L'assaut commence bientôt.
— Platon-Y