Théme de la semaine : Analyse et Scan

Le scan de vulnérabilités et les scripts NSE en phase d’analyse

Lecture: 9 minutes
Accueil • CyberSécurité • Le scan de vulnérabilités et les scripts NSE en phase d’analyse

Repérer les ports ouverts et les services accessibles, c’est une première étape pour comprendre la sécurité d’une machine. Avec Nmap, vous allez apprendre à scanner les vulnérabilités de votre cible, identifier les versions des services et utiliser les scripts NSE pour rechercher des failles connues.

Vous découvrirez aussi comment interpréter les résultats, comprendre les références CVE qui identifient les vulnérabilités et situer le rôle d’un test d’intrusion. De quoi transformer les informations collectées en pistes concrètes pour poursuivre votre analyse.

NSE : Le moteur de scripts de Nmap

Nmap ne sert pas seulement à repérer les ports ouverts sur une machine. Grâce à son moteur de scripts, appelé NSE(Nmap Scripting Engine), vous pouvez aussi obtenir des informations sur les services présents, rechercher certaines failles et effectuer des vérifications plus précises.

Un script est un petit programme qui automatise une tâche. Au lieu de réaliser vous-même plusieurs manipulations pour examiner un service, vous pouvez demander à Nmap d’exécuter le script adapté. NSE et les scripts fournis avec Nmap sont intégrés à son installation habituelle.

Ce que vous pouvez faire avec NSE

Un scan de ports vous aide à repérer les points d’accès réseau d’une machine. Par exemple, un port ouvert peut correspondre à un serveur web, à un service de messagerie ou à un accès distant.

NSE vous permet d’approfondir cette première découverte. Ses scripts peuvent notamment :

  • Recueillir des informations sur les services, pour mieux comprendre ce qui fonctionne sur la machine.
  • Explorer un réseau, en recherchant des équipements ou des informations supplémentaires.
  • Détecter certaines vulnérabilités connues, c’est-à-dire des défauts de sécurité déjà identifiés.
  • Rechercher des portes dérobées, autrement dit des accès cachés permettant de pénétrer dans un système.
  • Dans certains cas, exploiter une faille, en utilisant concrètement un défaut de sécurité pour provoquer un comportement particulier.

Il faut donc distinguer la détection d’une faille, qui consiste à rechercher sa présence, de son exploitation, qui consiste à l’utiliser.

Une porte dérobée (ou backdoor) est un accès secret et caché laissé dans un système informatique ou un logiciel. En pentesting, elle est utilisée pour contourner les protections normales (comme les mots de passe ou les pare-feu) afin de pouvoir se reconnecter facilement à une machine cible sans avoir à refaire toute la procédure d’attaque initiale.

Les scripts sont classés par catégories

Chaque script réalise une tâche précise. Pour vous aider à choisir, NSE regroupe les scripts selon leur objectif ou leur manière d’agir.

CatégorieFonction principale
authExaminer des mécanismes d’authentification et d’accès.
broadcastDécouvrir des équipements grâce à des communications diffusées sur le réseau local.
bruteTester différentes combinaisons d’identifiants et de mots de passe.
defaultRegrouper les scripts sélectionnés pour l’ensemble par défaut.
discoveryRecueillir des informations sur les machines et leurs services.
dosTester des situations pouvant rendre un service indisponible.
exploitTenter d’exploiter certaines vulnérabilités.
externalUtiliser des ressources ou services extérieurs pour obtenir des informations.
fuzzerEnvoyer des données inhabituelles pour rechercher des comportements anormaux.
intrusiveRéaliser des vérifications susceptibles de perturber la cible.
malwareRechercher des indices de logiciels malveillants ou de portes dérobées.
safeRegrouper les scripts conçus pour limiter les risques de perturbation.
versionAider à identifier les versions des services.
vulnRechercher des vulnérabilités connues.

Vous pouvez sélectionner un script précis ou une catégorie entière. Avant de lancer un script, prenez le temps de comprendre ce qu’il fait : une simple collecte d’informations et un test susceptible d’interrompre un service n’ont pas les mêmes effets.

Où trouver des scripts NSE ?

Les scripts NSE (Nmap Scripting Engine) sont extrêmement accessibles :

  • Directement sur votre machine : Ils sont installés par défaut avec Nmap (généralement dans le dossier /usr/share/nmap/scripts/ sous Linux).
  • Sur le site officiel : La référence complète est disponible sur le site de Nmap dans la rubrique NSE Documentation.

Comment savoir ce qu’ils font ?

Pour comprendre l’utilité d’un script sans avoir à lire son code technique :

  • Via le terminal : Tapez la commande nmap --script-help <nom_du_script> pour afficher sa description,son fonctionnement et les options qu’il accepte.
  • Sur la documentation en ligne : Chaque script répertorié sur le site de Nmap possède une page dédiée expliquant son objectif exact et des exemples d’utilisation.
  • Dans l’en-tête du fichier : Chaque script contient au début des commentaires clairs rédigés par son auteur pour expliquer ce qu’il fait.

