Nmap ("Network Mapper") est un utilitaire open-source qui est utilisé pour la découverte du réseau et l'audit de sécurité. Il s'agit d'un outil mondialement reconnu, principalement utilisé par les experts en réseau et les testeurs d'intrusion pour trouver des services, des hôtes et des ports ouverts sur un réseau informatique.
Mais avant d'aller de l'avant, un bref historique de Nmap. Il a été présenté pour la première fois par l'expert en sécurité réseau Gordon Lyon dans le magazine Phrack en septembre 1997. Nmap a été initialement écrit en langages de programmation C, C++, Python et Lua. Il s'agit d'un outil de mise en réseau open source largement reconnu.
Scanner une plage d'adresses IP
Si vous souhaitez analyser l'intégralité de la plage d'adresses IP CIDR (classless inter-domain routing), vous pouvez utiliser la commande suivante.
nmap 217.182.205.94
La plage IP est séparée par un tiret.
Dans notre exemple, Nmap va scanner les adresses IP de 162.16.121.25/24 à 162.16.121.35/24.
Identifier les ports
L'analyse de ports vous fournira la liste des ports, et des détails sur les services et les états de chaque port.
nmap 217.182.205.94
Port | State | Service |
---|---|---|
22/tcp | open | ssh |
443/tcp | open | https |
Dans notre exemple, Nmap nous renvoie un tableau avec 2 ports ouverts, le port 22 et 442, avec pour chacun d'eux le protocole qui est utilisé.
Détecter les hôtes
Si vous souhaitez savoir quels hôtes s'exécutent sur votre réseau, vous devez utiliser cette commande.
nmap -sP 217.182.205.94
Nmap scan report for vps-3a643b84.vps.ovh.net (217.182.205.94) Host is up (0.019s latency). Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Enregistrer les résultats dans un fichier
Nmap vous permet d'exporter les résultats de vos analyses dans un fichier de type texte ou XML.
nmap 217.182.205.94 -oN scan.txt nmap 217.182.205.94 -oX scan.xml
Comme vous le voyez sur l'exemple ci-dessus, il vous suffit simplement d'ajouter le flag "-oN" pour générer un fichier texte, ou "-oNX" pour un fichier XML.
Scanner les ports les plus populaires
Pour appliquer cette commande, vous devez utiliser l'option "-top-ports" avec le nombre de ports principaux à analyser. Ce flag vous permet d'obtenir des résultats beaucoup plus rapides.
nmap -top-ports 5 217.182.205.94
Port | State | Service |
---|---|---|
21/tcp | closed | ftp |
22/tcp | open | ssh |
23/tcp | closed | telnet |
80/tcp | open | http |
443/tcp | open | https |
Dans notre exemple, nous avons utilisé l'option "-top-ports" pour spécifier que nous devons scanner les 5 premiers ports de l'adresse IP 217.182.205.94.
Détecter les ports ouverts
La recherche de ports ouverts (UDP/TCP/SCTP) peut être la première étape pour protéger n'importe quel réseau.
nmap -open 217.182.205.94
Port | State | Service |
---|---|---|
22/tcp | open | ssh |
80/tcp | open | http |
443/tcp | open | https |
Détecter les versions des services
Nmap possède une base de données de plus de 2000 services et ports associés, par exemple - SSH (port 22) et HTTP (port 80). Ainsi, lors de l'inventaire du réseau, si vous souhaitez savoir quelles versions sont en cours d'exécution, vous pouvez utiliser le flag de détection de version (-sV). Connaître le numéro de version exact peut être très utile pour trouver les vulnérabilités de votre serveur.
nmap -sV 217.182.205.94
Port | State | Service | Version |
---|---|---|---|
22/tcp | open | ssh | OpenSSH 8.9p1 Ubuntu 3 (Ubuntu Linux; protocol 2.0) |
80/tcp | open | http | nginx 1.18.0 (Ubuntu) |
443/tcp | open | https | nginx 1.18.0 (Ubuntu) |