Apprenez les techniques de spécification des cibles dans Nmap

CybersecurityCybersecurityBeginner
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 (lab), vous allez apprendre à connaître Nmap, un puissant outil de numérisation (scanning) de réseau largement utilisé par les professionnels de la sécurité. Le laboratoire se concentre plus précisément sur les techniques de spécification des cibles dans Nmap, qui sont essentielles pour définir les hôtes et les réseaux à numériser.

Comprendre ces techniques est essentiel pour une reconnaissance réseau efficace et une évaluation de la sécurité. À la fin de ce laboratoire, vous serez en mesure d'utiliser diverses méthodes pour spécifier les cibles dans Nmap et d'interpréter efficacement les résultats de la numérisation.

Installation et exploration de Nmap

Dans cette étape, nous allons nous assurer que Nmap est correctement installé sur votre système et commencer à explorer ses fonctions de base. Nmap, acronyme de Network Mapper, est un outil open - source. Il est largement utilisé pour la découverte de réseau et l'audit de sécurité. Avec Nmap, vous pouvez déterminer quels appareils sont connectés à un réseau et quels services ces appareils proposent. Cela est crucial en cybersécurité car cela vous aide à comprendre la topologie du réseau et à identifier les risques potentiels de sécurité.

Tout d'abord, nous devons vérifier si Nmap est déjà installé sur votre système. Pour ce faire, nous allons utiliser le terminal. Le terminal est une interface basée sur le texte où vous pouvez entrer des commandes pour interagir avec votre ordinateur. Ouvrez un terminal et exécutez la commande suivante :

nmap --version

Cette commande demande au système d'afficher la version de Nmap installée. Si Nmap est correctement installé, vous verrez une sortie similaire à celle-ci, qui inclut la version de Nmap et les informations de compilation :

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1d nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

Ensuite, nous voulons comprendre comment spécifier les cibles pour les scans Nmap. La spécification des cibles est importante car elle indique à Nmap quels appareils ou réseaux vous souhaitez scanner. Pour en savoir plus, nous allons consulter une partie de la documentation de base de Nmap. Exécutez la commande suivante dans le terminal :

nmap -h | grep -A 10 "TARGET SPECIFICATION"

Cette commande utilise d'abord nmap -h pour obtenir le texte d'aide de Nmap. Ensuite, elle envoie la sortie à grep -A 10 "TARGET SPECIFICATION", qui recherche la section "TARGET SPECIFICATION" dans le texte d'aide et affiche les 10 lignes suivantes. Vous verrez une explication des différentes façons de spécifier les cibles pour les scans Nmap.

Maintenant, nous avons besoin d'un endroit pour stocker les résultats de nos scans Nmap. Nous allons créer un répertoire à cet effet. Un répertoire est comme un dossier sur votre ordinateur où vous pouvez organiser des fichiers. Exécutez les commandes suivantes dans le terminal :

mkdir -p /home/labex/project/nmap_scans
cd /home/labex/project/nmap_scans

La commande mkdir -p crée un répertoire nommé nmap_scans dans le chemin /home/labex/project. L'option -p garantit que si des répertoires intermédiaires n'existent pas, ils seront également créés. La commande cd change ensuite le répertoire de travail actuel pour le répertoire nmap_scans nouvellement créé.

Voyons Nmap en action en exécutant un simple scan sur votre machine locale. La machine locale est l'ordinateur que vous utilisez actuellement. Exécutez la commande suivante :

nmap localhost > local_scan.txt

Cette commande effectue un scan de votre machine locale à l'aide de Nmap. Le symbole > redirige la sortie du scan vers un fichier nommé local_scan.txt. De cette façon, nous pouvons enregistrer les résultats du scan pour une analyse ultérieure.

Enfin, regardons les résultats du scan. Exécutez la commande suivante :

cat local_scan.txt

La commande cat affiche le contenu du fichier local_scan.txt. Vous verrez une liste des ports que Nmap a scannés sur votre machine locale. En plus des numéros de port, vous trouverez des informations sur les ports ouverts et les services qui pourraient être exécutés sur ces ports ouverts. Ces informations peuvent vous aider à comprendre l'état de sécurité de votre machine locale.

Configuration d'un service et numérisation (scanning) de ports spécifiques

Dans cette étape, nous allons apprendre à démarrer un serveur web local, puis à utiliser un puissant outil appelé Nmap pour le détecter en numérisant des ports spécifiques. Comprendre ce processus est crucial car il vous montre comment Nmap peut être utilisé pour identifier les services actuellement en cours d'exécution sur un réseau ou une machine.

