Scan de réseau avec 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, vous allez explorer le monde de la sécurité des réseaux en apprenant à utiliser Nmap, un outil de scan de réseau puissant et polyvalent. Nmap (Network Mapper) est une utilité open-source utilisée par les administrateurs systèmes et les professionnels de la sécurité pour découvrir les hôtes, les services et les vulnérabilités sur un réseau. C'est comme une lampe de poche dans une pièce obscure, vous aidant à voir ce qui est là et ce qui pourrait se cacher.

Dans ce laboratoire pratique, vous allez apprendre :

  1. Comment installer et utiliser Nmap
  2. Les différents types de scans de réseau
  3. Comment interpréter les résultats de Nmap
  4. L'importance de la sécurité des réseaux dans des contextes réels

N'oubliez pas que les compétences que vous allez acquérir ici sont puissantes et ne doivent être utilisées qu'éthiquement et sur des réseaux que vous possédez ou pour lesquels vous avez une autorisation explicite pour effectuer des tests. Commençons!

Installation de Nmap

Avant de commencer à explorer les réseaux, nous devons nous équiper du bon outil. Dans cette étape, nous allons installer Nmap sur votre système.

  1. Tout d'abord, ouvrons le terminal. Dans le monde réel, de nombreuses opérations réseau sont effectuées via une interface en ligne de commande, il est donc bon de s'y habituer. Sur votre bureau, localisez et ouvrez le terminal Xfce.
Fenêtre du terminal Xfce ouverte

Note : Les utilisateurs gratuits ne peuvent pas se connecter à Internet, donc Nmap est déjà préinstallé dans l'environnement de laboratoire. Vous pouvez passer à l'élément 4 de la liste (vérifier si Nmap est installé). Passez à la version Pro pour pratiquer l'installation de Nmap vous-même.

Uniquement pour les utilisateurs Pro
  1. Une fois le terminal ouvert, nous devons mettre à jour les listes de paquets. Cela nous assure d'avoir les informations les plus récentes sur les logiciels disponibles. Tapez la commande suivante et appuyez sur Entrée :
sudo apt-get update

sudo est utilisé pour exécuter des commandes avec des privilèges administratifs.

  1. Maintenant que nos listes de paquets sont à jour, installons Nmap. Entrez la commande suivante :
sudo apt-get install nmap -y

Le flag -y répond automatiquement "oui" à toutes les invitations, rendant l'installation plus fluide.

  1. Une fois l'installation terminée, il est recommandé de vérifier que Nmap a été installé correctement. Nous pouvons le faire en vérifiant sa version. Entrez :
nmap --version

Vous devriez voir une sortie similaire à celle-ci :

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

Ne vous inquiétez pas si le numéro de version ou certains détails sont différents – Nmap est régulièrement mis à jour.

Félicitations! Vous venez d'installer un puissant outil de scan de réseau. Nmap est comme un canif suisse pour l'exploration de réseaux et l'audit de sécurité. Il dispose de nombreuses fonctionnalités, allant des simples scans ping à la détection avancée de vulnérabilités. Dans ce laboratoire, nous allons nous concentrer sur son utilisation de base pour vous aider à comprendre ses capacités.

Si vous êtes curieux de savoir ce que Nmap peut faire d'autre, vous pouvez taper man nmap dans le terminal. Cela vous affichera la page de manuel de Nmap, détaillant toutes ses options et capacités. N'hésitez pas à explorer, mais ne vous inquiétez pas de tout comprendre tout de suite – nous aborderons les parties les plus importantes dans ce laboratoire.

Comprendre les adresses IP

Avant de commencer à scanner des réseaux, il est essentiel de comprendre les adresses IP. Imaginez une adresse IP comme une adresse postale pour votre ordinateur sur le réseau. Tout comme un service postal a besoin de votre adresse postale pour livrer le courrier, les autres appareils sur le réseau ont besoin de votre adresse IP pour communiquer avec votre ordinateur.

  1. Une adresse IP est un identifiant unique pour un appareil sur un réseau. Elle ressemble généralement à une série de nombres séparés par des points, comme 192.168.1.1.
