NMAP (Network Mapper) est un utilitaire réseau open source en ligne de commandes du monde Unix.
Il vous permet de faire un port scan, analyses de réseau, des audits de sécurité de l’infrastructure du réseau.
Zenmap est un GUI pour Nmap disponible pour Linux, Windows, Mac OS X, BSD, etc.
Source : https://www.malekal.com/comment-utiliser-nmap-windows-zenmap/
Voici une présentation de l’interface de Nmap pour Windows.
Celle-ci est relativement simple.

Comment faire un scan de ports TCP/UDP avec Nmap sur Windows :
- Ouvrez Nmap Zenmap
- Puis dans cible, saisissez soit l’adresse IP de l’hôte à scanner, soit un masque de sous-réseau pour scanner entièrement un réseau

Dans Profil, choisissez le type de scan. Par défaut, nmap est réglé sur Intense Scan.

- Cliquez sur le bouton Scan tout à droite
- Les hôtes détectés s’affiche dans la liste de gauche et sur la page principale les résultats du scan. Une icone indique le type d’appareil et OS (Windows, Linux, …)
- La sortie Nmap s’affiche sur la fenêtre principale

Cliquez sur Services afin de lister les services détectés et accessibles

Si vous souhaitez obtenir une vue interactive des connexions entre les hôtes du réseau LAN, cliquez sur l’onglet Topologie. Chaque anneau représente un saut de réseau supplémentaire à partir du nœud central. Un clic sur un nœud le fait apparaître au centre.

L’onglet Détails de l’hôte regroupe toutes les informations sur un seul hôte dans un affichage hiérarchique. On y trouve le nombre de ports ouverts, les adressages réseaux (adresse IP, adresse Mac), le type de hôte, le type d’OS, etc…

Nmap sur Linux
sudo apt install nmap #Pour les distributions basés sur Debian
Exemples de commandes nmap :
Voici la syntaxe par défaut de nmap :
nmap [Type de Scans] [Options] {Host cible}
Pour analyser une machine distante :
nmap 192.168.1.1 nmap www.host.tld
Ou encore pour scanner plusieurs hôtes :
nmap 192.168.1.1 192.168.1.2 192.168.1.3
Pour scanner un réseau entier, on peut spécifier un masque de sous réseau :
nmap 192.168.1.0/24 nmap 192.168.1.*
Mais on peut aussi analyser un intervalle de machines comme ceci :
nmap 192.168.1.0-200
Pour afficher des détails, on ajoute les options -v ou -vv pour le mode bavard :
nmap -v 192.168.1.1 nmap -vv 192.168.1.1

Pour scanner des hôtes depuis un fichier :
nmap -iL /tmp/listehote.txt

Pour exclure des hôtes d’une analyse :
nmap 192.168.1.0/24 --exclude 192.168.1.1 nmap 192.168.1.0/24 --exclude 192.168.1.1 192.168.1.5 nmap 192.168.1.0/24 --exclude 192.168.1.1,2,3
Ou encore exclure des hôtes depuis un fichier :
nmap 192.168.1.0/24 --excludefile exclusion.txt
Scanner tous les ports TCP :
nmap -sT 192.168.1.1
Scanner tous les ports UDP :
nmap -sU 192.168.1.1
Scanner un port TCP en particulier :
nmap -p T:80 192.168.1.1
Scanner un port UDP en particulier :
nmap -p U:53 192.168.1.1
Pour scanner un intervalle de ports :
nmap -p T:1-1024 192.168.1.1

Pour combiner plusieurs scans de ports réseaux spécifiques :
nmap -p U:53,9,113,T:21-25,80,443,8080 192.168.1.1
Le scan rapide rechercher les ports répertoriés dans les fichiers nmap-services, cela permet de recenser les principaux services réseaux.
Pour cela, on utilise l’option -F de Nmap :
nmap -F 192.168.1.1
Nous pouvons trouver les versions du service qui s’exécutent sur des hôtes distants avec l’option -sV :
nmap -sV 192.168.1.1

Analyser les informations du système d’exploitation et Traceroute
Nmap est aussi capable de détecter le système d’exploitation et la version en cours d’exécution sur l’hôte distant.
Pour activer la détection du système d’exploitation et de la version, l’analyse des scripts et le traceroute, nous pouvons utiliser l’option -A :

