LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


serveurs:nmap

nmap

Présentation de l'outil

Cette page est issue du manuel de nmap, accessible par man nmap sur toutes les bonnes distributions… si l'outil est installé.

nmap, ou Network Mapper, est un outil en ligne de commande dédié à l'exploration du réseau, particulièrement utile dans des opérations de sécurisation. Ce logiciel est adapté à l'étude de réseaux de grande taille, et peut tout à fait être mis à profit pour des installations de moindre envergure. En se servant des paquets IP visibles sur le réseau, nmap est capable de repérer les hôtes, de les associer à leur réseau, tout en reconnaissant les services disponibles et les systèmes d'exploitation sous-jacent, et d'autres choses encore… Les fonctionnalités de nmap le rendent donc utile aux administrateurs réseau.

A propos des réponses de nmap

Nmap liste un ensemble de cibles, auxquelles sont associées des informations variant selon les options spécifiées lors de l'appel. Les hôtes sont affichés un à un lors de leur découverte, avec les informations qui leur sont relatives. La partie la plus importante est généralement la “liste des ports intéressants”. Cette liste regroupe des ports UDP ou TCP, leur état, le service à l'écoute de ce port, et éventuellement des informations de version. L'état d'un port peut être :

  • Ouvert (open) : Une application est à l'écoute sur ce port, en attente de paquets ou d'une connexion extérieure
  • Fermé (closed) : Aucune application n'est à l'écoute sur ce port
  • Filtré (filtered) : nmap n'est pas en mesure de déterminer si le port est ouvert ou fermé sur la machine scannée. Cet état peut être le résultat de l'action d'un pare-feu, filtre, ou tout autre obstacle réseau bloquant le port étudié.

Un port est considéré comme non filtré si nmap reçoit une réponse suite à son analyse. Aux informations relatives aux ports ouverts peuvent s'ajouter des renseignements tels que le système d'exploitation rencontré, le type de matériel, éventuellement l'adresse MAC…

Utilisation de l'outil

Usage: nmap [Scan Type(s)] [Options] {target specification}

Définition des cibles

Pour nmap, tout ce qui n'est pas une option, ou l'argument d'une option, est une cible. Un hôte particulier est la cible la plus simple pour nmap. Cependant, l'outil propose des utilisations plus complexes. Il est notamment possible des adresses de type “CIDR” (Classless Inter-Domain Routing, pour routage multi-domaine sans classe), relatives à l'adressage sans classe, très utilisé dans les réseaux de nos jours.
Ainsi, il est possible d'ajouter un /masque à l'adresse passée en argument, et nmap scannera toutes les adresses dont les masque premiers bits sont identiques à ceux de l'adresse précisée. Par exemple, utiliser un argument 192.168.1.0/24 permettra de scanner toutes les adresses dans l'intervalle 192.168.1.0 - 192.168.1.255. Remarquez que l'adresse 192.168.1.53/24 entraine la même opération. Le masque peut prendre toutes les valeurs de 0 (aucun bit n'est fixé, nmap scanne toutes les adresses légales) à 32 (nmap ne scanne qu'une adresse, tous les bits sont fixés).

Les notations CIDR sont pratiques, mais sont peu flexibles. Pour contourner ce problème, nmap autorise deux syntaxes supplémentaires pour la spécification des cibles. On utilisera toujours les représentations décimales pointées des adresses IP. Pour chaque octet de cette notation, il est possible de préciser des ensembles de valeur. Ces ensembles sont constitués d'entiers et d'intervalles entre 0 et 255, séparés par des virgules. Ainsi, la cible 192.168.3,4,5,6-10.50 entrainera l'analyse des addresses 192.168.x.50, ou x pourra valoir 3, 4, 5, ou une valeur entre 6 et 10, bornes incluses.

Les notations CIDR et les listes de valeurs ne sont pas disponibles pour les adresses IPv6. Cette restriction est assez peu gênante, étant donné que ces notations sont peu utilisées avec IPv6

Les cibles sont généralement spécifiées drectement dans l'appel de nmap en ligne de commande. Il est cependant possible d'utiliser un fichier contenant les valeurs des adresses à analyser :

-iL inputfilename. La liste d'adresses à analyser est spécifiée dans le fichier inputfilename. Cela permet de passer une liste très longue d'adresses en argument, sans avoir besoin de les saisir directement dans la ligne de commande. Les formats supportés sont les mêmes que pour les adresses spécifiées directement en ligne de commande (IPv4, listes d'octets, noms d'hôtes, IPv6, CIDR). Les entrées doivent être délimitées par au moins un espace. En utilisant un tirer ( - ) plutôt qu'un nom de fichier comme argument à -iL, vous pouvez rentrer les adresses en utilisant l'entrée standard plutôt qu'un fichier externe.

Il peut être intéressant pour un sysadmin d'effectuer des vérifications alétoires sur les hôtes de son réseau. Il est possible d'utiliser :
-iR num host . nmap génère des adresses aléatoirement. Les adresses indésirables, comme celles de broadcast, de multicast, ou les adresses non allouées, sont automatiquement ignorées. Si num vaut 0, l'analyse ne s'arrête jamais (sauf interruption du processus). Etant donnée la puissance de cette option, elle est à utiliser avec délicatesse ;)

–exclude host1[,host2[,…]] permet de ne pas scanner les hôtes spécifiés dans la liste. Les formats d'adresse supportés sont les mêmes que précédemment. Ainsi, vous pouvez éviter certains hôtes critiques, qui réagissent mal au scan, ou encore qui sont administrés par d'autres personnes.

–excludefile filename permet de ne pas prendre en compte la liste d'hôtes enregistrés dans le fichier filename. La syntaxe est la même que précédemment.

serveurs/nmap.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1