Quand savoir lesquels utiliser ?

Pour ne pas avoir à choisir un script au hasard parmi des centaines, Nmap les classe par catégories logiques. Vous choisissez votre script ou votre catégorie selon l’objectif de votre test :

  • default : Des scripts sûrs, rapides et très utiles à lancer régulièrement (activés avec l’option -sC).
  • vuln : À utiliser lorsque vous souhaitez scanner un système à la recherche de failles de sécurité connues.
  • discovery : Utile au début d’un audit pour récolter un maximum d’informations sur le réseau ou les services (utilisateurs, partages, etc.).
  • auth : Pour tester si des services utilisent des mots de passe par défaut ou des authentifications faibles.
  • safe : Des scripts conçus pour ne pas risquer de faire planter ou surcharger le service ciblé.

Exécuter un script avec --script

L’option --script indique à Nmap quel script vous souhaitez utiliser. Voici l’exemple avec le script banner :

nmap --script banner 192.168.56.102

Cette commande demande à Nmap d’analyser la machine située à l’adresse 192.168.56.102 et d’utiliser le script bannersur les ports adaptés.

Une bannière est un message qu’un service peut envoyer lorsqu’une connexion est établie. Ce message peut contenir son nom, sa version ou un texte d’accueil.

Le script banner établit une connexion TCP et tente de récupérer ce message. Cela peut vous aider à reconnaître un service, notamment lorsqu’il utilise un port inhabituel. Le numéro du port constitue alors un indice, tandis que la réponse du service apporte une information supplémentaire. Tous les services ne fournissent toutefois pas une bannière exploitable.

Rechercher des vulnérabilités avec vuln

Pour sélectionner une catégorie entière, vous utilisez la même option, suivie du nom de cette catégorie :

nmap --script vuln 192.168.56.102

Ici, vous demandez à Nmap d’utiliser les scripts de la catégorie vuln. Les vérifications effectivement réalisées dépendent des scripts disponibles et des services détectés : chaque script ne s’applique pas automatiquement à tous les ports.

Ces scripts recherchent des problèmes de sécurité connus. Leurs résultats doivent être interprétés avec attention : certains signalent une vulnérabilité, d’autres peuvent indiquer qu’un service ne semble pas concerné ou que la vérification n’a pas abouti. L’absence d’alerte ne prouve donc pas que la machine est entièrement sécurisée.

Conserver les informations utiles

Lorsqu’un résultat mentionne une référence CVE, vous disposez d’un identifiant permettant de retrouver une vulnérabilité précise. Vous pouvez le voir comme le numéro de dossier d’une faille, utile pour rechercher sa description et les corrections associées.

Une référence CVE (Common Vulnerabilities and Exposures) est un identifiant unique attribué à une faille de sécurité informatique découverte dans un logiciel ou un système. En clair, c’est un numéro de catalogue officiel (par exemple : CVE-2021-44228) qui permet à tous les experts en cybersécurité du monde entier de parler exactement de la même vulnérabilité sans confusion.

Pour chaque découverte, notez l’adresse de la machine, le port concerné, le service détecté, le message obtenu et les références éventuelles. Ces éléments vous permettront de vérifier vos observations et de préparer un compte rendu clair.

Lorsque vous disposez d’une référence CVE, voici comment en savoir plus sur cette faille :

  1. Consultez la base officielle (CVE.org ou NVD) Rendez-vous sur le site officiel cve.mitre.org ou sur la base du NIST (NVD). En y tapant votre référence (ex: CVE-2021-44228), vous obtiendrez la description officielle de la faille, le type de système touché et son niveau de gravité (le score CVSS).
  2. Lisez l’avis de l’éditeur du logiciel Le fabricant du produit concerné (Microsoft, Apple, un éditeur de logiciel libre, etc.) publie un bulletin de sécurité. C’est la source la plus fiable pour savoir si la faille a été corrigée et comment appliquer la mise à jour.
  3. Recherchez des analyses techniques (ou PoC) Si vous souhaitez comprendre techniquement comment la faille fonctionne, vous pouvez chercher la référence sur des plateformes comme GitHub ou Exploit-DB. Des chercheurs en sécurité y partagent souvent des explications détaillées et des scripts de test (Proof of Concept).

Le score CVSS (Common Vulnerability Scoring System) est une note standardisée, allant de 0,0 à 10,0, qui permet d’évaluer la gravité technique d’une vulnérabilité (une CVE).

Le score se traduit par une étiquette qualitative qui aide à comprendre l’urgence de la situation :

  • 0,0 (Aucun) : Pas de risque ou purement informatif.
  • 0,1 à 3,9 (Faible) : La faille est difficile à exploiter ou ses conséquences sont minimes.
  • 4,0 à 6,9 (Moyen) : L’impact est réel, mais l’attaque nécessite souvent des conditions particulières (accès préalable, interaction de l’utilisateur).
  • 7,0 à 8,9 (Élevé) : La faille est dangereuse. Elle peut souvent être exploitée à distance pour compromettre la sécurité du système.
  • 9,0 à 10,0 (Critique) : Alerte maximale. La faille est généralement facile à exploiter à distance (parfois sans aucune action de l’utilisateur) et permet à un pirate de prendre le contrôle total du système.

