Le premier pas vers la maîtrise de Nmap

Qu’est-ce que Nmap ? 🤔

Nmap, ou Network Mapper, est un outil open-source incontournable pour scanner et analyser un réseau. Pensez-y comme un sonar high-tech pour les infrastructures numériques : il détecte chaque machine, identifie les services actifs et liste les ports ouverts.

Grâce à Nmap, il est possible de repérer les dispositifs connectés, de comprendre quels services fonctionnent sur un port spécifique, et même d’obtenir des indices sur le système d’exploitation utilisé. Que ce soit pour optimiser la sécurité, dépanner un réseau ou effectuer des tests d’intrusion, Nmap est un allié puissant pour cartographier l’invisible.

Pourquoi utiliser Nmap ?

Pourquoi utiliser Nmap, me direz-vous ? La sécurité commence par connaître ce qui est exposé. Si vous êtes administrateur système, vous allez vouloir connaître chaque service qui tourne, chaque port qui reste étrangement ouvert sans raison. Si vous êtes pentester, Nmap est votre boussole, vous permettant de trouver des pistes à suivre pour trouver des faiblesses. C’est vraiment l’un des premiers outils utilisés par les hacker éthique quand il débute leurs tests.


Premiers pas avec Nmap 👣

Installation et configuration initiale

Nmap est disponible sur la plupart des systèmes d’exploitation. Voici comment l’installer sur les différentes plateformes :

Debian/Ubuntu (et Kali Linux)

Sur Debian/Ubuntu, voici comment faire :

sudo apt update
sudo apt install nmap

macOS

Sur macOS, vous pouvez utiliser Homebrew pour installer Nmap :

brew install nmap

Alternativement, vous pouvez télécharger l’installateur depuis le site officiel de Nmap.

Windows

