🎯 Audit de vulnérabilités — Nmap et méthodologie CVSS

Bloc 2 Module 2.3 Séance 1 · 3h30 BTS SIO SISR
FormationBTS SIO option SISR — IRIS Mediaschool
Bloc / ModuleB2 · M2.3 | Compétence B2.4 / Lien B3.4
CoursC2.3.4 — Audit de vulnérabilités
Durée3h30 (théorie + TP)

🚀 Introduction (10 min)

En 2017, l'incident Equifax a mis en lumière la conséquence d'un patch manquant : la vulnérabilité CVE-2017-5638 dans Apache Struts, détectable dès lors par un scan automatisé :

nmap --script=http-vuln-cve2017-5638 <cible>

Deux mois après l'alerte du CERT‑US, la faille n'était toujours pas corrigée et environ 145 millions d'enregistrements ont été exfiltrés. Ce cas concret montre que la combinaison d'une découverte active et d'un script d'audit peut identifier rapidement des failles critiques dans des environnements de PME.

🎯 Objectifs de la séance

  • Expliquer et appliquer une méthodologie d'audit de vulnérabilités respectueuse du cadre légal et professionnel.
  • Réaliser des scans Nmap pertinents (types de scan, détection de versions, scripts NSE) et interpréter leurs résultats.
  • Prioriser des vulnérabilités avec CVSS v3 et produire un rapport opérationnel exploitable.

📖 1. Méthodologie d'audit de sécurité (40 min)

