Installation et configuration de Nmap
Sommaire
I. Présentation
Dans ce chapitre, nous allons apprendre à installer l’outil de scan réseau Nmap sur les OS Linux et Windows. Nous aurons à la fin de ce chapitre tout ce qu’il faut pour commencer à utiliser Nmap pour les prochains modules. Enfin, nous verrons quels privilèges il peut demander lors de son utilisation et pourquoi.
II. Installation de Nmap sous Linux
Nmap a été initialement créé pour fonctionner sur les systèmes d’exploitation GNU/Linux. Ainsi, et grâce à sa grande longévité et popularité, vous le trouverez dans tous les dépôts officiels des grandes distributions Unix. Dans le cadre de ces cours, j’utiliserai un système d’exploitation Kali Linux, basé sur Debian. Mais vous pourrez l’utiliser exactement de la même manière depuis une Debian classique, un CentOS, Red Hat, ou autre !
Sous Debian, pour vérifier que Nmap est bien présent dans vos dépôts actuels, vous pouvez utiliser la commande suivante :
# Sous Debian et dérivés
$ sudo apt search ^nmap$
Sorting... Done
Full Text Search... Done
nmap/kali-rolling,now 7.94+git20230807.3be01efb1+dfsg-2+kali1 amd64
The Network Mapper
# Sous Red Hat et dérivés
$ dnf search '^nmap$'
La réponse ici indique clairement que le paquet “nmap” existe dans les dépôts (ici, ceux de Kali Linux). Dès lors, vous pourrez installer Nmap via les commandes d’installation habituelles, rien de désarmant pour le moment 🙂 :
# Sous Debian et dérivés
sudo apt install nmap
# Sous Red Hat et dérivés
sudo dnf install nmap
Pour vérifier que Nmap est bien installé, nous allons afficher sa version :
nmap --version
Voici le résultat attendu :
On peut noter la présence dans cet affichage de la librairie “libpcap” (Packet Capture Library) et de sa version. Également exploitée par Wireshark, “libpcap” est utilisée par Nmap pour la création, la manipulation des paquets et l’écoute du trafic réseau.
III. Installation de Nmap sous Windows
Pour une installation sur un système d’exploitation Windows, il faut commencer par télécharger le binaire depuis le site officiel (et aucun autre !) :
- Page de téléchargement de Nmap sur le site officiel : https://nmap.org/download.html#windows
Il faudra alors télécharger le binaire nommé “nmap-<VERSION>-setup.exe” :
Une fois ce binaire présent sur votre système, il vous suffit de l’exécuter pour procéder à l’installation de Nmap. Il s’agit d’une installation tout ce qu’il y a de plus classique, vous pouvez laisser l’ensemble des options par défaut.
J’ai pour réflexe de décocher la case “zenmap (GUI Frontend)”, il s’agit d’une interface graphique pour Nmap que je n’utilise pas et qui ne sera pas couverte dans ce cours, mais libre à vous de tenter l’expérience une fois que vous maîtriserez l’outil Nmap en ligne de commande !
À la fin de l’installation de Nmap, vous aurez une seconde installation de proposée : celle de la librairie “Npcap“ :
Il s’agit de la librairie sur laquelle se repose Nmap pour gérer les communications réseau, c’est-à-dire la construction, l’envoi et la réception de paquet réseau. Vous avez forcément déjà croisé cette librairie si vous utilisez Wireshark sous Windows, puisque lui aussi l’utilise également et requiert son installation.
Même chose que sous Linux, vous pourrez valider que Nmap est bien installé en ouvrant une Invite de commande ou un terminal Powershell et en saisissant la commande suivante :
nmap --version
Voici le résultat attendu :
Nmap est maintenant installé sous Windows. Vous pourrez l’utiliser exactement de la même façon que sur Linux, en suivant ce cours.
IV. Les privilèges locaux requis pour utiliser Nmap
Mais au fait, lors de l’utilisation de Nmap, est-il nécessaire d’avoir des privilèges locaux élevés sur le système ? La réponse est : cela dépend.
Dans son utilisation très basique, c’est-à-dire sans aller très loin dans l’usage de ses options, Nmap ne requiert pas forcément de droits privilégiés. Néanmoins, vous vous apercevrez vite qu’il est mieux d’utiliser Nmap dans un contexte privilégié (“root” sous Linux, “administrateur” ou équivalent sous Windows) pour pouvoir l’utiliser avec toutes ses capacités, au risque d’obtenir un message d’erreur comme celui-ci :
Que ce soit sous Linux ou sur Windows, il y a de nombreux cas où Nmap vous demandera un accès privilégié. Les principales raisons sont les suivantes (liste non exhaustive) :
- Construire des paquets réseau “brut”: Nmap est capable d’utiliser de nombreuses méthodes de scan, incluant la manipulation et construction avancée de paquets. C’est par exemple le cas quand nous voulons effectuer des scans TCP SYN, qui ne respectent pas le Three-way handshake classique des échanges TCP. Pour ce faire, Nmap doit utiliser d’autres fonctions que celles natives aux systèmes d’exploitation, qui ne savent que respecter les bonnes pratiques concernant les communications réseau (il fait ici appel aux librairies “Npcap” et “libcap”vues précédemment). C’est parce que Nmap ne fait pas les choses de façon “standard” qu’il est capable de déduire certaines informations concernant les OS, les services et certaines vulnérabilités.
- Écouter le trafic réseau : certaines options de Nmap nécessitent qu’il se mette en écoute du réseau afin de récupérer certaines informations. Cette action est considérée comme sensible sur les systèmes d’exploitation puisqu’elle permet d’écouter aussi les communications des autres applications du système. Exactement comme Wireshark, Nmap a besoin de privilèges spécifiques pour réaliser cela, qu’il est plus facile d’obtenir en étant directement dans une session privilégiée.
- Se mettre en écoute sur des ports privilégiés : sur les systèmes d’exploitation, les ports de 0 à 1024 (TCP comme UDP) sont dits privilégiés, c’est-à-dire qu’ils sont en quelque sorte réservés à des usages bien précis et donc protégés. Bien qu’il s’agisse d’une raison un peu obsolète aujourd’hui, il est toujours nécessaire d’avoir certains privilèges pour écouter sur ces ports, ce que Nmap peut être amené à faire en fonction de la façon dont il sera utilisé.
- Envoyer des paquets en UDP : de même, la mise en écoute d’une application réseau sur des ports UDP (un protocole sans état) nécessite des droits privilégiés sur les systèmes d’exploitation. Une session privilégiée sera donc nécessaire dès lors que l’on souhaite faire un scan UDP, pour lequel Nmap devra se mettre en écoute d’une réponse pour analyser les réponses à ses scans.
Pour être plus précis, il est possible, au moins sous Linux, d’exécuter Nmap avec toutes ses fonctions et options sans pour autant être “root”. Cela en accordant les bonnes capabilities au binaire. Cependant, cela nécessite des manipulations avancées et peut ne pas être aussi pratique que d'exécuter directement Nmap avec des privilèges. Également, cette approche est moins courante et peut poser des problèmes de sécurité si elle est mal configurée.
Néanmoins, cela s’éloigne un peu de notre cours sur Nmap, nous nous en passerons donc pour l'instant.
Pour la suite de ce cours, considérez que Nmap est toujours exécuté en tant que “root” (depuis un shell en tant que ”root” ou via la commande “sudo”), ou dans un terminal administrateur sous Windows, même si cela n’est pas indiqué. Sinon, vous pourrez avoir des différences de résultat (subtiles, mais bien présentes) par rapport au cours.
V. Conclusion
Voilà ! Nmap est maintenant installé sur notre système d’exploitation et prêt à être utilisé, il ne nécessite pas plus de configuration que cela. Ce chapitre clôture le premier module d’introduction et de présentation de Nmap. J’espère qu’il vous aura mis l’eau à la bouche et que vous avez hâte de commencer la pratique.
Plus sérieusement, nous avons maintenant une meilleure idée de ce qu’est l’outil de cartographie Nmap et quels sont ses cas d’usages les plus courants, mais aussi ses limites. Passons à la suite !