Explorer le réseau avec nmap

Nmap est un outil d’exploration réseau et d’audit de sécurité. Il permet de déterminer les hôtes présents sur le réseau en obtenant leurs informations par analyse des ports (services à l’écoute, OS de la machine, versions …).

Principe de fonctionnement

Le comportement par défaut de Nmap lorsqu’il n’utilise pas d’option est de détecter la présence de la cible passée en paramètre. Les protocoles employés pour la étection peuvent être l’ICMP, le TCP, l’UDP ou l’ARP. Si celle-ci est active, il poursuit son analyse en effectuant un scan sur les ports TCP les plus courants.

Voici un exemple de ce que donne le scan d’un élément réseau :

nmap 192.168.0.254

Starting Nmap 7.40 ( https://nmap.org ) at 2017-10-23 22:58 CEST
Nmap scan report for 192.168.0.254
Host is up (0.0033s latency).
Not shown: 995 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
113/tcp  closed ident
554/tcp  open   rtsp
5678/tcp open   rrac
9100/tcp open   jetdirect

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

L’un des grands intérêts de cette outil est qu’il est capable d’effectuer ce scan sur un réseau complet avec une grande souplesse de paramétrage de l’analyse (choix de la technique employée pour détecter l’hôte, sélection des ports scannés, vitesse de l’analyse, …).

Un autre élément intéressant est la granularité du résultat de l’analyse des ports qui a six états possibles (cf. colonne STATE de l’exemple ci-dessus). Voici la signification de ces états :

  • open : une application est en écoute sur ce port
  • closed : le port n’est pas utilisé, il n’y a pas d’application à l’écoute dessus.
  • filtered : un dispositif de filtrage empêche l’analyse du port (un firewall par exemple)
  • unfiltered : Nmap ne parvient pas à déterminé si le port est ouvert ou fermé
  • open|filtered : Nmap est incapable de déterminé si le port est ouvert ou filtré
  • closed|filtered : Nmap est incapable de déterminé si le port est fermé ou filtré

Scanner un réseau complet

La commande nmap permet d’effectuer une analyse du réseau en passant en paramètre les cibles à scanner. Celles-ci peuvent être un nom d’hôte/nom de domaine, une adresse IP, plusieurs d’adresses IP, une plage d’adresses IP ou un réseau complet :

# scanner un hote (soit par IP, soit par nom de domaine)
nmap 192.168.0.10
nmap my.hostname.net
# scanner plusieurs hotes
nmap 192.168.0.1 192.168.10.1
nmap 192.168.0.1,10,11,12
# scanner une plage d'adresses IP
nmap 192.168.0.10-50
# scanner un reseau complet
nmap 192.168.0.*
nmap 192.168.0.0/254
# exclure un hote dans le scan du reseau
nmap 192.168.0.0/24 --exclude 192.168.0.1
# ou mixer les possibilites
nmap 192.168.0.1 192.168.1.* --exclude 192.168.1.253,254

Détecter les hôtes

L’option -sP (scan Port) permet de s’arrêter à la découverte des hôtes sans poursuivre les tests.

nmap -sP 192.168.0.*

Starting Nmap 7.40 ( https://nmap.org ) at 2017-10-23 22:59 CEST
Nmap scan report for 192.168.0.254
Host is up (0.0022s latency).
MAC Address: **:**:**:**:**:** (manufacturer)
Nmap scan report for 192.168.0.14
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 7.75 seconds

Il est intéressant de noter que la technique de détection utilisée diffère en fonction du réseau scanné et de l’usager qui exécute la commande. Si c’est un utilisateur non-privilégié qui utilise la commande ce sera une requête TCP SYN qui sera employée, tandis que si c’est un utilisateur privilégié sur un réseau Ethernet, se sera des requêtes ARP.

Il est possible de forcer l’utilisation d’une méthode de détection en rajoutant une option :

# ping TCP SYN
nmap -sP -PS 192.168.0.*
# ping TCP ACK
nmap -sP -PA 192.168.0.*
# ping UDP
nmap -sP -PU 192.168.0.*
# pour changer de port (defaut 80), exemple TCP SYN / port 22 :
nmap -sP -PS22 192.168.0.*

# ping ARP
nmap -sP -PR 192.168.0.*
# et pour les autres options ...
man nmap

Affiner les paramètres de scan des ports

D’autres options permettent d’affiner les paramètres de scan. En voici quelque-unes :

# scanner un port
nmap -p22 192.168.0.1
# scanner un ensemble de ports
nmap -p22,80 192.168.0.1
# scanner une plage de ports
nmap -p10-400 192.168.0.1
# scanner tout les ports (par defaut > 1660)
nmap --allports 192.168.0.1

# detection des services et de leurs numeros de version
nmap -sV 192.168.0.1
# détection de l'OS
nmap -O 192.168.0.1

Un scan complet (détection de l’OS, des noms et des versions des applications en écoute sur les ports, …) :

nmap -A 192.168.0.1

Starting Nmap 7.40 ( https://nmap.org ) at 2017-10-23 23:02 CEST
Nmap scan report for 192.168.0.254
Host is up (0.0032s latency).
Not shown: 995 filtered ports
PORT     STATE  SERVICE    VERSION
80/tcp   open   http       Cheyenne httpd 2.2.8
|_http-server-header: cheyenne/2.2.8
| http-title: Site doesn't have a title (text/html).
|_Requested resource was /index.html
113/tcp  closed ident
9100/tcp open   jetdirect?
Service Info: Host: localhost; OS: Linux 2.6; Devices: media device, WAP; CPE: cpe:/o:linux:linux_kernel:2.6

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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

un × quatre =