La réalisation d'un audit de vulnérabilités commence toujours par un cadrage précis : périmètre, objectifs, durée, contraintes et, surtout, une autorisation écrite. Sans cette autorisation vous vous exposez à des poursuites (voir rappel légal en fin de séance). Le cadrage précise les cibles (adresses IP, plages, noms d'hôtes), le type de tests autorisés (passif/actif, tests d'intrusion autorisés), les plages horaires et la personne de contact en cas d'incident.

Les 6 phases de la méthodologie

PhaseDescription
1. Cadrage & autorisationDéfinir périmètre, objectifs, contraintes et obtenir l'autorisation écrite signée avant toute action.
2. Découverte passive (OSINT)Collecter des informations publiques : noms de domaine, enregistrements DNS, bannières publiques, pages exposées.
3. Scan actifPort scanning, détection de services/versions et exécution de scripts de détection de vulnérabilités. Planifier la fenêtre d'exécution pour minimiser l'impact production.
4. Analyse des résultatsCorréler résultats Nmap, sorties de scanners (GVM/OpenVAS, Nikto) et bases CVE/CVSS pour estimer la criticité et la faisabilité d'exploitation.
5. Rédaction du rapportPriorisation claire (critique → correctif immédiat, etc.) avec propositions de remédiation.
6. Remédiation & rescanningAppliquer les correctifs (patch/config changes) puis rescan de validation pour vérifier la correction.

Exemple d'autorisation écrite

⚠️ Document à remettre signé avant tout scan
Autorisation de tests d'intrusion et de scans actifs
Client : InnovatTech SARL
Périmètre : 192.168.10.0/24, 192.168.30.0/24 (machines listées jointes)
Période : du YYYY-MM-DD au YYYY-MM-DD
Type d'opérations autorisées : découverte passive (OSINT) et scans actifs
  non destructifs (Nmap, OpenVAS, Nikto).
  Tests d'exploitation manuels uniquement si autorisés par écrit séparément.
Responsable contact : prenom.nom (tel/email)
Signature : ___________________ Date: ____

📖 2. Nmap : types de scan et interprétation (60 min)

Nmap est l'outil central pour la découverte active : il identifie hôtes vivants, ports ouverts, services et versions, et exécute des scripts (NSE).

Options essentielles

OptionDescriptionRemarque
-snPing sweep — détecte les hôtes vivants sans scanner les portsUtile avant un scan de ports pour réduire la surface
-sSSYN stealth scan — envoie des SYN et observe les réponsesRequiert root, moins bruyant que -sT
-sTTCP connect scan — utilise la pile TCP de l'OSPas besoin de root mais plus détectable
-sUUDP scan — nécessaire pour services UDP exposés (DNS, SNMP)Lent et bruyant
-sVDétection de version des services--version-intensity 5 pour fingerprinting moyen/fort
-sCLance les scripts NSE par défautEnsemble utile pour détections courantes
-ODétection du système d'exploitationRequiert souvent root, génère du trafic atypique
-AMode agressif (combine -sV, -sC, -O)Pratique pour audits mais plus bruyant
-p 1-1024 / -p-Restreindre la plage de ports-p- scanne les 65 535 ports
--openN'affiche que les ports ouvertsPratique pour rapports lisibles
-oN / -oX / -oGFormat de sortie : humain / XML / grepableToujours exporter en XML pour corrélation automatisée

Exemples pratiques (Kali Linux, root)

# Détection d'hôtes vivants
sudo nmap -sn 192.168.10.0/24 -oN s1_ping_sweep_192-168-10.txt

# Scan TCP SYN, tous ports, afficher uniquement open, vitesse T4
sudo nmap -sS -p- --open -T4 -oN s1_scan_fullports_192-168-10.txt 192.168.10.0/24

# Scan ciblé : SYN + détection version + scripts par défaut + OS (1-1024)
sudo nmap -sS -sV --version-intensity 5 -sC -O -p 1-1024 --open \
  -oN s1_report_192-168-10.txt 192.168.10.0/24

# Exécution de scripts NSE spécifiques sur un hôte
sudo nmap -p 443 --script ssl-enum-ciphers \
  -oN s1_ssl_ciphers_debian-srv02.txt 192.168.30.5
sudo nmap -p 445 --script smb-vuln-ms17-010 \
  -oN s1_smb_ms17_win-srv01.txt 192.168.10.5

Scripts NSE utiles en audit

Script NSEUsage
--script=vulnRegroupe de nombreux contrôles de vulnérabilités courantes
smb-vuln-ms17-010Détecte EternalBlue (WannaCry) sur SMB Windows
ssl-enum-ciphersInventorie les suites TLS supportées, signale les suites faibles
http-titleRécupère le titre des pages HTTP exposées
ftp-anonDétecte l'accès FTP anonyme activé
telnet-ntlm-infoIdentifie les services Telnet exposés avec info NTLM
http-vuln-cve2017-5638Détecte la faille Apache Struts (cas Equifax)

Interprétation des états de port

ÉtatSignificationAction
openUn service répond et est accessiblePriorité d'analyse immédiate
closedPort fermé, aucune application n'écouteUtile pour cartographie
filteredUn firewall ou filtrage bloque la sonde NmapTests complémentaires (traceroute, règles pare-feu)
open|filteredNmap ne distingue pas entre ouvert et filtré (UDP, ACK-less)Vérifications supplémentaires requises

📖 3. CVSS v3 et priorisation (20 min)

CVSS v3 est le standard pour quantifier la gravité d'une vulnérabilité. Un vecteur CVSS décrit les métriques utilisées pour calculer le score de base :

MétriqueAbbrév.Description
Attack VectorAVVecteur d'attaque : réseau (N), adjacent (A), local (L), physique (P)
Attack ComplexityACComplexité d'exploitation : faible (L) ou haute (H)
Privileges RequiredPRPrivilèges nécessaires : aucun (N), bas (L), haut (H)
User InteractionUIInteraction utilisateur requise : aucune (N) ou requise (R)
ScopeSPortée : inchangée (U) ou modifiée (C)
ConfidentialityCImpact sur la confidentialité : nul (N), faible (L), élevé (H)
IntegrityIImpact sur l'intégrité : nul (N), faible (L), élevé (H)
AvailabilityAImpact sur la disponibilité : nul (N), faible (L), élevé (H)

Exemple commenté

Vecteur : AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H → Score : 9.8 (Critical)
  • AV:N → vecteur réseau : l'attaque est réalisable à distance via le réseau.
  • AC:L → complexité faible : pas de condition particulière pour exploiter.
  • PR:N → pas besoin de privilèges.
  • UI:N → pas d'interaction utilisateur requise.
  • C:H / I:H / A:H → impact élevé sur confidentialité, intégrité et disponibilité.

Classification opérationnelle

NiveauScore CVSSDélai de correction
Critical≥ 9.0Corriger < 24h ou isoler la cible
High7.0 ≤ score < 9.0Corriger sous 7 jours
Medium4.0 ≤ score < 7.0Corriger sous 30 jours
Low0.1 ≤ score < 4.0Planifier lors d'une prochaine fenêtre de maintenance

💻 Travaux Pratiques — Durée : 1h30

Contexte

Vous êtes technicien chez InnovatTech SARL. Le responsable informatique vous demande d'auditer le périmètre interne et DMZ suivant :

  • 192.168.10.0/24 (VLAN admin) — hôte d'intérêt : win-srv01 (192.168.10.5)
  • 192.168.30.0/24 (DMZ) — hôte d'intérêt : debian-srv02 (192.168.30.5)

Prérequis techniques

  • VM attaquante (Kali Linux ou Debian avec Nmap 7.x), accès root pour certains scans.
  • Accès réseau aux plages 192.168.10.0/24 et 192.168.30.0/24 (lab isolé).
  • Autorisation écrite signée — obligatoire avant de démarrer.

Étapes

Étape 1 — Ping sweep (lister les hôtes vivants) :

sudo nmap -sn 192.168.10.0/24 -oN s1_ping_sweep_192-168-10.txt
sudo nmap -sn 192.168.30.0/24 -oN s1_ping_sweep_192-168-30.txt

Étape 2 — Scan de ports avec SYN + détection de versions/scripts/OS :

sudo nmap -sS -sV --version-intensity 5 -sC -O -p 1-1024 --open \
  -oN s1_report_192-168-10.txt 192.168.10.0/24

Étape 3 — Scripts NSE ciblés :

# Audit TLS sur debian-srv02
sudo nmap -p 443 --script ssl-enum-ciphers \
  -oN s1_ssl_ciphers_debian-srv02.txt 192.168.30.5

# Détection EternalBlue sur win-srv01
sudo nmap -p 445 --script smb-vuln-ms17-010 \
  -oN s1_smb_ms17_win-srv01.txt 192.168.10.5

Étape 4 — Export XML pour traitement automatique :

sudo nmap -sS -sV -sC -O -p 1-1024 --open \
  -oX s1_report_192-168-10.xml 192.168.10.0/24

Livrable attendu

Un rapport tabulaire (Markdown ou CSV) avec les colonnes :

Hostname | IP | Port | Protocole | Service | Version | Script NSE (résumé) | CVE(s) détectées | Priorité CVSS | Remédiation proposée

Exemple de ligne :

debian-srv02 | 192.168.30.5 | 443 | tcp | nginx | 1.18.0 | ssl-enum-ciphers: weak cipher TLSv1.0 | CVE-2020-XXXX | High (8.1) | Désactiver TLSv1/1.1, forcer TLS1.2+, mettre à jour openssl

Critères de réussite

  • Le scan couvre les deux plages et liste tous les hôtes répondants.
  • Les services exposés sont identifiés et documentés (host/port/service/version).
  • Les vulnérabilités détectées par NSE sont annotées avec CVSS et proposition de correction.

🔁 Synthèse (10 min)

💡 À retenir

Un audit efficace combine cadrage légal, découverte passive, scans actifs précis (Nmap + NSE), analyse CVSS et rapport priorisé avec plan de remédiation et rescans de validation. Sans autorisation écrite, tout scan peut être qualifié d'accès frauduleux (art. 323-1 CP).

Question de vérification : En une phrase, expliquez pourquoi une autorisation écrite est indispensable avant d'exécuter un scan Nmap sur un réseau tiers.

⚠️ Rappel légal

Tout scan non autorisé est susceptible d'être qualifié d'accès frauduleux ou d'atteinte à un système de traitement automatisé de données (article 323-1 du code pénal / LCEN). Obtenir l'autorisation écrite avant toute action.

🎮 Quiz — Testez vos connaissances

  1. Quelle option Nmap effectue un ping sweep pour détecter les hôtes vivants sans scanner les ports ?
  2. Quel score CVSS v3 correspond au vecteur AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H ?
  3. Quelle article du code pénal français sanctionne l'accès frauduleux à un système informatique ?
  4. Quelle option Nmap réalise un scan SYN stealth (demi-ouvert) nécessitant des privilèges root ?
  5. Selon la classification CVSS opérationnelle, sous quel délai maximum doit-on corriger une vulnérabilité High (7.0 ≤ score < 9.0) ?
Corrections
  1. -sn — L'option -sn lance un ping sweep : Nmap détecte les hôtes actifs sans ouvrir ni scanner aucun port.
  2. 9.8 (Critical) — AV:N (réseau), AC:L (faible complexité), PR:N (aucun privilège), UI:N (aucune interaction), C/I/A:H → score 9.8, niveau Critical.
  3. Article 323-1 du code pénal (LCEN) — Cet article sanctionne l'accès ou le maintien frauduleux dans un STAD, avec des peines allant jusqu'à 2 à 5 ans d'emprisonnement et amendes.
  4. -sS — Le SYN stealth scan envoie un paquet SYN et observe la réponse sans compléter la connexion TCP, ce qui le rend moins bruyant que -sT mais requiert les droits root.
  5. 7 jours — La classification opérationnelle CVSS impose : Critical < 24h, High ≤ 7 jours, Medium ≤ 30 jours, Low : prochaine fenêtre de maintenance.
← C2.3.3 Séance 2 — TLS et artefacts C2.3.4 Séance 2 — OpenVAS et patch management →