graph LR A[Internet] --- B[Routeur 192.168.1.1] B --- C[PC 192.168.1.10] B --- D[Ordinateur portable 192.168.1.11] B --- E[Téléphone intelligent 192.168.1.12] B --- F[Téléviseur intelligent 192.168.1.13] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#dfd,stroke:#333,stroke-width:2px style D fill:#dfd,stroke:#333,stroke-width:2px style E fill:#dfd,stroke:#333,stroke-width:2px style F fill:#dfd,stroke:#333,stroke-width:2px
  1. Pour trouver votre propre adresse IP, nous allons utiliser une commande qui affiche les informations sur les interfaces réseau. Entrez cette commande :
ip addr show | grep inet

Décortiquons cette commande :

  • ip addr show affiche les informations sur toutes les interfaces réseau
  • | (pipe) envoie la sortie de la commande précédente à la commande suivante
  • grep inet filtre la sortie pour n'afficher que les lignes contenant "inet", qui incluent les adresses IP

Vous verrez une sortie similaire à celle-ci :

inet 127.0.0.1/8 scope host lo
inet 172.19.0.3/16 brd 172.19.255.255 scope global eth1
  1. Dans cette sortie, vous verrez plusieurs adresses IP. Voici ce qu'elles signifient :

    • 127.0.0.1 est l'adresse "localhost". Chaque ordinateur s'adresse à lui-même en utilisant l'adresse 127.0.0.1. Cela est utilisé pour les connexions locales sur votre propre machine.
    • 172.19.0.3 est l'adresse IP de votre machine sur le réseau. C'est l'adresse que les autres appareils utiliseraient pour communiquer avec votre machine.
  2. Notez l'adresse IP qui n'est pas 127.0.0.1 (dans ce cas, 172.19.0.3). Nous l'utiliserons à l'étape suivante.

Le /16 après l'adresse IP est appelé le masque de sous-réseau. Il définit la taille du réseau. Dans ce cas, /16 signifie que les deux premiers nombres de l'adresse IP (172.19) définissent le réseau, et les deux derniers peuvent être utilisés pour les appareils individuels.

Si vous vous demandez quels sont les différents types d'adresses IP, sachez qu'il existe deux principales versions du protocole IP : IPv4 (comme 172.19.0.3) et IPv6 (qui commenceraient par des caractères comme fe80::). IPv6 a été créé pour résoudre le problème de l'épuisement des adresses IPv4 à mesure que de plus en plus d'appareils se connectent à Internet. Pour ce laboratoire, nous nous concentrerons sur les adresses IPv4.

Effectuer un scan Nmap de base

Maintenant que nous comprenons les adresses IP et que nous avons installé Nmap, effectuons notre premier scan de réseau. Nous commencerons par scanner notre propre machine pour voir ce que Nmap peut nous dire à son sujet.

  1. Nous allons utiliser l'adresse IP que vous avez notée à l'étape précédente. Exécutez la commande suivante, en remplaçant <YOUR_IP> par l'adresse IP que vous avez trouvée :
nmap <YOUR_IP>

Par exemple, si votre adresse IP est 172.19.0.3, vous exécuterez :

nmap 172.19.0.3
  1. Après avoir exécuté cette commande, Nmap effectuera un scan et affichera les résultats. Voici un exemple de ce que vous pourriez voir :
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:00 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.00017s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
  1. Décortiquons cette sortie pour comprendre ce que Nmap nous dit :

    • "Starting Nmap 7.80" : C'est la version de Nmap que vous utilisez.
    • "Host is up" : Cela confirme que l'adresse IP a répondu au scan.
    • "Not shown: 998 closed ports" : Nmap a scanné 1000 ports courants, et 998 d'entre eux étaient fermés.
    • "PORT STATE SERVICE" : Cela montre les ports ouverts que Nmap a trouvés.
      • 22/tcp open ssh : Le port 22 est ouvert et est généralement utilisé pour SSH (Secure Shell), un protocole pour l'accès distant sécurisé.
      • 3001/tcp open nessus : Le port 3001 est ouvert et est associé au scanner de vulnérabilités Nessus.
  2. Ce scan de base nous donne un aperçu rapide des services exécutés sur la machine. Dans un scénario réel, ces informations pourraient être utilisées pour :

    • Identifier les vulnérabilités potentielles (par exemple, un port ouvert inutile)
    • Vérifier que les services nécessaires sont en cours d'exécution
    • Détecter des services inattendus qui pourraient indiquer une violation de sécurité

