Explorer les niveaux de verbosité de Nmap pour l'analyse réseau

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 apprendrez à utiliser Nmap, un puissant outil de numérisation de réseau, à différents niveaux de verbosité. Nmap est l'outil de prédilection des experts en sécurité pour découvrir les hôtes et les services sur les réseaux informatiques. Maîtriser les options de verbosité de Nmap vous permet de réguler les informations affichées lors des numérisations, ce qui est essentiel pour une analyse efficace du réseau et la résolution de problèmes.

Au cours du laboratoire, vous configurerez un serveur local pour pratiquer la numérisation. Vous explorerez également comment différents niveaux de verbosité influencent les résultats de la numérisation et les informations présentées.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") subgraph Lab Skills nmap/installation -.-> lab-415939{{"Explorer les niveaux de verbosité de Nmap pour l'analyse réseau"}} nmap/basic_syntax -.-> lab-415939{{"Explorer les niveaux de verbosité de Nmap pour l'analyse réseau"}} nmap/save_output -.-> lab-415939{{"Explorer les niveaux de verbosité de Nmap pour l'analyse réseau"}} nmap/port_scanning -.-> lab-415939{{"Explorer les niveaux de verbosité de Nmap pour l'analyse réseau"}} nmap/verbosity -.-> lab-415939{{"Explorer les niveaux de verbosité de Nmap pour l'analyse réseau"}} end

Configuration de votre environnement pour la numérisation de réseau

Dans la première étape de cette expérience, nous allons configurer un serveur web local sur votre machine. Ce serveur servira de cible pour la numérisation avec Nmap. Nmap est un puissant outil de numérisation de réseau utilisé en cybersécurité pour découvrir les hôtes et les services sur un réseau informatique. En ayant un serveur local, vous pouvez pratiquer en toute sécurité l'utilisation de Nmap sans affecter les réseaux réels.

Comprendre les serveurs HTTP

Avant de créer le serveur, comprenons ce qu'est un serveur HTTP. HTTP signifie HyperText Transfer Protocol (Protocole de transfert hypertexte). C'est le protocole que votre navigateur web utilise pour communiquer avec les sites web. Un serveur HTTP est une application logicielle qui peut comprendre les URL (adresses web) et le protocole HTTP. Lorsque vous tapez une adresse web dans votre navigateur, le navigateur envoie une requête HTTP au serveur HTTP correspondant, qui renvoie ensuite la page web demandée. Pour notre laboratoire, nous allons créer un simple serveur HTTP en utilisant Python, un langage de programmation populaire et facile à apprendre.

Création du serveur HTTP

Tout d'abord, nous devons nous assurer que vous êtes dans le bon répertoire de travail. Le répertoire de travail est comme un dossier dans lequel vos commandes s'exécuteront. Dans ce cas, nous voulons être dans le répertoire /home/labex/project. Pour accéder à ce répertoire, utilisez la commande suivante :

cd /home/labex/project

Maintenant que nous sommes au bon endroit, nous allons utiliser le module de serveur HTTP intégré à Python pour créer un simple serveur web. Nous allons configurer ce serveur pour écouter sur le port 8080. Un port est comme une porte sur un ordinateur par laquelle le trafic réseau peut entrer ou sortir. Différents services utilisent différents ports. Tapez la commande suivante :

python -m http.server --bind localhost 8080 &

Analysons ce que fait cette commande :

  • python -m http.server : Cette partie lance le module de serveur HTTP intégré à Python. Elle indique à Python d'exécuter la fonctionnalité de serveur HTTP.
  • 8080 : Cela spécifie que le serveur doit écouter sur le port 8080. Cela signifie que toutes les requêtes HTTP entrantes sur ce port seront gérées par notre serveur.
  • & : Placer un astérisque à la fin de la commande exécute le serveur en arrière - plan. Cela est utile car il vous permet de continuer à utiliser le terminal pour d'autres commandes pendant que le serveur est en cours d'exécution.

Après avoir exécuté la commande, vous devriez voir une sortie similaire à :

Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

