Comment utiliser Nmap pour l’analyse des vulnérabilités ?



Nmap, souvent désigné comme un scanner réseau, est un outil polyvalent pour effectuer des tests de fonctionnalité et de pénétration sur un réseau. Il excelle notamment dans l’analyse des ports et l’identification des vulnérabilités potentielles.

Le moteur de script Nmap (NSE) constitue une des fonctionnalités phares de Nmap, particulièrement appréciée pour sa puissance. Les scripts d’analyse de vulnérabilité NSE sont couramment utilisés par les professionnels en tests d’intrusion et par les experts en sécurité pour identifier les faiblesses connues des systèmes.

La base de données Common Vulnerabilities and Exposures (CVE) recense les problèmes de sécurité des données qui ont été publiquement divulgués. Elle constitue une référence précieuse pour détecter et évaluer les vulnérabilités et les menaces pesant sur la sécurité des systèmes d’information.

Cet article a pour objectif de vous guider dans l’utilisation de Nmap pour l’analyse de vulnérabilités.

Sans plus attendre, commençons!

Installation de Nmap

Nmap est généralement inclus par défaut dans la plupart des distributions Linux. Cependant, si ce n’est pas le cas, une installation manuelle est nécessaire. Vous pouvez facilement l’installer en utilisant la commande suivante :

apt-get install nmap

Vous pouvez également l’installer en clonant le référentiel Git officiel.

git clone https://github.com/nmap/nmap.git

Ensuite, accédez au répertoire nouvellement créé et installez les dépendances en exécutant les commandes ci-dessous :

./configure
make
make install

La version la plus récente de ce logiciel, ainsi que les programmes d’installation binaires pour Windows, macOS et Linux (RPM), sont accessibles ici.

Analyse de vulnérabilité avec Nmap

Nmap-vulners, vulscan et vuln sont parmi les scripts les plus utilisés et les plus efficaces pour la détection de CVE dans le moteur de script Nmap. Ces outils permettent d’obtenir des informations cruciales sur les failles de sécurité d’un système.

Nmap-vulners

Nmap-vulners est un scanner de vulnérabilité particulièrement réputé. Voyons comment configurer cet outil et comment exécuter une analyse CVE de base. Le moteur de script Nmap examine les réponses HTTP pour identifier les CPE (Configuration Item) pour le script donné.

Installation

Pour installer le script Nmap-vulners, naviguez vers le répertoire des scripts Nmap à l’aide de la commande suivante :

cd /usr/share/nmap/scripts/

L’étape suivante consiste à cloner le référentiel git.

git clone https://github.com/vulnersCom/nmap-vulners.git

Une fois le référentiel git cloné, aucune autre configuration n’est requise. L’outil est automatiquement installé.

Pour consulter la liste des scripts NSE présents dans la base de données Nmap-vulners, utilisez la commande ls. Elle affichera tous les scripts ayant l’extension .nse sur le terminal.

Utilisation

L’utilisation des scripts NSE est assez simple. Il vous suffit de transmettre l’argument « –script » à votre commande Nmap, en spécifiant quel script NSE vous souhaitez utiliser.

nmap -sV --script vulners [--script-args mincvss=<arg_val>] <cible>

N’oubliez pas d’inclure l’argument « -sV » lors de l’utilisation des scripts NSE. Nmap-vulners ne pourra pas accéder à la base de données d’exploits Vulners s’il ne reçoit pas d’informations de version de Nmap. Par conséquent, le paramètre -sV est indispensable.

Exemple de commande

La syntaxe est assez intuitive. Il suffit d’appeler le script à l’aide de l’option « –script », en indiquant le moteur et la cible pour lancer l’analyse de vulnérabilités.

nmap -sV --script nmap-vulners/ <cible>

Si vous souhaitez analyser des ports spécifiques, ajoutez simplement l’option « -p » à la fin de la commande, suivie du numéro de port souhaité.

nmap -sV --script nmap-vulners/ <cible> -p80,223

Nmap – vulnérabilité

Les scripts NSE sont organisés en fonction d’un ensemble de catégories prédéfinies. Ces catégories comprennent, entre autres, l’authentification, la diffusion, la force brute, l’intrusion, les logiciels malveillants, la sécurité, la version et la vulnérabilité. Vous pouvez consulter la liste complète des catégories de scripts NSE et leurs phases ici.

Les scripts appartenant à la catégorie « vuln » sont conçus pour rechercher des vulnérabilités spécifiques connues et ne signalent ces dernières que si elles sont effectivement détectées sur le système cible.

nmap -sV --script vuln <cible>

Nmap-vulscan