N'oubliez pas que, dans le monde réel, vous ne devez effectuer des scans que sur les réseaux et les appareils que vous possédez ou pour lesquels vous avez une autorisation explicite pour effectuer des tests. Le scan non autorisé peut être illégal et contraire à l'éthique.

Effectuer un scan de détection du système d'exploitation

Nmap n'est pas limité à la recherche de ports ouverts. Il peut également tenter de déterminer le système d'exploitation de la machine cible. Cette fonctionnalité est incroyablement utile pour les administrateurs de réseau et les professionnels de la sécurité, car différents systèmes d'exploitation présentent des vulnérabilités différentes et nécessitent des mesures de sécurité spécifiques.

  1. Pour effectuer un scan de détection du système d'exploitation, nous utilisons le flag -O (notez qu'il s'agit d'une majuscule 'O', pas du chiffre zéro). Ce scan nécessite des privilèges root, nous allons donc utiliser sudo. Exécutez cette commande, en remplaçant <YOUR_IP> par votre adresse IP réelle :
sudo nmap -O <YOUR_IP>

Par exemple, si votre adresse IP est 172.19.0.3, vous exécuterez :

sudo nmap -O 172.19.0.3
  1. La sortie sera similaire à celle du scan de base, mais avec des informations supplémentaires sur le système d'exploitation. Voici un exemple :
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:01 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.000035s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
  1. Décortiquons les nouvelles informations :

    • "Device type: general purpose" : Cela indique qu'il s'agit d'un ordinateur classique, pas d'un appareil spécialisé comme un routeur ou une imprimante.
    • "Running: Linux 2.6.X" : Nmap a déterminé qu'il s'agit probablement d'un système Linux exécutant la version 2.6.X du noyau.
    • "OS details: Linux 2.6.32" : C'est une estimation plus précise de la version du noyau.
  2. Dans un scénario réel, ces informations pourraient être utilisées de plusieurs manières :

    • Par les attaquants pour cibler des vulnérabilités spécifiques associées au système d'exploitation.
    • Par les défenseurs pour s'assurer que les systèmes sont correctement mis à jour et sécurisés.
    • Par les administrateurs de réseau pour maintenir un inventaire des systèmes et s'assurer que tous sont à jour.

Il est important de noter que la détection du système d'exploitation n'est pas toujours 100 % précise. Nmap fait sa meilleure estimation en fonction de la réponse du système à diverses sondes, mais les pare-feu et autres mesures de sécurité peuvent parfois perturber la détection précise.

Scanner une plage de réseaux

Dans les environnements réseau réels, vous avez souvent besoin de scanner plusieurs adresses IP ou des segments de réseau entiers. Cela est utile pour découvrir tous les appareils sur un réseau, ce qui est une tâche courante pour les administrateurs de réseau et les professionnels de la sécurité. Essayons de scanner une plage de réseaux.

  1. Nous allons scanner une petite plage d'adresses IP en nous basant sur l'adresse IP que nous avons utilisée jusqu'à présent. Scannons la plage 172.19.0.1 - 20 :
nmap 172.19.0.1-20

Cette commande indique à Nmap de scanner toutes les adresses IP de 172.19.0.1 à 172.19.0.20.

  1. Maintenant, scannons un sous - réseau entier. Nous utiliserons la notation CIDR pour spécifier le réseau. Exécutez la commande suivante, en remplaçant <YOUR_NETWORK> par votre adresse de réseau :
nmap < YOUR_NETWORK > /24

Par exemple :

nmap 172.19.0.0/24

NMAP scanne toutes les 256 adresses IP de la plage de réseau 172.19.0.0/24 (où /24 indique un masque de sous - réseau de 24 bits) pour rechercher les hôtes actifs et les ports ouverts.

  1. Pour enregistrer la sortie de ce scan dans un fichier pour une analyse ultérieure, nous pouvons utiliser le flag -oN suivi d'un nom de fichier. Exécutez :
nmap 172.19.0.0/24 -oN network_scan.txt

