Recherche de vulnérabilités avec Nmap

NmapNmapBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à scanner les vulnérabilités à l'aide du script vuln de Nmap. Ce script permet d'identifier les faiblesses de sécurité potentielles en vérifiant des problèmes courants tels que les identifiants par défaut, le logiciel obsolète et les configurations erronées.

Vous allez exécuter le script vuln contre une adresse IP cible (en utilisant 127.0.0.1 à des fins de démonstration dans l'environnement de la machine virtuelle LabEx), scanner des ports spécifiques, ajouter de la verbeosité pour obtenir une sortie plus détaillée, enregistrer les résultats dans un fichier, puis examiner les vulnérabilités identifiées dans le terminal Xfce et les comparer avec les résultats de la détection de services.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/scripting_basics("Scripting Engine Basics") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/output_formats -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/save_output -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/scan_types -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/target_specification -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/verbosity -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/os_version_detection -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/service_detection -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/scripting_basics -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} nmap/script_management -.-> lab-547109{{"Recherche de vulnérabilités avec Nmap"}} end

Exécuter le script vuln avec nmap --script vuln 192.168.1.1

Dans cette étape, nous allons utiliser le script vuln de Nmap pour scanner une adresse IP cible à la recherche de vulnérabilités connues. Le script vuln est un outil puissant qui peut aider à identifier les faiblesses de sécurité potentielles dans un système.

Avant de commencer, parlons brièvement de ce que sont les scripts Nmap. Les scripts Nmap sont écrits dans le langage de programmation Lua et vous permettent d'étendre la fonctionnalité de Nmap. Ils peuvent être utilisés pour diverses tâches, notamment la détection de vulnérabilités, la découverte de services et la reconnaissance réseau.

Le script vuln est une collection de scripts conçus pour identifier les vulnérabilités communes. Il vérifie une large gamme de problèmes, tels que les identifiants par défaut, les versions de logiciel obsolètes et les configurations erronées.

Commencez par scanner l'adresse IP cible 192.168.1.1 à l'aide du script vuln. Étant donné que 192.168.1.1 est une adresse IP privée, il est peu probable qu'elle soit directement accessible depuis l'environnement de la machine virtuelle LabEx. Pour des fins de démonstration, nous utiliserons 127.0.0.1 (localhost) comme cible. Cela suppose qu'il y a un service en cours d'exécution sur la machine virtuelle LabEx que nous pouvons scanner.

Ouvrez votre terminal Xfce et exécutez la commande suivante :

sudo nmap --script vuln 127.0.0.1

Vous devrez probablement utiliser sudo car Nmap a souvent besoin de privilèges élevés pour effectuer certaines scans.

Cette commande indique à Nmap d'exécuter le script vuln contre l'adresse IP 127.0.0.1. Nmap tentera ensuite d'identifier toute vulnérabilité sur le système cible.

La sortie montrera les résultats du scan. Elle listera toute vulnérabilité trouvée, ainsi qu'une description du problème et des étapes de remédiation potentielle.

Exemple de sortie (la sortie réelle dépendra des services en cours d'exécution sur 127.0.0.1) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.

80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

Dans cet exemple, Nmap a scanné les ports 22 et 80 sur 127.0.0.1. Le script vulners, qui est une partie du jeu de scripts vuln, n'a pas été capable de trouver de vulnérabilités connues pour les services exécutés sur ces ports. Cela ne signifie pas nécessairement que le système est complètement sécurisé, mais cela indique qu'il n'y a pas de vulnérabilités immédiatement évidentes.

Scanner un port spécifique avec nmap --script vuln -p 80 127.0.0.1

Dans l'étape précédente, nous avons scanné tous les ports de 127.0.0.1 à l'aide du script vuln. Dans cette étape, nous allons concentrer notre scan sur un port spécifique : le port 80. Cela est utile lorsque vous voulez rapidement vérifier un service particulier à la recherche de vulnérabilités sans scanner tout le système. Le port 80 est couramment utilisé pour le trafic HTTP (web).

L'option -p dans Nmap vous permet de spécifier les ports à scanner. Vous pouvez spécifier un seul port, une plage de ports ou une liste séparée par des virgules de ports.

Pour scanner uniquement le port 80 de 127.0.0.1 à l'aide du script vuln, exécutez la commande suivante dans votre terminal Xfce :

sudo nmap --script vuln -p 80 127.0.0.1

Cette commande indique à Nmap d'exécuter le script vuln contre le port 80 de l'adresse IP 127.0.0.1. Nmap tentera ensuite d'identifier toute vulnérabilité liée au service exécuté sur ce port.

La sortie sera similaire à l'étape précédente, mais elle ne montrera que les résultats pour le port 80.

Exemple de sortie (la sortie réelle dépendra des services exécutés sur 127.0.0.1) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

Nmap done: 1 IP address (1 host up) scanned in 0.87 seconds

Comme vous pouvez le voir, la sortie est exclusivement axée sur le port 80. Le script vulners n'a pas été capable de trouver de vulnérabilités connues.

Le fait de scanner des ports spécifiques peut réduire considérablement le temps nécessaire pour effectuer un scan de vulnérabilité, en particulier lorsque vous n'êtes intéressé que par un service particulier.

Ajouter la détaillement avec nmap -v --script vuln 192.168.1.1

Dans cette étape, nous allons ajouter un détaillement à notre scan Nmap. Le détaillement signifie que Nmap fournira des informations plus détaillées sur le processus de scan. Cela peut être utile pour comprendre ce que fait Nmap et pour résoudre tout problème qui pourrait survenir.

L'option -v dans Nmap augmente le niveau de détaillement. Vous pouvez utiliser -v plusieurs fois pour augmenter encore plus le détaillement (par exemple, -vv ou -vvv).

Pour exécuter le script vuln contre 127.0.0.1 avec détaillement, exécutez la commande suivante dans votre terminal Xfce :

sudo nmap -v --script vuln 127.0.0.1

Cette commande indique à Nmap d'exécuter le script vuln contre l'adresse IP 127.0.0.1 et de fournir une sortie détaillée.

La sortie inclura désormais plus d'informations sur le processus de scan, telles que les scripts qui sont exécutés, les ports qui sont scannés et le temps nécessaire pour terminer chaque étape.

Exemple de sortie (la sortie réelle dépendra des services exécutés sur 127.0.0.1 et sera beaucoup plus longue que la sortie sans détaillement) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Chargé 151 scripts pour le scan.
Lancement d'un scan Ping à 10:10
Scan de 127.0.0.1 [4 ports]
Scan Ping terminé à 10:10, 0.00s écoulé (1 hôte au total)
Lancement de la résolution DNS parallèle de 1 hôte. à 10:10
Résolution DNS parallèle de 1 hôte terminée à 10:10, 0.00s écoulé
Lancement d'un scan SYN Stealth à 10:10
Scan de localhost (127.0.0.1) [1000 ports]
Découverte d'un port ouvert 22/tcp sur 127.0.0.1
Découverte d'un port ouvert 80/tcp sur 127.0.0.1
Scan SYN Stealth terminé à 10:10, 0.06s écoulé (1000 ports au total)
Lancement d'un scan de service à 10:10
Scan de 2 services sur localhost (127.0.0.1)
Scan de service terminé à 10:10, 6.41s écoulé (2 services au total)
NSE: Scan des scripts sur 127.0.0.1.
NSE: Démarrage d'un scan de niveau 1 (sur 1)
Lancement de l'NSE à 10:10
NSE terminé à 10:10, 1.13s écoulé.
Rapport de scan Nmap pour localhost (127.0.0.1)
L'hôte est actif (0.000073s de latence).
Autres adresses pour localhost (alias(es)): localhost

PORT   ÉTAT SERVICE VERSION
22/tcp ouvert  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2.4 (protocole 2.0)
|_ vulners: Aucun résultat de vulnérabilité trouvé.
80/tcp ouvert  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Aucun résultat de vulnérabilité trouvé.
Informations sur le service : OS: Linux; CPE: cpe:/o:linux:linux_kernel

NSE: Post-scan des scripts.
Lancement de l'NSE à 10:10
NSE terminé à 10:10, 0.00s écoulé.
Lecture des fichiers de données à partir de : /usr/bin/../share/nmap
Nmap terminé: 1 adresse IP (1 hôte actif) scanné en 7.70 secondes

La sortie détaillée fournit une vue beaucoup plus détaillée du processus de scan. Vous pouvez voir les différentes étapes du scan, les scripts qui sont exécutés et tout message d'erreur ou d'avertissement qui pourrait survenir.

Sauvegarder les résultats de vulnérabilité avec nmap --script vuln -oN vuln.txt 127.0.0.1

Dans cette étape, nous allons apprendre à sauvegarder les résultats de notre scan de vulnérabilité Nmap dans un fichier. Cela est utile pour une analyse ultérieure, la rédaction de rapports ou la comparaison des résultats au fil du temps.

Nmap propose plusieurs options pour sauvegarder les résultats du scan dans différents formats. L'option -oN sauvegarde les résultats dans un format "normal" lisible par l'homme. D'autres options incluent -oX pour le format XML et -oG pour le format Grepable.

Pour sauvegarder les résultats du scan du script vuln dans un fichier nommé vuln.txt au format normal, exécutez la commande suivante dans votre terminal Xfce :

sudo nmap --script vuln -oN vuln.txt 127.0.0.1

Cette commande indique à Nmap d'exécuter le script vuln contre l'adresse IP 127.0.0.1 et de sauvegarder les résultats dans le fichier vuln.txt en utilisant le format de sortie normal. Le fichier vuln.txt sera créé dans votre répertoire actuel (~/projet).

Une fois le scan terminé, vous pouvez visualiser le contenu du fichier vuln.txt à l'aide d'un éditeur de texte tel que nano :

nano vuln.txt

Cela ouvrira le fichier vuln.txt dans l'éditeur nano, vous permettant de réviser les résultats du scan. La sortie sera similaire à ce que vous voyez à l'écran lorsque vous exécutez Nmap sans l'option -oN.

Contenu exemple de vuln.txt (le contenu réel dépendra des services exécutés sur 127.0.0.1) :

## Nmap 7.80 scan initiated Tue Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

## Nmap done at Tue Oct 27 10:15:07 2023 -- 1 IP address (1 host up) scanned in 7.00 seconds

Vous pouvez également utiliser d'autres commandes Linux pour visualiser le fichier, telles que cat :

cat vuln.txt

La sauvegarde des résultats du scan dans un fichier est une étape cruciale dans l'évaluation de vulnérabilités et le test de pénétration. Elle vous permet de documenter vos découvertes et de suivre les modifications au fil du temps.

Vérifier les vulnérabilités dans le terminal Xfce

Dans cette étape, nous allons vérifier les résultats du scan de vulnérabilités directement dans le terminal Xfce. Cela consiste à examiner la sortie de la commande nmap --script vuln pour identifier les vulnérabilités potentielles sur le système cible.

Tout d'abord, exécutons à nouveau le scan de vulnérabilités contre 127.0.0.1. Cela nous assurera d'avoir les résultats les plus à jour à vérifier. Exécutez la commande suivante dans votre terminal Xfce :

sudo nmap --script vuln 127.0.0.1

Examinez attentivement la sortie. Le script vuln tente d'identifier les vulnérabilités connues en vérifiant les versions et les configurations des services. Recherchez toutes les lignes qui indiquent des vulnérabilités potentielles.

La sortie montrera les ports ouverts et les services exécutés sur ces ports. Le script vulners, qui est partie de l'ensemble de scripts vuln, tente de correspondre les versions de service avec les vulnérabilités connues.

Exemple de sortie (la sortie réelle dépendra des services exécutés sur 127.0.0.1) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE
22/tcp open  ssh
|_ vulners: Could not find vulnerability results.
80/tcp open  http
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ vulners: Could not find vulnerability results.

Nmap done: 1 IP address (1 host up) scanned in 7.00 seconds

Dans cet exemple, le script vulners n'a pas été capable de trouver de résultats de vulnérabilité pour les services SSH et HTTP. Cependant, si des vulnérabilités avaient été trouvées, la sortie aurait inclus des détails sur les vulnérabilités spécifiques et des liens vers des ressources pertinentes.

Si vous voyez une sortie indiquant des vulnérabilités potentielles, recherchez ces vulnérabilités plus en détail pour comprendre les risques et les moyens de les atténuer. Vous pouvez utiliser les informations sur la version du service (par exemple, "Apache/2.4.29 (Ubuntu)") pour rechercher les vulnérabilités connues dans cette version spécifique du logiciel.

Cette étape est cruciale pour comprendre la posture de sécurité du système cible et pour identifier les zones de préoccupation potentielles.

Comparaison avec la détection de services dans le terminal Xfce

Dans cette étape, nous allons comparer les résultats du scan de vulnérabilité avec la détection standard de services fournie par Nmap. Cela nous aidera à comprendre si le script vuln fournit des informations supplémentaires au-delà de ce que Nmap détecte normalement.

Tout d'abord, exécutez un scan de détection de services Nmap standard contre 127.0.0.1. Exécutez la commande suivante dans votre terminal Xfce :

sudo nmap -sV 127.0.0.1

L'option -sV indique à Nmap d'effectuer une détection de la version du service. Cela tentera d'identifier les versions spécifiques des services exécutés sur les ports ouverts.

Exemple de sortie (la sortie réelle dépendra des services exécutés sur 127.0.0.1) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (alias(es)): localhost

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.00 seconds

Maintenant, comparez cette sortie avec la sortie de la commande nmap --script vuln 127.0.0.1 que vous avez exécutée dans l'étape précédente.

Plus précisément, recherchez ce qui suit :

  • Versions des services : La détection -sV identifie-t-elle les mêmes versions de service que le script vuln ? Le script vuln repose souvent sur les informations de version du service pour identifier les vulnérabilités potentielles.
  • Informations sur les vulnérabilités : Le script vuln fournit-il des informations supplémentaires sur les vulnérabilités qui ne sont pas présentes dans la sortie du scan -sV ? Le script vuln utilise la bibliothèque vulners pour vérifier les vulnérabilités connues en fonction de la version du service.

En comparant les deux sorties, vous pouvez mieux comprendre la valeur que le script vuln fournit. Dans de nombreux cas, le script vuln identifiera des vulnérabilités potentielles qui ne sont pas immédiatement apparentes dans le scan de détection standard de services. C'est parce que le script vuln est spécifiquement conçu pour rechercher les vulnérabilités connues, tandis que le scan -sV est principalement axé sur l'identification du service et de sa version.

Cette comparaison vous aide à comprendre les différents niveaux d'informations que vous pouvez obtenir à partir de Nmap et à savoir comment utiliser différents scripts et options pour obtenir une évaluation de sécurité la plus complète possible.

Sommaire

Dans ce laboratoire, nous avons exploré l'utilisation du script vuln de Nmap pour scanner les vulnérabilités sur un système cible. Nous avons appris à exécuter le script contre une adresse IP spécifique (en utilisant 127.0.0.1 comme exemple pratique en raison de l'environnement du laboratoire) avec la commande nmap --script vuln 127.0.0.1, ce qui nécessite souvent sudo pour les privilèges nécessaires.

Le laboratoire a également montré comment scanner un port spécifique en utilisant nmap --script vuln -p 80 127.0.0.1, augmenter la verbosité avec nmap -v --script vuln 192.168.1.1 et enregistrer les résultats du scan dans un fichier en utilisant nmap --script vuln -oN vuln.txt 127.0.0.1. Enfin, le laboratoire a consisté à examiner les résultats du scan de vulnérabilité et à les comparer avec les informations de détection de services dans le terminal Xfce.