Cette sortie indique que votre serveur HTTP est maintenant en cours d'exécution et est prêt à accepter des connexions sur le port 8080. Avec ce serveur opérationnel, nous avons maintenant une cible que nous pouvons scanner à l'aide de Nmap dans les étapes suivantes.

Vérification que le serveur HTTP est en cours d'exécution

Il est important de confirmer que votre serveur fonctionne correctement. Pour ce faire, nous pouvons utiliser la commande suivante :

ss -tulwn | grep 8080

La commande ss est utilisée pour afficher les statistiques des sockets. Les options -tulwn indiquent à ss d'afficher les informations sur les sockets TCP, UDP, en écoute et numériques. Le symbole | est un tuyau qui prend la sortie de la commande ss et la transmet à la commande grep. La commande grep recherche ensuite la chaîne 8080 dans la sortie. Si le serveur est en cours d'exécution, cette commande devrait afficher une sortie indiquant que quelque chose écoute sur le port 8080, ce qui confirme que votre serveur HTTP est actif et prêt pour la numérisation avec Nmap.

Comprendre les bases de Nmap et la verbosité par défaut

Maintenant que notre serveur cible est opérationnel, il est temps de commencer à explorer Nmap et ses niveaux de verbosité. Nmap, acronyme de Network Mapper (Cartographe de réseau), est un puissant outil de numérisation de sécurité. Son principal objectif est de vous aider à découvrir les hôtes et les services sur un réseau informatique. Cela est crucial en cybersécurité car il vous permet de comprendre la topologie du réseau et d'identifier les risques de sécurité potentiels.

Qu'est - ce que la verbosité de Nmap ?

Dans Nmap, la verbosité détermine la quantité d'informations affichées lors d'une numérisation. Selon la précision que vous souhaitez pour les résultats de votre numérisation, vous pouvez choisir différents niveaux de verbosité. Voici un détail des niveaux de verbosité courants :

  • Niveau 0 : C'est le niveau par défaut. Il vous donne la sortie standard, qui fournit les informations de base sur la numérisation.
  • Niveau 1 : En utilisant l'option -v, vous pouvez obtenir plus de détails dans la sortie de la numérisation.
  • Niveau 2 : L'utilisation de l'option -vv vous donnera des informations encore plus détaillées.

Effectuer une numérisation avec la verbosité par défaut (niveau 0)

Commençons par effectuer notre première numérisation en utilisant le niveau de verbosité par défaut de Nmap. Cela nous donnera une idée de base des informations que nous pouvons obtenir sans ajouter de verbosité supplémentaire.

nmap -p 8080 localhost > /home/labex/project/verbosity-0.txt

Analysons cette commande :

  • nmap : C'est la commande pour invoquer l'outil de numérisation Nmap. Elle indique à votre système d'utiliser Nmap pour la numérisation du réseau.
  • -p 8080 : Cette option indique à Nmap de concentrer la numérisation sur le seul port 8080. Les ports sont comme des portes sur un ordinateur, et différents services utilisent différents ports. En spécifiant le port 8080, nous ne nous intéressons qu'au service exécuté sur ce port particulier.
  • localhost : Cela indique que nous numérisons la machine locale. En d'autres termes, nous vérifions les services exécutés sur le même ordinateur où nous exécutons la commande Nmap.
  • > /home/labex/project/verbosity-0.txt : Cette partie de la commande redirige la sortie de la numérisation vers un fichier nommé verbosity-0.txt situé dans le répertoire /home/labex/project. Enregistrer la sortie dans un fichier nous permet de la consulter plus tard.

Maintenant, affichons les résultats de la numérisation :

cat /home/labex/project/verbosity-0.txt

Après avoir exécuté cette commande, vous devriez voir une sortie similaire à la suivante :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy

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

