Un chapitre volontairement synthétique : comprendre les grandes familles de vulnérabilités et les outils de scan, sans entrer dans le détail de l'exploitation — ce sera l'objet des chapitres de pentesting à venir.
Surface d'attaque, types de failles courantes et services fréquemment ciblés.
EternalBlue, BlueKeep, Shellshock — comprendre leur contexte, pas encore les exploiter.
Automatiser la détection avec Metasploit, Nessus et WMAP.
# Scanner la cible et l'importer dans un workspace db_nmap -sS -sV -O @IP_cible # Rechercher un module correspondant à une CVE connue search cve:<annee> name:<service> # Vérifier si la cible est vulnérable # (module auxiliaire de vérification, pas d'exploitation) use auxiliary/scanner/smb/smb_ms17_010 set rhosts @IP_cible run
# Importer un rapport Nessus (format XML) dans MSF db_import /chemin/rapport_nessus.nessus vulns -p @port # Charger le plugin WMAP pour l'audit d'applications web load wmap wmap_sites -a @IP_cible wmap_run -e wmap_vulns -l
Un Vulnerability Assessment ne consiste pas à lancer un scanner et à recopier ses résultats. Le but est de détecter, contextualiser, vérifier et documenter les vulnérabilités potentielles avant de décider si une exploitation contrôlée est nécessaire.
Faiblesse technique ou logique pouvant compromettre confidentialité, intégrité ou disponibilité.
Identifiant public permettant de référencer une vulnérabilité précise affectant un produit ou une version.
Classification de la cause ou du type de faiblesse : injection, contrôle d'accès insuffisant, overflow, etc.
« Aucun résultat » signifie seulement qu'aucune vulnérabilité n'a été détectée avec les méthodes et données utilisées. Ce n'est pas une preuve d'absence de vulnérabilité.
# Découverte et fingerprinting de base nmap -sS -sV -O --open <IP> # Scripts NSE orientés vulnérabilités nmap -sV --script vuln <IP>
Un service accepte des connexions. C'est généralement la surface à énumérer.
Le port est accessible mais aucun service n'écoute actuellement.
Un filtrage empêche Nmap de déterminer correctement l'état du port.
nmap -sV -sC <IP> nmap -O <IP> nmap -A <IP> # Vérifier un service spécifique nmap -sV -p 22,80,443,445 <IP>
Dans une phase VA, privilégier les modules auxiliaires capables de vérifier une condition plutôt que de lancer directement un exploit. L'objectif est de confirmer le finding avec le minimum d'impact.
msfconsole # Recherche search type:auxiliary scanner smb search cve:2017-0144 # Exemple de vérification use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS <IP> run
« Quelle donnée observée permet d'affirmer que cette vulnérabilité est présente ? »
Si la réponse est uniquement « la bannière indique une version vulnérable », une vérification supplémentaire peut être nécessaire.
Partages, authentification réseau, anciennes versions du protocole et configuration.
Exposition distante, versions, NLA et contrôles d'accès.
Administration distante ; vérifier exposition, authentification et configuration.
Version, méthodes d'authentification et exposition.
Serveur web, framework, modules, virtual hosts et applications.
FTP, SMTP, bases de données, RPC et autres services selon l'environnement.
curl -I http://<IP> whatweb http://<IP> nikto -h http://<IP> # Découverte de contenu ffuf -w wordlist.txt -u http://<IP>/FUZZ
Les scripts NSE n'ont pas tous le même niveau d'impact. Lire leur description avant exécution et respecter le périmètre du test.
# Voir les informations d'un script nmap --script-help <script> # Exemple ciblé nmap -p 445 --script smb-vuln-ms17-010 <IP>
Exposition, ports, services, versions et scripts ciblés.
Large couverture automatisée et corrélation CVE/plugin.
Confirme la condition réellement présente sur la cible.
Internet, DMZ, réseau interne, localhost.
Authentification, interaction utilisateur, configuration particulière.
Confidentialité, intégrité, disponibilité et portée de l'accès.
nmap -sV -sC <IP> nmap -O <IP> nmap -A <IP> nmap --script vuln <IP> nmap --script-help <script>
search cve:<CVE> search type:auxiliary scanner use auxiliary/... set RHOSTS <IP> check run
curl -I http://<IP> whatweb http://<IP> nikto -h http://<IP> ffuf -w wordlist.txt -u http://<IP>/FUZZ
db_import rapport.nessus vulns vulns -p <port> hosts services