Cela effectuera le scan et enregistrera les résultats dans un fichier nommé network_scan.txt dans votre répertoire actuel.

  1. Examinons le contenu du fichier :
cat network_scan.txt

La sortie montrera les résultats pour chaque hôte répondant dans la plage. Voici un exemple de ce que vous pourriez voir :

## Nmap 7.80 scan initiated Fri Sep 27 15:45:29 2024 as: nmap -oN network_scan.txt 172.19.0.0/24
Nmap scan report for iZrj9gvdh5xn02z8rmsn9mZ (172.19.0.1)
Host is up (0.00045s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
10010/tcp open  rxapi

Nmap scan report for node_openresty.external (172.19.0.2)
Host is up (0.00047s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 36cff415ddd9.external (172.19.0.3)
Host is up (0.00045s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 041bf22f47a1.external (172.19.0.4)
Host is up (0.00050s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 2299e8eff7e5.external (172.19.0.5)
Host is up (0.00048s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

## Nmap done at Fri Sep 27 15:45:32 2024 -- 256 IP addresses (5 hosts up) scanned in 3.25 seconds
  1. Interprétons cette sortie :

    • Nmap a scanné toutes les 256 adresses IP du réseau 172.19.0.0/24.
    • Il a trouvé 5 hôtes actifs et répondants.
    • Pour chaque hôte, il a répertorié les ports ouverts et les services détectés.
  2. Dans un scénario réel, ce type de scan est inestimable pour :

    • Les administrateurs de réseau : Pour maintenir un inventaire des hôtes actifs et des services sur leur réseau.
    • Les professionnels de la sécurité : Pour identifier tous les appareils sur un réseau et s'assurer qu'ils sont tous pris en compte et sécurisés.
    • Les attaquants : Pour identifier les cibles potentielles sur un réseau, c'est pourquoi il est crucial de sécuriser les réseaux contre les scans non autorisés.

N'oubliez pas que bien que ces connaissances soient puissantes, il est essentiel de les utiliser de manière responsable. Obtenez toujours l'autorisation appropriée avant de scanner tout réseau qui n'est pas le vôtre.

Résumé

Félicitations! Vous venez de franchir les premières étapes dans le monde du scan de réseau et de la sécurité. Dans ce laboratoire, vous avez acquis une expérience pratique avec Nmap, l'un des outils les plus puissants dans la boîte à outils d'un professionnel du réseau. Récapitulons ce que vous avez appris :

  1. Installation : Vous avez installé Nmap, une compétence essentielle pour configurer votre boîte à outils de cybersécurité.
  2. Utilisation de base : Vous avez effectué un scan simple, apprenant à identifier les ports ouverts et les services sur un seul hôte.
  3. Détection du système d'exploitation : Vous avez utilisé la fonction de détection du système d'exploitation de Nmap, comprenant comment ces informations peuvent être cruciales à la fois pour les attaquants et les défenseurs.
  4. Exploration de réseau : Vous avez scanné une plage d'adresses IP et un sous - réseau entier, simulant la manière dont les professionnels peuvent cartographier un réseau.
  5. Gestion de la sortie : Vous avez appris à enregistrer les résultats du scan dans un fichier pour une analyse ultérieure, une compétence essentielle pour documenter les audits de réseau.

Ce laboratoire vous a fourni des bases en matière de scan de réseau, mais il reste beaucoup plus à apprendre sur Nmap et la sécurité des réseaux. Pour poursuivre votre parcours et approfondir votre compréhension, nous vous recommandons de suivre le cours complet "Quick Start with Nmap" disponible à l'adresse https://labex.io/courses/quick-start-with-nmap.

Quick Start with Nmap

Ce cours s'appuiera sur les compétences que vous avez acquises aujourd'hui et vous présentera des techniques plus avancées de Nmap et des concepts de sécurité des réseaux.

N'oubliez pas que les connaissances que vous avez acquises sont puissantes et doivent être utilisées de manière responsable. Assurez - vous toujours d'avoir l'autorisation appropriée avant de scanner un réseau, et utilisez vos compétences pour promouvoir la sécurité et les pratiques éthiques dans le monde numérique.

Continuez à apprendre, restez curieux et bon scan!