Nmap effectue un TCP/IP fingerprint et affiche le traceroute.
Si vous désirez n’avoir que la détection de l’OS, il faut utiliser l’option -O :
nmap -O 192.168.1.1
Désactiver la découverte d’hôte (pas de ping) ou résolution DNS
Ne pas envoyer de requête ping à l’hôte avant la numérisation avec l’option -Pn :
nmap -Pn 192.168.1.1
Pour désactiver la résolution DNS, utilisez l’option -n :
nmap -n 192.168.1.1
Effectuer des scans pour tromper un pare-feu
TCP Null Scan – Ne définissez aucun bit (l’en-tête de l’indicateur TCP est 0).
nmap -sN 192.168.1.1
TCP Fin Scan – Définissez uniquement le bit TCP FIN.
nmap -sF 192.168.1.1
TCP Xmas Scan – Définissez les drapeaux FIN, PSH et URG (allumant le paquet comme un arbre de Noël).
nmap -sX 192.168.1.1
Changer le type de scan
L’option -P permet de changer le type de scan :
- -Pn: Traitez tous les hôtes comme en ligne – ignorez la découverte des hôtes
- -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP découverte vers des ports donnés
- -PE / PP / PM: sondes de découverte d’écho, d’horodatage et de demande de masque de réseau ICMP
- -PO [liste de protocoles]: Ping de protocole IP
Analyser les hôtes distants à l’aide de TCP ACK (PA) et TCP Syn (PS) :
nmap -PS 192.168.1.1
Analyser l’hôte distant pour des ports spécifiques avec TCP ACK :
nmap -PA -p 22,80 192.168.1.1
Analyser l’hôte distant pour des ports spécifiques avec TCP Syn :
nmap -PS -p 22,80 192.168.1.1
Effectuer une analyse furtive (TCP SYN Scan) :
nmap -sS 192.168.0.101
Scanner de vulnérabilités Nmap
Il existe un script prédéfini présent dans la commande dans Nmap qui permet aux utilisateurs d’exécuter un scan de vulnérabilités. Cela est donc très pratique pour s’assurer que votre système est à jour et non vulnérable.
On peut utiliser ces scripts prédéfinis ou posséder leur langage de programmation Lua pour dériver une fonctionnalité spécifique qui peut aider à la détection CVE.
Pour cela, on utilise l’option -script vuln :
nmap -Pn –script vuln 192.168.1.1
Vous pouvez simplement utiliser le vérificateur de logiciels malveillants Google SafeBrowsing par la commande:
nmap -p80 –script http-google-malware www.site-web.com
Lancer une attaque bruteforce
Vous pouvez également utiliser Nmap pour lancer une attaque par bruteforce.
Là aussi, on utilise l’option -script pour spécifier le type d’attaque.
nmap -sV –script http-wordpress-brute –script-args ‘userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com, http-wordpress-brute.threads=3,brute.firstonly=true’ 192.168.1.1
Brute force attack against MS-SQL:
nmap -p 1433 –script ms-sql-brute –script-args userdb=customuser.txt,passdb=custompass.txt 192.168.1.105
Brute force attack against FTP:
nmap –script ftp-brute -p 21 192.168.1.105
Enregistrer le résultat du scan dans un fichier
L’option -oN permet d’enregistrer le résultat du portscan dans un fichier au format texte :
nmap -oN output.txt 192.168.1.1
Pour enregistrer le résultat du scan de port dans un fichier au format XML :
nmap -oX output.xml 192.168.1.1
Liste des options Nmap
Options | Commandes |
–exclude | Exclure des hôtes du scan |
-n | Désactiver la résolution DNS |
–open | Afficher que les ports ouverts |
-oN | Enregistrer le résultat du scan dans un fichier au formate texte |
-oX | Enregistrer le résultat du scan dans un fichier au formate XML |
-p | Spécifier les ports réseaux à scanner |
-Pn | Désactiver la découverte d’hôte |
-r | Analyser les ports consécutivement |
-sT | Faire un scan de port TCP |
-sU | Faire un scan de port UDP |
-sV | Trouver les versions du service |
-script | Utilise un script interne à nmap pour scan de vulnérabilité, bruteforce, etc |
-v -vv | Mode bavard |