Nmap est un scanner de port open source beaucoup utilisé par les SecOps pour analyser leurs systèmes informatiques afin de mieux les sécuriser. Nmap est aussi beaucoup utiliser par des pirates / analystes pour détecter des brèches sur des systèmes distants.
Nmap est open source et multi-plateforme, vous pourrez donc télécharger la version qui vous convient directement sur le site officiel nmap.org
Si votre machine d’administration est un système Linux il suffira d’installer Nmap directement depuis le dépôt associé à votre distribution.
Pour installer par exemple la dernière version de Nmap sur Debian il suffit de taper la commande suivante :
apt-get update && apt-get install nmap
Maintenant que Nmap est installé sur votre machine d’administration, voici quelques commandes simples.
Lister les machines à explorer
Avant de pouvoir détecter les ports ouverts sur un système vous souhaitez peut être afficher tous les systèmes actifs d’un réseau ou sous réseau donné.
nmap -sP 192.168.0.1/24
On obtient le résultat suivant
Nmap scan report for 192.168.0.1
Host is up (0.035s latency).
Nmap scan report for 192.168.0.2
Host is up (0.035s latency).
Nmap scan report for 192.168.0.4
Host is up (0.035s latency).
Nmap scan report for 192.168.0.6
Host is up (0.035s latency).
Nmap scan report for 192.168.0.12
Host is up (0.035s latency).
Nmap scan report for 192.168.0.25
Host is up (0.035s latency).
Nmap scan report for 192.168.0.26
Host is up (0.035s latency).
Nmap scan report for 192.168.0.122
Host is up (0.064s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 3.67 seconds
J’ai 8 machines actives sur mon réseau.
Détecter les ports ouverts sur un système distant
Pour détecter quels sont les ports ouverts sur la machine qui porte l’adresse 192.168.0.12 je tape la commande suivante
nmap -sV 192.168.0.12
On obtient un résultat qui ressemble à cela
Starting Nmap 6.47 ( http://nmap.org ) at 2020-04-14 23:41 CEST
Nmap scan report for 192.168.0.12
Host is up (0.035s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u8 (protocol 2.0)
80/tcp open http Apache httpd 2.4.10 ((Debian))
443/tcp open ssl/http Apache httpd 2.4.10 ((Debian))
8443/tcp closed https-alt
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 33.68 seconds
Ce résultat indique pour chaque port ouvert, le service qui lui est associé ainsi que son numéro de version.
Par exemple le port 22 est ouvert par le service SSH. Il s’agit du port utilisé pour administrer le serveur à distance en ligne de commande. Le service SSH en question est exécuté par le paquet OpenSSH 6.7p1.
On en déduit également qu’il s’agit d’un système Linux Debian 8.
Un pirate pourrait par exemple s’intéresser à chercher une faille concernant OpenSSH 6.7p1 ce qui lui permettrait ensuite de réaliser un exploit en accédant au système pour voler des données ou déployer des outils pour créer un botnet en vue d’une attaque massive sur une organisation.