Nmap signifie Network Mapper, c'est un outil de découverte et de reconnaissance de réseau gratuit et open-source utilisé pour la découverte d'hôtes et la collecte d'informations détaillées sur un hôte. Écrit en C, C++ et Python et initialement publié en septembre 1997, nmap est devenu un outil intégral pour les professionnels de la cybersécurité et de la criminalistique numérique qui s'y fient pour révéler des informations détaillées sur les hôtes cibles et découvrir les vulnérabilités potentielles. Nmap révèle des informations telles que les hôtes actifs sur un réseau, les ports ouverts, la détection du système d'exploitation et des services, et la réalisation d'analyses furtives pour n'en citer que quelques-unes.
Dans ce guide, nous mettons en évidence certaines des commandes Nmap pratiques que vous pouvez utiliser pour récupérer autant d'informations que possible à partir des systèmes hôtes.
Comment installer nmap
Avant d'examiner les différentes manières d'utiliser la commande nmap, voyons comment vous pouvez installer cet outil de ligne de commande utile. Le moyen universel et le plus simple d'installer nmap consiste à utiliser des packages snap. Les snaps sont des packages logiciels prédéfinis livrés avec des bibliothèques et des dépendances. Ils sont facilement disponibles dans toutes les principales distributions Linux. Vous pouvez trouver des tonnes de snaps dans snapstore. Cependant, avant d'installer Nmap à partir des packages snap, vous devez d'abord activer le démon snapd. Cela vous permettra de télécharger et d'installer des packages snap.
Pour installer Nmap à l'aide de snaps, exécutez la commande ci-dessous.
$ sudo snap install nmap
Alternativement, vous pouvez choisir d'installer Nmap en utilisant des gestionnaires de packages uniques à chaque famille de distribution Linux.
Pour Ubuntu et Debian
Pour les distributions basées sur Ubuntu/Debian/Mint, utilisez le gestionnaire de packages APT comme indiqué.
$ sudo apt -y install nmap
Pour CentOS 8 / RHEL 8 / Fedora 22 et versions ultérieures
Pour CentOS 8 / RHEL 8 et Fedora 22 et versions ultérieures, utilisez le gestionnaire de packages dnf.
$ sudo dnf -y install nmap
Pour CentOS 7 et RHEL 7
Pour CentOS 7 / RHEL 7 et les versions antérieures, utilisez le gestionnaire de packages yum.
$ sudo yum -y install nmap
Pour Arch Linux / Manjaro
Pour les systèmes basés sur Arch, utilisez le gestionnaire de packages pacman comme indiqué.
$ sudo pacman -S nmap
Après avoir examiné l'installation de nmap, continuons maintenant et voyons 20 exemples de commandes nmap impressionnants sous Linux
1) Commande Nmap pour analyser un seul hôte
Dans sa forme de base, la commande nmap peut être utilisée pour analyser un seul hôte sans passer d'arguments. La syntaxe est la suivante :
$ nmap cible-ip
Par exemple ;
$ nmap 192.168.2.102
Alternativement, au lieu de spécifier l'adresse IP, vous pouvez spécifier le nom de domaine comme indiqué :
$ nmap scanme.nmap.org
2) Analyser plusieurs hôtes
L'analyse de plusieurs hôtes à la fois est particulièrement pratique pour les réseaux étendus où vous souhaitez analyser plusieurs hôtes à la fois. C'est un moyen pratique d'analyser les hôtes en une seule commande au lieu d'analyser chaque hôte séparément. Par exemple, vous pouvez analyser 10 hôtes ou plus ou un sous-réseau entier pendant que vous travaillez sur autre chose. Il existe différentes manières de procéder.
Tout d'abord, vous pouvez spécifier plusieurs adresses IP ou domaines à la suite séparés par un espace, comme indiqué ;
$ nmap 192.168.2.1 192.168.2.103
Plutôt que de saisir les adresses IP au complet, vous pouvez séparer les terminaisons par une virgule, comme indiqué.
$ nmap 192.168.2.1,102,103
Vous pouvez également spécifier une plage d'adresses IP à l'aide d'un trait d'union. Par exemple, la commande ci-dessous analyse les hôtes de 192.168.2.1 à 192.168.2.100
$ nmap 192.168.2.1-100
3) Analyser un sous-réseau avec nmap
De plus, vous pouvez utiliser un caractère générique pour analyser un sous-réseau entier comme indiqué :
$ nmap 192.168.2.* OR $ nmap 192.168.2.0/24
Pour affiner l'analyse et découvrir uniquement les hôtes actifs dans un sous-réseau, utilisez l'option -sP comme indiqué.
$ nmap -sP 192.168.2.*
4) Obtenir plus d'informations avec l'option détaillée
Pour obtenir une sortie plus robuste lors de l'analyse nmap, utilisez l'option -v. Cette option imprime les détails de l'analyse tels que la nature de l'analyse et les ports ouverts qui sont découverts.
$ nmap -v 192.168.2.1
5) Exclure des hôtes d'une analyse Nmap
Lors de l'analyse d'une plage d'hôtes, vous pouvez décider d'exclure un seul hôte de l'analyse. Pour ce faire, utilisez l'option –exclude. Dans l'exemple ci-dessous, nous avons exclu l'hôte 192.168.2.20 de l'analyse.
$ nmap 192.168.2.0/24 --exclude 192.168.2.20
Pour exclure plusieurs hôtes de l'analyse Nmap, spécifiez les hôtes à exclure dans un fichier et liez la commande au fichier comme indiqué :
$ nmap 192.168.2.* --excludefile exclude.txt
La commande ci-dessus exclut tous les hôtes contenus dans le fichier exclude.txt.
6) Effectuer une analyse rapide
Comme son nom l'indique, vous pouvez effectuer une analyse beaucoup plus rapide à l'aide de nmap en passant l'indicateur -F comme indiqué :
$ nmap -F 173.82.202.201
Un avertissement cependant - Cette analyse donne moins de ports que l'analyse ordinaire.
7) Analyser les hôtes actifs d'un réseau
Cela ressemble plus à un scan ping. Il détecte les hôtes actifs dans un sous-réseau. Pour rechercher des hôtes actifs, transmettez l'option -sn suivie de l'adresse IP et du sous-réseau. Par exemple :
$ nmap -sn 192.168.2.0/24
8) Analyser les hôtes contenus dans un fichier
Si vous avez un réseau segmenté, en particulier un avec des VLAN, il y a de fortes chances que vous ayez des hôtes dans différents sous-réseaux. Un moyen simple de les analyser consiste à définir leurs adresses IP dans un fichier texte et à transmettre le fichier en tant qu'argument à l'aide de l'option -iL.
$ nmap iL hosts.txt
Voici un exemple du fichier hôte
$ cat hosts.txt 192.168.2.100 192.168.2.102 192.168.20.5-50
9) Effectuez une analyse pour détecter le pare-feu
La détection de pare-feu est particulièrement utile lors de tests de vulnérabilité ou de piratage éthique. Il permet à l'administrateur système de savoir si le pare-feu de l'hôte cible est activé ou non. Pour connaître l'état d'un pare-feu, utilisez l'indicateur -sA comme indiqué.
$ nmap -sA 192.168.2.1
Cela lance une analyse ACK qui examine si les paquets peuvent passer sans être filtrés. Utilisez l'indicateur -n pour empêcher la résolution DNS inverse sur l'hôte cible.
10) Effectuer la détection du système d'exploitation avec nmap
Nmap peut également fournir des informations sur le système d'exploitation ou le système d'exploitation du système cible, ainsi que sur la détection de version. Pour la détection du système d'exploitation, passez l'option -O comme indiqué. Nous allons analyser un VPS cloud hébergé sur un système Linux et voir ce que nmap nous donne.
REMARQUE : Si vous êtes un utilisateur régulier, vous devez appeler la commande sudo car la détection du système d'exploitation nécessite des privilèges sudo.
$ sudo nmap -O 173.82.202.201
Nmap fait de son mieux pour identifier le système d'exploitation et sa version, cependant, les résultats peuvent ne pas toujours représenter un résultat précis.
11) Effectuer une analyse des ports
L'une des tâches essentielles de l'outil nmap consiste à analyser les ports sur un système hôte. Vous pouvez aller droit au but et spécifier un port à analyser à l'aide de l'indicateur -p suivi du numéro de port, comme indiqué :
$ nmap -p 80 173.82.202.201
De plus, vous pouvez rechercher plusieurs ports en les séparant à l'aide d'une virgule, comme indiqué :
$ nmap -p 80,443 192.168.2.1
Vous pouvez également définir une plage de ports à analyser en les séparant par un trait d'union.
$ nmap -p 80-443 192.168.2.1
12) Rechercher les ports TCP/UDP
Vous pouvez vous limiter aux ports d'analyse TCP ou UDP. Pour analyser les ports TCP, utilisez l'option -sT comme indiqué.
$ nmap -sT 173.82.202.201
Pour un port TCP particulier, tel que le port 80, exécutez :
$ nmap -p T:80 173.82.202.201
Pour les ports UDP, utilisez l'option -sU.
$ nmap -sU 173.82.202.201
Pour un port UDP particulier, tel que le port 69, exécutez :
$ nmap -p U:69 173.82.202.201
13) Découvrir la version du service
Lors de la recherche d'éventuelles vulnérabilités, il est crucial de détecter les services en cours d'exécution et leurs versions ainsi que les ports sur lesquels ils écoutent. Cela vous permet de savoir quels services peuvent être exploités par un attaquant pour compromettre votre système. La connaissance des versions de service et de port vous permet de décider de mettre à jour les services vers leurs dernières versions ou de les désinstaller complètement.
Pour collecter les informations sur les services et les ports, utilisez l'indicateur -sV.
$ nmap -sV 173.82.202.201
14) Effectuer une analyse furtive
Une analyse nmap est généralement "bruyante" et laisse des empreintes qui peuvent être signalées par un IDS (système de détection d'intrusion) robuste et éventuellement être retracées jusqu'à vous. Pour rester anonyme , vous pouvez effectuer une analyse furtive à l'aide de l'option -sS.
$ nmap -sS 173.82.202.201
15) Déterminer les protocoles IP compatibles
Vous pouvez récupérer des informations sur les protocoles pris en charge par un système cible (ICMP, TCP, UDP, etc.) à l'aide de l'indicateur -sO.
$ sudo nmap -sO 173.82.202.201
16) Effectuez une analyse agressive
Lorsque l'option -A est utilisée, nmap donne des résultats d'analyse très détaillés, y compris les ports ouverts et les versions des services en cours d'exécution, la détection du système d'exploitation et effectue même un traceroute du ou des hôtes cibles.
$ nmap -A 173.82.202.201
17) Enregistrer la sortie nmap dans un fichier
Par défaut, nmap imprime les résultats de l'analyse sur le terminal. Mais si vous avez besoin d'enregistrer les résultats dans un fichier texte pour une analyse plus approfondie à votre convenance, vous pouvez utiliser l'opérateur de redirection comme indiqué.
$ nmap 173.82.202.201 > scanme.txt
Pour vérifier que les résultats de l'analyse ont été enregistrés, utilisez la commande cat comme indiqué.
$ cat scanme.txt
De plus, vous pouvez passer l'option -oN suivie du fichier de sortie et de l'hôte.
$ nmap -oN scanme.txt scanme.nmap.org
18) Imprimez les interfaces hôtes et les routes
Parfois, vous pourriez avoir besoin de trouver les interfaces et les routes du système hôte à des fins de débogage. Ceci peut être facilement réalisé en passant l'option –iflist.
$ nmap --iflist
19) Obtenir de l'aide avec nmap
Pour assouvir votre curiosité sur les options nmap supplémentaires, utilisez l'indicateur -h. Cela revient à obtenir de l'aide avec les commandes nmap.
$ nmap -h
20) Vérifier la version de nmap
Pour vérifier la version de nmap que vous utilisez, exécutez la commande :
$ nmap -v
Ce ne sont que 20 des commandes Nmap de base que vous pouvez utiliser pour énumérer divers systèmes hôtes. Il existe encore de nombreuses options nmap que vous pouvez utiliser pour obtenir des détails précis sur le système cible, mais les exemples que nous avons répertoriés sont un bon point de départ. Nous espérons que ce guide vous a été utile pour vous familiariser avec l'outil nmap et divers exemples de commandes.
Lire aussi :9 exemples de commandes tee sous Linux