Vulscan est un script NSE qui complète Nmap en lui permettant de détecter les vulnérabilités sur les cibles en se basant sur les services et les informations de version. Vulscan se comporte comme un module additionnel pour Nmap, le transformant ainsi en un scanner de vulnérabilité. L’option Nmap -sV permet d’identifier la version des services, ce qui est essentiel pour repérer les failles potentielles dans le système.

Les bases de données suivantes sont préinstallées par défaut :

  • exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

Installation

Pour installer Vulscan, commencez par vous rendre dans le répertoire des scripts Nmap à l’aide de la commande suivante :

cd /usr/share/nmap/scripts/

Ensuite, clonez le référentiel git et installez les dépendances nécessaires.

git clone https://github.com/scipag/vulscan.git

ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan 

Vulscan exploite des bases de données pré-configurées, enregistrées localement sur votre machine. Pour les mettre à jour, accédez au répertoire de mise à jour. Tapez la commande suivante dans un terminal pour vous y rendre.

cd vulscan/utilities/updater/

Modifiez ensuite les autorisations du fichier pour qu’il puisse être exécuté sur votre système.

chmod +x updateFiles.sh

Enfin, mettez à jour les bases de données d’exploits en utilisant la commande ci-dessous :

 ./updateFiles.sh

Utilisation

Nous allons à présent utiliser Vulscan pour réaliser une analyse de vulnérabilité Nmap. Le script Vulscan NSE peut être utilisé de manière similaire à Nmap-vulners.

nmap -sV --script vulscan <cible>

Par défaut, Vulscan effectue une recherche dans toutes les bases de données simultanément. Cela peut prendre un temps considérable. En utilisant le paramètre vulscandb, vous pouvez spécifier une seule base de données CVE à la fois.

--script-args vulscandb=nom_de_la_base_de_données

Exemple de commande

nmap -sV --script vulscan --script-args vulscandb=exploit.csv <cible> -p 80,233

Analyse de vulnérabilités individuelles

Il est également possible d’effectuer des analyses de vulnérabilités spécifiques en utilisant des scripts dédiés pour chaque catégorie. Voici une liste de tous les scripts NSE (plus de 600) scripts NSE et 139 Bibliothèques NSE.

Exemples

  • http-csrf : Ce script détecte les vulnérabilités de type CSRF (Cross-Site Request Forgery).
nmap -sV --script http-csrf <cible>
  • http-sherlock : Ce script est conçu pour exploiter la vulnérabilité « Shellshock » dans les applications web.
nmap -sV --script http-sherlock <cible>
  • http-slowloris-attack : Ce script vérifie si un serveur web ou un système cible est vulnérable à l’attaque Slowloris DoS sans pour autant la lancer.
nmap -sV --script http-slowloris-check <cible>
  • http-vmware-path-vuln : Ce script teste les serveurs VMWare ESX, ESXi et Server pour une vulnérabilité de type traversée de chemin.
nmap -sV --script http-vmware-path-vuln <cible>
  • http-passwd : Ce script tente de récupérer les fichiers /etc/passwd ou boot.ini pour déterminer si un serveur web est vulnérable à la traversée de répertoires.
nmap -sV --script http-passwd <cible>
  • http-internal-ip-disclosure : Lors de l’envoi d’une requête HTTP/1.0 sans en-tête Host, ce script vérifie si le serveur web divulgue son adresse IP interne.
nmap -sV --script http-internal-ip-disclosure <cible>
  • http-vuln-cve2013-0156 : Ce script détecte les serveurs Ruby on Rails qui sont vulnérables aux attaques DOS et à l’injection de commandes.
nmap -sV --script http-vuln-cve2013-0156 <adresse_cible>

Enfin, voici une liste de tous les scripts NSE qui appartiennent à la catégorie « vulnérable ».

Votre système est-il capable de détecter les scans Nmap ?

La phase de reconnaissance est la première étape lors d’un test d’intrusion ou d’une démarche de piratage éthique. Les pirates utilisent cette phase pour identifier les failles d’un système. Par conséquent, il est crucial que les systèmes de défense soient en mesure de détecter ces activités.

Vous recevrez des alertes si vous utilisez des outils SIEM (Security Information and Event Management), des pare-feu ou d’autres mesures défensives. Voici une liste des meilleurs outils SIEM pour protéger votre entreprise et votre organisation contre les cyberattaques. Ces outils permettent également d’enregistrer les scans Nmap. Les analyses de vulnérabilité sont essentielles car une identification précoce peut prévenir de futurs dommages aux systèmes.

Conclusion

J’espère que cet article vous a été utile pour comprendre comment utiliser Nmap pour l’analyse de vulnérabilités.

Vous pourriez également être intéressé par la liste des scanners de sécurité web open source pour identifier des vulnérabilités.