Le calcul repose sur plusieurs critères, notamment :

  • La facilité d’exploitation : Est-ce qu’un attaquant a besoin d’être sur place, ou peut-il agir à distance ?Doit-il être authentifié ?
  • L’impact : Que se passe-t-il si la faille est exploitée ? Y a-t-il vol de données (confidentialité), modification de fichiers (intégrité) ou plantage du service (disponibilité) ?

Petit rappel de la phase d’analyse en pentesting

Nmap vous permet de repérer les ports ouverts d’une machine, mais aussi d’obtenir des informations sur les services qui les utilisent. Plusieurs options vous aident à préciser votre analyse.

L’option -sV sert à identifier les services et leurs versions. Nmap envoie des requêtes aux ports ouverts et analyse les réponses. Vous pouvez ainsi découvrir quel logiciel fonctionne derrière un port et, lorsque cela est possible, connaître son numéro de version. Nous l’avons vu dans le chapitre précédent sur le scan des ports.

Cette vérification est particulièrement utile lorsqu’un service utilise un port inhabituel. Par exemple, un serveur web peut fonctionner sur le port 34567. Vous fier uniquement au numéro du port ne suffit donc pas pour reconnaître le service. Les informations obtenues doivent être conservées dans vos notes pour guider la suite de votre analyse.

L’option -T permet de régler la vitesse du scan, avec des niveaux allant de 0, le plus lent, à 5, le plus rapide.

Un scan lent espace davantage les échanges avec la machine et peut être moins facile à remarquer. Un scan rapide permet de gagner du temps, notamment si vous devez examiner de nombreuses machines. En revanche, une vitesse trop élevée peut entraîner des réponses manquées et rendre les résultats moins fiables. Vous devez donc adapter ce réglage à la situation.

L’option -O tente de reconnaître le système d’exploitation, par exemple Windows ou Linux. Cette information vous permet de concentrer vos recherches sur les problèmes qui peuvent réellement concerner la machine. Une faiblesse propre à Linux ne sera généralement pas pertinente pour une cible fonctionnant sous Windows.

Une fois le scan terminé, vous disposez d’une liste de ports ouverts et de services accessibles. Vous devez ensuite organiser et étudier ces résultats : quels services sont présents, quelles versions sont utilisées et quels accès méritent une vérification supplémentaire ?

👉 Consultez notre guide complet sur Nmap.

Les services d’accès à distance, comme Telnet et SSH, font partie des éléments à examiner lors d’un test d’intrusion autorisé. Ils permettent d’ouvrir une session sur une autre machine. SSH chiffre les échanges, tandis que Telnet transmet habituellement les informations sans chiffrement.

Les exemples de connexion sont :

telnet ip_cible
ssh root@ip_cible

Vous devez remplacer ip_cible par l’adresse IP de la machine concernée. Dans la seconde commande, root désigne le compte administrateur du système ; la commande tente une connexion avec ce compte, sans garantir qu’elle sera acceptée.

Une mauvaise configuration peut parfois laisser un accès protégé par des identifiants par défaut. Lors d’un contrôle autorisé, vérifier ce point peut révéler une faiblesse importante sans avoir à exploiter une faille complexe. Ces tentatives échouent souvent, mais lorsqu’elles réussissent, elles montrent qu’un accès sensible est insuffisamment protégé. C’est le Jackpot !

Scan de vulnérabilités

La phase d’analyse vous permet de passer d’une liste de machines à une vision plus précise de leurs faiblesses. Après avoir repéré les adresses IP, les ports ouverts et les services avec Nmap, vous pouvez rechercher les vulnérabilités : des défauts dans les logiciels ou leur configuration, souvent liés à des mises à jour manquantes.

Scan de vulnérabilités

Nessus est un outil qui automatise une partie de cette recherche. Nous le découvrirons bientôt. Il utilise des plugins, c’est-à-dire de petits modules de vérification, pour détecter des problèmes connus. Vous choisissez les machines à examiner et les contrôles à effectuer. Certains tests pouvant perturber les services, les réglages prudents permettent de limiter les risques.

À la fin du scan, vous obtenez un rapport qui classe les problèmes selon leur gravité. Votre travail consiste alors à comprendre les alertes, vérifier les résultats et conserver des notes précises, notamment sur les failles importantes ou critiques. Une alerte ne prouve pas, à elle seule, qu’une attaque réussira.

Vous disposez ainsi des éléments nécessaires pour préparer la phase d’exploitation : vérifier, dans le cadre du test autorisé, si certaines faiblesses permettent réellement d’obtenir un accès ou d’effectuer une action non prévue.

Un prochain chapitre sera consacré à la prise en main de Nessus. Vous découvrirez comment préparer un scan et interpréter ses résultats pour compléter les informations recueillies avec Nmap.