Pour Windows, téléchargez l’installateur depuis le site officiel de Nmap (https://nmap.org/download.html). Exécutez l’installateur et suivez les instructions.

Vérification de l’installation

Une fois installé, vous pouvez vérifier l’installation en ouvrant un terminal et en tapant :

nmap -v

Cela affichera la version de Nmap et un aperçu des options disponibles.


Spécification des cibles 🎯

Pour dire à Nmap quoi scanner, vous devez lui indiquer quelles cibles viser : ça peut être des adresses IP, des noms d’hôtes, ou même des plages entières de votre réseau. Par exemple, vous pouvez utiliser la notation CIDR pour scanner un réseau complet (192.168.10.0/24), ou bien des plages d’adresses spécifiques (192.168.0-255.1-254).

Si vous avez plusieurs cibles à scanner en même temps, aucun souci, Nmap peut aussi les gérer, et il vous permet même d’exclure certaines adresses avec les options --exclude ou --excludefile.

L’option -iL vous permet de lire les cibles depuis un fichier.

En gros, vous avez l’embarras du choix pour spécifier exactement ce que vous voulez explorer :

Méthode de spécificationExemple de commandeDescription
Adresse IP uniquenmap 192.168.1.1Scanner une seule adresse IP
Notation CIDRnmap 192.168.10.0/24Scanner un réseau complet
Plages d’adressesnmap 192.168.0-255.1-254Scanner des plages d’adresses
Liste d’adressesnmap -iL cible.txtSpécifier les cibles à partir d’un fichier
Exclure des adressesnmap --exclude 192.168.1.5Exclure certaines adresses du scan
Fichier d’exclusionnmap --excludefile exclude.txtExclure des adresses spécifiées dans un fichier
Scan aléatoirenmap -iR 10Scanner 10 hôtes choisis aléatoirement

À savoir, les fichiers exclude.txt ou cible.txt doivent contenir une adresse IP ou un nom d’hôte par ligne, comme ceci :

192.168.1.1
192.168.1.2
example.com
10.0.0.1-10.0.0.10

Cela permet à Nmap de facilement lire et traiter chaque cible ou chaque exclusion sans ambiguïté.


Découverte des hôtes 🌍

La toute première étape dans la reconnaissance d’un réseau consiste à réduire un ensemble de plages d’IP à une liste d’hôtes actifs ou intéressants. Pourquoi ? Parce que scanner tous les ports de chaque IP serait non seulement lent, mais souvent inutile.

Pour répondre à ce besoin, Nmap propose une grande variété d’options pour personnaliser la manière dont il découvre les hôtes actifs. Cette phase est souvent appelée « scan ping », mais va bien au-delà d’une simple requête ICMP. Par exemple, Nmap peut utiliser des combinaisons de tests TCP SYN/ACK, UDP, et ICMP pour vérifier si une adresse IP est active.

Lorsqu’aucune option de découverte n’est spécifiée, Nmap envoie un paquet TCP ACK sur le port 80 et une requête ICMP echo à chaque cible. Sur un réseau local, il utilise un scan ARP. Pour les utilisateurs UNIX non-privilégiés (utilisation de nmap sans sudo), un paquet SYN est envoyé à la place du ACK. Ces options par défaut équivalentes à -PA -PE.

Les options suivantes contrôlent la découverte des hôtes :

OptionExemple de commandeDescription
-sLnmap -sL 192.168.1.0/24Liste simplement les cibles sans envoyer de paquets
-sP (Scan Ping)nmap -sP 192.168.1.0/24Envoie une requête ICMP et un paquet TCP pour déterminer les hôtes actifs
-PN (Pas de ping)nmap -PN 192.168.1.0/24Désactive la découverte des hôtes et scanne toutes les adresses spécifiées
-PS (Ping TCP SYN)nmap -PS 192.168.1.1Envoie un paquet TCP SYN pour vérifier la présence de l’hôte
-PA (Ping TCP ACK)nmap -PA 192.168.1.1Envoie un paquet TCP ACK pour vérifier la présence de l’hôte. Cette attaque permet de contourner certains pare-feux
-PU (Ping UDP)nmap -PU 192.168.1.1Envoie un paquet UDP pour vérifier la réponse ICMP de l’hôte
-PE-PP-PMnmap -PE 192.168.1.1Types de ping ICMP (echo, timestamp, mask)
-PR (Ping ARP)nmap -PR 192.168.1.1Utilisé pour les réseaux locaux, envoie une requête ARP
-PO (Ping IP Protocol)nmap -PO 192.168.1.1Envoie des paquets pour des protocoles spécifiques pour découvrir les hôtes

Ces options permettent de découvrir efficacement les machines qui sont réellement actives sur le réseau, optimisant ainsi les ressources en évitant de scanner inutilement des IP inactives.

Ping Scan

Option -sP pour lancer un « Ping Scan »

De nombreux réseaux modernes bloquent ou filtrent les requêtes ICMP Echo Request (utilisées par ping) pour des raisons de sécurité. Ainsi, un hôte peut être actif mais ne pas répondre aux pings.

Ping TCP SYN

Nmap détermine si un hôte est actif en essayant d’établir une connexion TCP avec la cible, bien que le terme «  ping » puisse prêter à confusion, car cette méthode s’apparente davantage à un scan de ports classique qu’à un simple test ICMP.

Ping TCP SYN
📝Comment fonctionne le Ping TCP SYN

  • Envoie un paquet SYN pour initier un connexion TCP (No 1) ;
  • La cible renvoie un SYN/ACK si le port est ouvert (N°2). Sinon elle renvoie un RST si le port est fermé ;
  • S’il y a réponse de la cible, cela indique que l’hôte est actif.
Présentation d’un Ping TCP SYN sur Wireshark
  • Les pare-feux stateful (avec état) suivent les connexions TCP et rejettent généralement les paquets ACK inattendus (n’appartenant pas à une connexion légitime).
  • Les tests SYN fonctionnent mieux ici, car ces paquets correspondent à des requêtes classiques pour initier une connexion.

Envoie des paquets TCP avec un flag SYN sur des ports spécifiques pour voir si une réponse est reçue (SYN-ACK). Cette méthode est souvent plus efficace car les réponses TCP SYN sont moins susceptibles d’être bloquées par les pare-feux. Par contre, elle prend beaucoup plus de temps.

Il est recommandé de spécifier des ports avec les options -PA et -PS afin d’éviter que Nmap teste tous les ports.

Ping TCP ACK

Le ping ACK envoie un paquet TCP avec le drapeau ACK à une cible pour détecter si un hôte est actif, en se basant sur la réception d’une réponse RST indiquant la présence de l’hôte.

Ping TCP ACK
📝Comment fonctionne le Ping TCP ACK
  • Envoie un paquet ACK pour simuler l’acquittement d’une connexion TCP déjà établie (N°5 et N°6);
  • La cible
    • renvoie un RST si l’hôte est actif (port ouvert ou fermé) (Voir N°7 et 10)
    • ne répond pas si le paquet est filtré (ou ignoré)
Ping TCP ACK sur Wireshark

Comme pour le ping TCP ACK, cette technique va vérifier que l’hote est actif et vérifier si les ports sont ouvert.

Ping ARP

Le ping ARP est une méthode efficace pour scanner des réseaux locaux Ethernet, où de nombreuses adresses IP restent souvent inutilisées. Cette option permet à Nmap d’identifier rapidement les hôtes actifs dans un réseau local sans perdre de temps à tester des adresses IP inexistantes. Contrairement aux pings traditionnels basés sur des paquets ICMP ou TCP, le ping ARP exploite directement le protocole ARP (Address Resolution Protocol), ce qui le rend plus rapide et plus fiable pour les réseaux locaux. Ce mécanisme est particulièrement adapté aux réseaux utilisant des plages d’adresses privées définies par la RFC 1918, comme 192.168.x.x ou 10.x.x.x.

Ping ARP

Pour en savoir plus, je vous recommande vivement de consulter la documentation complète : lien vers la documentation.

C’est tout pour ce premier article, qui contient déjà une bonne quantité d’informations à assimiler. Dans le prochain article, nous aborderons les différentes techniques de scan de ports.

Catégories : Blog
Lénaïck Sori.

Écrit par :Lénaïck Sori. Toutes les publications de l'auteur

Découvrez un univers captivant où la cybersécurité, la photographie et les nouvelles technologies se rencontrent pour vous inspirer et vous informer.

🍪 Cookies

Notre site web utilise des cookies. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.