Tout d'abord, nous devons nous rendre dans le répertoire de notre projet. C'est là que nous allons configurer notre simple serveur web. Une fois que nous sommes au bon endroit, nous allons démarrer un serveur HTTP Python qui écoutera sur le port 8000. Le port 8000 est un port couramment utilisé pour tester les serveurs web. Voici la commande pour le faire :

cd /home/labex/project/nmap_scans
python3 -m http.server 8000 &

Le symbole & à la fin de la commande est important. Il exécute le serveur en arrière - plan. Cela signifie que vous pouvez continuer à utiliser le terminal pour d'autres tâches pendant que le serveur est en cours d'exécution. Après avoir exécuté la commande, vous devriez voir une sortie indiquant que le serveur a démarré avec succès :

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

Maintenant que notre serveur est en cours d'exécution, nous voulons nous assurer qu'il écoute bien sur le port 8000. Nous pouvons utiliser la commande lsof, qui signifie "list open files" (lister les fichiers ouverts). Cette commande nous aide à vérifier quels processus utilisent actuellement un port spécifique. Voici comment l'utiliser :

lsof -i :8000

Si le serveur fonctionne correctement, vous devriez voir une sortie similaire à celle - ci :

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3 12345 labex   4u  IPv4 123456      0t0  TCP *:8000 (LISTEN)

Cette sortie nous indique que Python écoute sur le port 8000, ce qui signifie que notre serveur fonctionne comme prévu.

Ensuite, nous allons utiliser Nmap pour numériser le port 8000 sur la machine locale. L'objectif est de détecter notre serveur HTTP. Voici la commande :

nmap -p 8000 localhost > http_server_scan.txt

Dans cette commande, le drapeau -p est utilisé pour spécifier le port que nous voulons numériser. Dans notre cas, nous numérisons le port 8000 sur le localhost, qui est notre propre machine. Le symbole > redirige la sortie du scan Nmap vers un fichier nommé http_server_scan.txt. De cette façon, nous pouvons facilement revoir les résultats plus tard.

Voyons les résultats du scan :

cat http_server_scan.txt

Si le scan est réussi, vous devriez voir une sortie similaire à celle - ci :

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

PORT     STATE SERVICE
8000/tcp open  http-alt

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

Cette sortie montre que le port 8000 est ouvert et exécute un service HTTP, ce qui signifie que Nmap a pu détecter notre serveur.

Enfin, essayons de numériser une plage de ports pour voir s'il y a d'autres services en cours d'exécution sur notre machine locale. Voici la commande :

nmap -p 1-1000 localhost > port_range_scan.txt

Cette commande demande à Nmap de numériser tous les ports de 1 à 1000 sur le localhost. Encore une fois, nous redirigeons la sortie vers un fichier nommé port_range_scan.txt.

Examinons les résultats :

cat port_range_scan.txt

La sortie montrera quels ports de la plage 1 - 1000 sont ouverts sur votre machine locale. C'est un moyen utile de découvrir des services que vous n'auriez peut - être pas su être en cours d'exécution.

Spécification avancée des cibles

Dans cette étape, nous allons approfondir les techniques plus avancées de spécification des cibles avec Nmap. Nmap est un outil puissant pour la reconnaissance réseau, et il propose diverses méthodes pour spécifier plusieurs cibles dans une seule commande. Cela est extrêmement utile lorsque vous avez besoin de scanner plusieurs hôtes ou réseaux en même temps, vous permettant d'économiser du temps et des efforts.

Commençons par créer un fichier texte contenant plusieurs adresses IP que nous souhaitons scanner. Nous allons inclure l'adresse localhost (127.0.0.1) et quelques autres adresses IP locales. L'adresse localhost est une adresse IP spéciale qui fait référence au dispositif actuel lui-même. En l'incluant, nous pouvons tester le processus de scan sur notre propre machine.

cd /home/labex/project/nmap_scans
echo "127.0.0.1" > targets.txt
echo "127.0.0.2" >> targets.txt
echo "127.0.0.3" >> targets.txt

Dans le code ci-dessus, la commande cd change le répertoire de travail actuel pour /home/labex/project/nmap_scans. La commande echo est utilisée pour afficher du texte. L'opérateur > crée un nouveau fichier et écrit le texte dedans, tandis que l'opérateur >> ajoute le texte à un fichier existant. Ainsi, nous créons d'abord un fichier nommé targets.txt et y écrivons 127.0.0.1. Ensuite, nous ajoutons 127.0.0.2 et 127.0.0.3 au même fichier.

