Il est conçu pour détecter et scanner les ports ouverts, afin de permettre l'identification des services hébergés sur une machine et d'obtenir des informations éventuelles sur son système d'exploitation.
Devenu un "must have" pour les administrateurs réseaux, l'audit des résultats de Nmap fournit généralement un bon point de départ sur la sécurité d'un réseau ou d'un serveur.
Il existe des versions du logiciel sous Windows, Mac OS X, Linux, BSD et Solaris. À noter également qu'il existe des interfaces graphiques du type ZenMap.
J'aborderai dans ce tutoriel, une utilisation exclusivement en ligne de commande de cet outil.
⚠️ Assurez-vous d'avoir le droit de scanner la machine ou le réseau en question. Ce type de commande peut déclencher toutes sortes d'alertes de sécurité réseau, alors assurez-vous que vous possédez les autorisations nécessaires pour le faire. À défaut, vous pouvez scanner votre propre machine 127.0.0.1
ou le réseau de votre domicile. ⚠️
Scanner un réseau :
Vous avez perdu l'IP de la dernière imprimante installée à la comptabilité ? Ou vous ne retrouvez plus l'IP de votre Raspberry qui est resté en DHCP ?
Aucun soucis, Nmap peut vous aider ...
- Scan du réseau via ping :
nmap -sP 192.168.1.0-255
est équivalent à nmap -sP 192.168.1.0/24
ou encore nmap -sP 192.168.1.*
La commande va tout simplement envoyer une requête ICMP ECHO
à toutes les machines ciblées.
- Commande pour scanner une plage d'adresses, ici de 192.168.1.0 à 192.168.1.30 :
nmap 192.168.1.0-30
On peut également lui passer une liste de cible de la façon suivante :
$ cat cibles.txt
192.168.1.x
192.168.1.x
Pour charger les cibles depuis le fichier cibles.txt
, tapez la commande suivante :
nmap -iL cibles.txt
Cette option peut être utile, si par exemple, vous scannez l'ensemble du réseau via un ping au préalable. Ensuite vous pouvez alimenter votre fichier cible avec les machines répondant au ping.
Scan avancé :
Ces commandes sont plus spécifiques à une machine en particulier.
- Scan de ports ouverts :
nmap -p- 192.168.1.1
L'option -p
indique qu'il faut analyser les ports et le -
signifie «tous».
Voici une autre façon de procéder qui va utiliser l'envoi de message SYN
et qui n'est pas logué :
nmap -sS 192.168.1.1
Vous pouvez effectuer la même commande pour les ports UDP
:
nmap -sU 192.168.1.1
- Détecter le système d'exploitation :
nmap -O 192.168.1.1
- Scanner une plage de ports :
nmap -p 20-443 192.168.1.1
- Obtenir plus d'informations sur les services :
nmap -sV -p- 192.168.1.1
Vous pouvez utiliser l'indicateur -sV pour obtenir plus d'informations sur les versions de service.
nmap
possède une base de données des versions et de leurs comportements, il va exécuter plusieurs commandes pour interroger les ports ciblés et ainsi faire correspondre leurs réponses à une version. Cette commande peut être utile pour savoir si vous masquez suffisamment vos informations de version.
- La version du système d'exploitation et des services :
nmap -A 192.168.1.1
Enfin l'une des plus souvent utilisées :
nmap -T4 -A -v 192.168.1.1
Cette commande va scanner de façon «agressive» la machine ciblée, en mode verbeux et avec un maximum d'informations.
Il existe un grand nombres d'options à la commande nmap
, mais nous avons pu découvrir ensemble les options indispensables à une première expérimentation. Je vous invite à consulter le manuel de la commande si vous souhaitez en découvrir bien plus !
Si vous avez d'autre commande utile n'hésitez pas à faire un commentaire sur twitter afin que je l'ajoute à cette liste !