Comprenons ce que signifie cette sortie :

  • Début de la numérisation : La première ligne nous indique l'heure exacte à laquelle la numérisation Nmap a commencé. Cela est utile pour suivre le moment où les informations ont été collectées.
  • Cible de la numérisation : Elle montre que nous avons numérisé localhost, qui a l'adresse IP 127.0.0.1.
  • État de l'hôte : Elle indique que l'hôte est actif et répond, avec une latence très faible de 0.000097 secondes.
  • État du port : Elle nous dit que le port 8080 est dans l'état open (ouvert), ce qui signifie qu'un service écoute sur ce port.
  • Service exécuté : Elle suggère que le service probable exécuté sur le port 8080 est http-proxy.
  • Statistiques de fin de numérisation : La dernière ligne nous donne des informations sur la durée de la numérisation, qui dans ce cas a été de 0.05 secondes.

Le niveau par défaut fournit des informations essentielles, mais il manque d'informations détaillées. Dans les étapes suivantes, nous explorerons comment les niveaux de verbosité plus élevés peuvent nous donner des informations plus approfondies sur la numérisation.

Augmentation de la verbosité avec l'option -v

Dans le domaine de la numérisation de réseau, obtenir des informations détaillées est crucial. Dans cette étape, nous allons apprendre à obtenir des détails plus approfondis de Nmap en augmentant le niveau de verbosité. La verbosité dans Nmap fait référence à la quantité d'informations affichées lors d'une numérisation. L'option -v, qui définit le niveau de verbosité à 1, nous donne des informations supplémentaires extrêmement utiles pour l'analyse du réseau.

Exécution d'une numérisation avec une verbosité augmentée

Commençons par exécuter une numérisation avec une verbosité augmentée. Nous allons utiliser la commande suivante :

nmap -p 8080 localhost -v > /home/labex/project/verbosity-1.txt

Analysons cette commande :

  • nmap est la commande pour invoquer l'outil de numérisation Nmap. Nmap est un outil puissant et largement utilisé pour l'exploration de réseau et l'audit de sécurité.
  • -p 8080 indique à Nmap de numériser uniquement le port 8080. Les ports sont comme des portes dans un réseau, et en spécifiant un port, nous concentrons notre numérisation sur un service particulier qui pourrait être exécuté sur ce port.
  • localhost indique que nous ciblons la machine locale. Cela est utile pour tester et comprendre le fonctionnement de Nmap sur votre propre système.
  • -v augmente le niveau de verbosité à 1. Cela signifie que Nmap affichera plus d'informations sur le processus de numérisation.
  • > /home/labex/project/verbosity-1.txt redirige la sortie de la numérisation vers un fichier nommé verbosity-1.txt dans le répertoire /home/labex/project. Enregistrer la sortie dans un fichier nous permet de la consulter plus tard.

Maintenant, regardons les résultats de notre numérisation :

cat /home/labex/project/verbosity-1.txt

