15/11/2024

Analyse de la sécurité : détection des vulnérabilités

I. Présentation

Dans ce chapitre, nous allons apprendre à utiliser l’outil de scan réseau Nmap afin de mener une détection ou analyse de vulnérabilités sur les cibles de nos scans. Nous découvrirons notamment les différentes options permettant d’accomplir cette tâche et étudierons les limites des capacités de l’outil afin de mieux comprendre et interpréter ses résultats.

Ce premier chapitre sera l’occasion d’introduire la recherche de vulnérabilités par Nmap, nous verrons comment utiliser de manière basique les options de détection de vulnérabilités. Cela nous permettra dans les prochains chapitres d’étudier plus en détail le fonctionnement de cette fonctionnalité, ainsi que sa personnalisation.

II . Utiliser Nmap pour détecter des vulnérabilités

Nous souhaitons à présent utiliser le scanner réseau Nmap afin de détecter des vulnérabilités sur les services et systèmes de notre système d’information. Cela signifie qu’en plus de faire une découverte des hôtes actifs, puis une énumération des services exposés et une détection des versions et technologies, Nmap cherchera détecter des vulnérabilités.

Pour réaliser cette tâche, Nmap se repose sur des scripts NSE (Nmap Scripting Engine), que l’on peut voir comme des modules qui permettent une approche granulaire des tests.

Avec les bonnes options, nous demanderons donc à Nmap d’utiliser ses différents scripts NSE sur chaque service découvert, permettant ainsi de découvrir :

  • Des défauts de configuration ;
  • Des découvertes additionnelles et plus avancées de version et OS ;
  • Des vulnérabilités connues (CVE) ;
  • Des identifiants faibles ;
  • Des éléments caractéristiques d’une infection par un malware ;
  • Des possibilités de déni de service ;
  • Etc.

Vous l’aurez compris, les scripts NSE permettent d’étendre de manière importante les capacités de Nmap concernant les opérations réseau qu’il peut réaliser. Et ce pour faire des tâches bien plus avancées que celles réalisées jusque -là. La bonne nouvelle, c’est que comme d’habitude, ces fonctionnalités peuvent être utilisées simplement via une option et dans un contexte “par défaut”. C’est ce que nous allons voir par la suite.

III. Exemple de scan de vulnérabilité

L’utilisation des scripts NSE peut être faite lors de l’utilisation de Nmap pour scanner un seul port sur un hôte, l’ensemble des services de cet hôte ou pour tous les services détectés sur plusieurs réseaux. Nous pouvons donc utiliser les options que nous allons voir dans l’ensemble des contextes d’utilisation étudiés jusque-là.

Pour activer la recherche de vulnérabilité via un scan Nmap, nous devons utiliser l’option “-sC” :

# Activer la recherche de vulnérabilité lors d’un scan
nmap -sC 10.10.10.152

Attention, rappelez-vous que par défaut si on ne lui spécifie rien, Nmap ne va scanner que les 1000 ports les plus communs. Il ne fera donc pas de détection de vulnérabilité sur les ports plus exotiques que vos cibles pourraient exposer.

Avant d’utiliser cette fonctionnalité sur un système d’information de production, je vous invite à continuer la lecture du cours. Nous verrons notamment dans les prochains chapitres comment mieux maîtriser l’impact et les types de tests qui seront exécutés.

En réutilisant ce que nous avons appris précédemment, nous pouvons par exemple être plus complet et scanner la totalité des ports TCP d’une cible :

# Activer la recherche de vulnérabilité sur tous les ports
nmap -sC -p- 10.10.10.152

Voici le résultat d’un scan Nmap utilisant les scripts NSE :

Exemple de résultat d’un scan de vulnérabilités sur un hôte via Nmap.
Exemple de résultat d’un scan de vulnérabilités sur un hôte via Nmap.

Nous voyons ici l’affichage d’informations supplémentaires intéressantes dans le cadre d’une analyse de vulnérabilité :

  • Le service FTP est accessible en mode anonyme, il n’est pas protégé par une authentification. Le script NSE en charge de cette vérification nous l’indique et nous affiche même une partie de l’arborescence du service FTP, nous voyons ici que nous avons accès au répertoire “C” du système Windows !
  • Le script NSE en charge de la récupération avancée des services web nous affiche le titre de la page, ce qui permet de se faire une meilleure idée de ce que le service web héberge.
  • Nous avons également une mini analyse de la configuration du service SMB (scripts “smb2-time”, “smb-security-mode” et “smb2-security-mode”). L’affichage des informations est un peu différent puisqu’elles sont présentes après le résultat du scan réseau pour une meilleure lisibilité. Ces informations nous indiquent notamment l’absence de signature des échanges SMB. Cette faiblesse de configuration permet d’utiliser la cible dans le cadre d’une attaque SMB Relay, un défaut de sécurité notable et souvent exploité dans le cadre de tests d’intrusion/cyberattaque.