Maintenant, regardons le fichier que nous venons de créer pour nous assurer que les adresses IP ont été correctement ajoutées.

cat targets.txt

La commande cat est utilisée pour afficher le contenu d'un fichier. Après avoir exécuté cette commande, vous devriez voir la sortie suivante :

127.0.0.1
127.0.0.2
127.0.0.3

Ensuite, nous allons utiliser le flag -iL dans Nmap pour scanner toutes les adresses IP répertoriées dans le fichier targets.txt en une seule fois. Le flag -iL indique à Nmap de lire les cibles à partir d'un fichier.

nmap -iL targets.txt > multiple_targets_scan.txt

Ici, la commande nmap est utilisée pour effectuer le scan réseau. Le flag -iL spécifie le fichier contenant les cibles. L'opérateur > redirige la sortie du scan vers un fichier nommé multiple_targets_scan.txt.

Vérifions les résultats du scan :

cat multiple_targets_scan.txt

Après avoir exécuté cette commande, vous devriez voir les résultats du scan pour les trois adresses IP. Notez que 127.0.0.1 affichera généralement des ports ouverts car c'est l'adresse localhost et il peut y avoir certains services en cours d'exécution sur cette machine. Cependant, 127.0.0.2 et 127.0.0.3 peuvent ne pas répondre car elles ne sont généralement pas configurées sur la plupart des systèmes.

Une autre façon de spécifier plusieurs cibles consiste à utiliser la notation par espaces ou la notation CIDR directement dans la commande Nmap.

nmap 127.0.0.1 127.0.0.2 > space_notation_scan.txt

Dans cette commande, nous utilisons des espaces pour séparer les adresses IP. Cela indique à Nmap de scanner à la fois 127.0.0.1 et 127.0.0.2. La sortie du scan est redirigée vers un fichier nommé space_notation_scan.txt.

Vérifions les résultats :

cat space_notation_scan.txt

Nous pouvons également utiliser la notation CIDR pour scanner une plage d'adresses IP. La notation CIDR (Classless Inter - Domain Routing) est une façon de représenter une plage d'adresses IP de manière concise.

nmap 127.0.0.0/30 > cidr_notation_scan.txt

La notation 127.0.0.0/30 en CIDR représente une plage d'adresses IP allant de 127.0.0.0 à 127.0.0.3, soit un total de 4 adresses. La sortie de ce scan est redirigée vers un fichier nommé cidr_notation_scan.txt.

Vérifions les résultats :

cat cidr_notation_scan.txt

Enfin, explorons comment exclure des cibles spécifiques d'un scan. Cela est utile lorsque vous souhaitez scanner un réseau mais ne voulez pas inclure certains hôtes.

nmap 127.0.0.0/30 --exclude 127.0.0.3 > exclude_scan.txt

Dans cette commande, nous utilisons le flag --exclude pour indiquer à Nmap de sauter l'adresse IP 127.0.0.3 lors du scan de la plage 127.0.0.0/30. La sortie du scan est redirigée vers un fichier nommé exclude_scan.txt.

Vérifions les résultats :

cat exclude_scan.txt

Vous devriez voir les résultats du scan pour 127.0.0.0, 127.0.0.1 et 127.0.0.2, mais pas pour 127.0.0.3.

Ces techniques avancées de spécification des cibles vous permettent de contrôler précisément quels hôtes Nmap scanne, rendant votre reconnaissance réseau plus efficace et ciblée.

Résumé

Dans ce laboratoire (lab), vous avez appris à utiliser Nmap pour la reconnaissance réseau, en vous concentrant sur les techniques de spécification des cibles. Tout d'abord, vous avez installé Nmap et exploré ses fonctions de base en effectuant des numérisations simples sur votre machine locale. Ensuite, vous avez configuré un serveur HTTP local et utilisé Nmap pour le détecter en numérisant des ports spécifiques.

Ces compétences sont essentielles pour les administrateurs de réseau et les professionnels de la sécurité afin de découvrir et d'évaluer les dispositifs réseau. Maîtriser la spécification des cibles avec Nmap vous permet de numériser efficacement des réseaux de toute échelle et complexité, en ciblant des hôtes et des services spécifiques pertinents pour votre tâche. Utilisez toujours Nmap de manière responsable et uniquement sur des réseaux autorisés pour éviter tout problème juridique et éthique.