Lorsque vous exécutez cette commande, vous devriez voir une sortie plus détaillée similaire à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:35 UTC
Initiating Ping Scan at 15:35
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 15:35, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 15:35
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 8080/tcp on 127.0.0.1
Completed Connect Scan at 15:35, 0.00s elapsed (1 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Compréhension des informations supplémentaires

Avec le niveau de verbosité 1, la sortie fournit une foule de détails supplémentaires. Voici ce que vous pouvez voir :

  1. Le processus de numérisation est décomposé en étapes. Par exemple, il y a une numérisation Ping et une numérisation Connect. La numérisation Ping est utilisée pour vérifier si un hôte est accessible, tandis que la numérisation Connect tente d'établir une connexion à un port spécifique.
  2. Des informations de chronométrage pour chaque étape sont fournies. Cela vous aide à comprendre combien de temps a pris chaque partie de la numérisation.
  3. Vous pouvez voir le moment exact où le port ouvert a été découvert. Cela est important car il vous donne un calendrier clair de la numérisation.
  4. Les fichiers de données utilisés par Nmap lors de la numérisation sont également affichés. Ces fichiers contiennent des informations sur les services, les ports et d'autres données liées au réseau que Nmap utilise pour effectuer ses numérisations.

Ces informations supplémentaires sont très utiles car elles vous permettent de :

  • Comprendre comment Nmap effectue ses numérisations. En voyant les différentes étapes et l'ordre dans lequel elles se produisent, vous pouvez mieux saisir le processus de numérisation.
  • Connaître le calendrier exact des événements lors de la numérisation. Cela peut être utile pour la résolution de problèmes ou pour comprendre le comportement d'un réseau.
  • Déterminer quand des ports et des services spécifiques ont été découverts. Cela est crucial pour les évaluations de sécurité et la gestion du réseau.

Comparaison des niveaux de verbosité

Pour voir plus clairement la différence entre une numérisation normale et une numérisation avec une verbosité augmentée, nous allons comparer les deux fichiers de sortie. Utilisez la commande suivante :

diff /home/labex/project/verbosity-0.txt /home/labex/project/verbosity-1.txt

La commande diff compare le contenu de deux fichiers et montre les différences entre eux. La sortie de cette commande démontrera comment l'augmentation du niveau de verbosité fournit plus d'informations sur le processus de numérisation. Ces informations supplémentaires peuvent être particulièrement utiles lorsque vous résolvez des problèmes de réseau ou effectuez des évaluations de sécurité détaillées.

Niveaux de verbosité supplémentaires

Nmap ne s'arrête pas au niveau de verbosité 1. Il prend en charge des niveaux de verbosité encore plus élevés :

  • -vv définit le niveau de verbosité à 2.
  • -vvv définit le niveau de verbosité à 3.

Au fur et à mesure que vous augmentez le niveau de verbosité, Nmap fournira des informations de plus en plus détaillées sur le processus de numérisation. Cela peut être très utile lorsque vous avez besoin de creuser plus profondément dans le réseau et de comprendre chaque aspect de la numérisation.

Exploration des niveaux de verbosité plus élevés et applications pratiques

Dans cette étape, nous allons plonger plus profondément dans les capacités de Nmap. Nous commencerons par utiliser un niveau de verbosité encore plus élevé, qui nous fournira des informations plus détaillées pendant le processus de numérisation. Ensuite, nous apprendrons les applications pratiques des différents paramètres de verbosité, afin que vous sachiez quand utiliser chaque niveau dans des scénarios réels.

Exécution d'une numérisation avec la verbosité maximale

Exécutons une numérisation avec le niveau de verbosité 2. Dans Nmap, nous pouvons définir le niveau de verbosité en utilisant l'option -vv. Le niveau de verbosité 2 fournira une quantité importante d'informations détaillées sur la numérisation. Voici la commande pour exécuter la numérisation :

nmap -p 8080 localhost -vv > /home/labex/project/verbosity-2.txt

Dans cette commande, -p 8080 indique à Nmap de numériser le port 8080. localhost est la cible que nous numérisons, qui fait référence à la machine locale. L'option -vv augmente la verbosité au niveau 2. Le symbole > redirige la sortie de la numérisation vers le fichier /home/labex/project/verbosity-2.txt.

Maintenant, examinons les résultats de la numérisation. Nous pouvons utiliser la commande cat pour afficher le contenu du fichier :

cat /home/labex/project/verbosity-2.txt

Lorsque vous regardez la sortie, vous remarquerez qu'elle contient encore plus de détails techniques sur le processus de numérisation. Ces détails incluent :

  • Des informations de chronométrage plus approfondies : cela vous aide à comprendre combien de temps ont pris différentes parties de la numérisation.
  • Des informations de débogage supplémentaires : elles peuvent être utiles si quelque chose ne va pas pendant la numérisation.
  • Des informations de protocole plus détaillées : cela vous donne une meilleure compréhension des protocoles de réseau impliqués dans la numérisation.

Applications pratiques des différents niveaux de verbosité

Différents niveaux de verbosité sont utiles dans différents scénarios. Jetons un coup d'œil à chaque niveau et à ses applications pratiques :

  1. Niveau par défaut (0):

    • Le niveau de verbosité par défaut est idéal pour les numérisations rapides. Lorsque vous avez seulement besoin d'informations de base sur la cible, comme savoir si un port spécifique est ouvert ou fermé, ce niveau est suffisant.
    • Il est également utile pour les vérifications de routine et la cartographie simple de réseau. Par exemple, si vous souhaitez rapidement vérifier l'état de base des ports d'un serveur, vous pouvez utiliser le niveau par défaut.
    • Un exemple d'utilisation est la vérification de l'ouverture de ports spécifiques sur un serveur. Vous pouvez obtenir un aperçu rapide sans vous perdre dans des détails trop nombreux.
  2. Niveau de verbosité 1 (-v):

    • Ce niveau est utile pour une analyse plus détaillée. Il fournit plus d'informations que le niveau par défaut, ce qui vous aide à mieux comprendre le calendrier de la numérisation.
    • Si vous rencontrez des problèmes de connectivité, les informations supplémentaires à ce niveau peuvent être très utiles. Vous pouvez voir quelles parties de la numérisation prennent plus de temps ou s'il y a des erreurs.
    • Un exemple d'utilisation est la résolution de problèmes de connectivité. Vous pouvez utiliser les détails supplémentaires pour comprendre ce qui pourrait causer le problème.
  3. Niveaux de verbosité plus élevés (-vv, -vvv):

    • Ces niveaux sont idéaux pour une analyse approfondie et le débogage. Ils fournissent la quantité maximale d'informations, ce qui est très utile pour les audits de sécurité.
    • Lorsque vous effectuez une évaluation de sécurité détaillée ou que vous avez besoin de comprendre exactement comment la numérisation interagit avec la cible, les niveaux de verbosité plus élevés sont la solution.
    • Un exemple d'utilisation est les évaluations de sécurité détaillées ou lorsque vous avez besoin de comprendre exactement comment la numérisation interagit avec la cible. Vous pouvez obtenir une vue complète du processus de numérisation.

Combinaison de la verbosité avec d'autres options de Nmap

Les options de verbosité peuvent être combinées avec d'autres options de Nmap pour effectuer des numérisations plus puissantes. Essayons une numérisation plus avancée en utilisant la commande suivante :

nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt

Analysons cette commande :

  • -p 8080 spécifie que nous voulons numériser le port 8080.
  • -sV active la détection de version. Cette option tente de déterminer la version du service exécuté sur le port numérisé.
  • -v augmente la verbosité au niveau 1, nous obtiendrons donc plus d'informations détaillées sur le processus de numérisation.
  • Le symbole > redirige la sortie de la numérisation vers le fichier /home/labex/project/advanced-scan.txt.

Maintenant, regardons les résultats de la numérisation :

cat /home/labex/project/advanced-scan.txt

Vous remarquerez que l'ajout de -sV fournit des informations sur la version du service exécuté sur le port 8080. En même temps, l'option -v garantit que vous obtenez des informations détaillées sur le processus de numérisation, ce qui facilite l'analyse des résultats.

Nettoyage

Avant de terminer cette expérience, nous devons correctement arrêter le serveur HTTP que nous avons créé précédemment. Nous pouvons utiliser la commande suivante pour cela :

pkill -f "python -m http.server"

Cette commande termine le processus du serveur HTTP Python exécuté sur le port 8080. Il est important de nettoyer correctement pour éviter tout conflit ou problème d'utilisation des ressources à l'avenir.

Résumé

Dans ce laboratoire, vous avez appris à utiliser efficacement les niveaux de verbosité de Nmap pour contrôler les informations affichées lors des numérisations de réseau. En commençant par la configuration d'un serveur HTTP local de base, vous avez exploré comment différents niveaux de verbosité influencent les sorties des numérisations Nmap.

Vous avez découvert que le niveau de verbosité par défaut (0) fournit des détails essentiels sur les ports ouverts et les services. L'utilisation de l'option -v augmente la verbosité, offrant plus de précisions sur le processus de numérisation. Des niveaux plus élevés tels que -vv et -vvv fournissent des informations techniques détaillées pour une analyse approfondie. Les options de verbosité peuvent également être combinées avec d'autres techniques Nmap pour une analyse de réseau plus puissante. Ces compétences sont cruciales pour les administrateurs de réseau et les professionnels de la sécurité, car elles leur permettent de collecter des données réseau efficacement et d'adapter les numérisations à leurs tâches.