Il ne s’agit là bien entendu que d’un exemple. Nmap possède des scripts NSE concernant de nombreux services et ciblant un grand nombre de vulnérabilités. Nous étudierons plus en profondeur ces nombreuses possibilités dans le prochain chapitre.

Pour finir sur cette introduction au scan de vulnérabilité, voici une commande complète de découverte réseau, scan de port TCP, détection de version et de vulnérabilités :

# Commande complète et réaliste de scan de vulnérabilité
nmap -sV -sC -p- 192.168.0.0/24 192.168.1.13 192.168.2.10-20 --exclude 192.168.0.4

Voilà une commande qui commence à ressembler à des cas d’utilisation plus réalistes de Nmap !

IV. Connaître les limites de Nmap dans la recherche de vulnérabilité

Que l’on soit clair, Nmap n’est pas en capacité de réaliser un test d’intrusion complet de votre système d’information ou de simuler une opération Red Team. Il possède plusieurs limites qu’il faut connaître pour ne pas avoir un faux sentiment de sécurité :

  • Couverture limitée : bien que les scripts NSE de Nmap soient puissants, leur couverture de test peut être limitée par rapport à d'autres outils spécialisés dans la découverte de vulnérabilités. Certaines vulnérabilités peuvent ne pas être couvertes par les scripts NSE disponibles, je pense notamment aux vulnérabilités concernant l’Active Directory, l’exposition de données sensibles ou des cas plus poussés d’application web vulnérables. Pour aller plus loin sur ces trois sujets, je vous oriente vers nos ressources IT-Connect :
  • Complexité des vulnérabilités : certains types de vulnérabilités peuvent être difficiles à détecter à l'aide de scripts NSE en raison de leur complexité. Par exemple, les vulnérabilités nécessitant une interaction complexe avec un service distant peuvent ne pas être détectées efficacement par Nmap (cas de permissions excessives dans un partage de fichier ou d’un défaut de contrôle des permissions dans une application web).
  • Détection passive : Nmap se concentre principalement sur les scans actifs pour détecter les vulnérabilités, ce qui signifie qu'il peut ne pas détecter efficacement les vulnérabilités potentielles sans établir de connexion active avec les hôtes cibles. Les vulnérabilités qui ne se manifestent pas lors d'un scan actif peuvent donc être manquées (cas d’une injection de code dans une application web).
  • Dépendance des mises à jour : la base de données de scripts NSE de Nmap est en constante évolution, mais il peut y avoir un délai entre la découverte d'une nouvelle vulnérabilité et l'ajout d'un script correspondant à Nmap. Par conséquent, Nmap peut ne pas toujours être à jour avec les dernières vulnérabilités.
  • Faux positifs et faux négatifs : comme avec tout outil de sécurité, les scripts NSE de Nmap peuvent produire des faux positifs (fausses alertes de vulnérabilités) ou des faux négatifs (vulnérabilités réelles non détectées). C’est un élément à garder en tête lors de l'analyse des résultats de Nmap.

Il est donc important de comprendre ce que fait Nmap et ce qu’il ne fait pas, et de la même manière de savoir bien interpréter ses résultats. Nous avons notamment vu tout au long de ce cours que les options par défaut peuvent nous faire passer à côté d’éléments importants qu’une utilisation maîtrisée permet de découvrir.

En tant qu’administrateur système réseau, ingénieur sécurité ou même RSSI, l’utilisation de Nmap permet d’avoir un aperçu global, mais assez surfacique, de l’état de sécurité d’un système d’information. Il s’agit là d’une première étape importante de sécurisation qui peut être réalisée régulièrement par l’équipe informatique. Cependant, elle ne doit pas se substituer à l’intervention et l’avis d’experts en cybersécurité qui sauront découvrir des faiblesses de manière bien plus complète que Nmap.

V. Conclusion

Ce premier chapitre du module 3 nous a permis d’introduire le scan de vulnérabilités via Nmap. Nous savons à présent utiliser l’option principale pour réaliser cette tâche, mais connaissons aussi les limites de l’exercice. Dans le prochain chapitre, nous allons étudier plus en profondeur cette fonctionnalité en nous intéressant aux scripts NSE, qui permettent de décupler la puissance de Nmap.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.