Nmap
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Scan de ports et découverte réseau |
| Type | Scanner de référence (open source) |
| Site | https://nmap.org/ |
| Voir aussi | Scan de ports TCP, Scan de ports UDP, Connexion |
Nmap (Network Mapper) est le scanner réseau de référence. Il permet de :
- découvrir les hôtes actifs (hosts alive) ;
- identifier les services ouverts (nom et version) ;
- détecter le système d'exploitation (nom et version) ;
- déduire la présence de filtres et de pare-feux d'après le type de réponses.
Voir les articles connexes : Connexion, Scan de ports TCP, Scan de ports UDP.
Ressources : https://nmap.org/man/fr/ · Zenmap (GUI) https://nmap.org/zenmap/ · scripts NSE https://nmap.org/nsedoc/index.html
Rappel : poignée de main TCP
- le client envoie le drapeau SYN (synchronise) ;
- le serveur répond SYN-ACK (synchronise / acknowledgment) ;
- le client répond ACK (acknowledgment).
La connexion passe alors en mode ESTABLISHED. Les drapeaux TCP fonctionnent en booléen :
- URG — urgence de traitement
- ACK — accusé de réception
- PSH — méthode push
- RST — réinitialisation de la connexion
- SYN — demande de connexion
- FIN — fin de connexion
Un scan en mode FIN ferme la « connexion » avant même qu'elle soit établie (et donc loguée) ; le serveur répond par un RST.
Principales options
Techniques de scan
-sS # SYN scan (TCP), rapide, pas de session loguée sur la cible
-sT # connect() : méthode standard TCP, sans droits root
-sU # scan UDP (lent)
-sA # ACK scan
-sN # Null scan (aucun drapeau dans l'en-tete)
-sF # FIN scan
-sX # Xmas scan (drapeaux FIN, PSH et URG)
Découverte d'hôtes
-sP # équivalent d'un ping sweep (établit une connexion : visible sur la cible)
-Pn # désactive la découverte d'hôtes, scanne directement les ports
-P0 # évite l'ICMP echo request (discrétion accrue) ; détectable par un NIDS (snort)
-PR # découverte ARP
-n # pas de résolution DNS
Détection de service et de version
-sV # version du service
-sV --version-intensity 8 # intensité de détection
-O # détection de l'OS
-A # OS + version des services + traceroute + scripts
Temporisation
-T0 ... -T5 # de 0 (le plus lent) à 5 (le plus rapide)
--scan-delay # délai entre les sondes
Évasion pare-feu / IDS
-f # petits paquets fragmentés
--mtu # taille de MTU imposée
-D # leurres : scans depuis des IP usurpées
-S # usurpe l'adresse source
-g # port source imposé
--proxies # relais
--data-length # ajoute des données aléatoires aux paquets
Sortie
-oN # sortie normale (fichier)
-oX # XML
-oG # format grepable
-oA # tous les formats
Sélection des ports et des cibles
-p 23 # scanne le port 23
-p 10-90,63000 # ports 10 à 90 et 63000
-F # scan rapide (ports de /etc/services)
-e eth0 # interface d'émission
nmap exemple.org/24
nmap 192.168.0.0-255
nmap 192.168.0.*
Usage courant
nmap -A <hostname>
nmap -sS 192.168.0.61 -p 443
nmap -sS -Pn -A 192.168.0.61
nmap -sS -sV -T4 -P0 exemple.tld
nmap -sS -sU -O -oN nmap.log 192.168.0.1-254
nmap -sT -O 192.168.0.1/24
nmap -sP 192.168.0.1-100
nmap -T4 -A -v <ip>
nmap -sS 192.168.1.0/24 -T5
# inventaire par ping sweep
nmap -sP -PE -PA21,23,80,3389 192.168.0.1-100
Usages particuliers
# fragmentation IP
nmap -sS -T4 -A -f -v 192.168.0.1
# ACK flag scan
nmap -sA -P0 10.0.0.1
# difficulté de prédiction de séquence TCP
nmap -O -v <ip>
# usurpation d'identité : spoof 192.168.1.35 depuis le port 80 vers l'interface wlan0
nmap --packet-trace -S 192.168.1.35 -g80 -e wlan0 192.168.1.210
nmap -sS 192.168.0.11 -D 192.168.0.10
# rebond FTP (FTP bounce)
nmap -P0 -b user:pass@ftp-server:port <cible>
# scan par machine zombie (idle scan)
nmap -P0 -sI 192.168.0.155 192.168.0.50
Scripts NSE
cd /usr/share/nmap/scripts
nmap -sT -A --script=smb-check-vulns --script-args=unsafe=1 -P0 192.168.0.61
nmap --script ssl-enum-ciphers -p 443 exemple.tld
# énumération HTTP
nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 wiki.exemple.tld
# détection DHCP
nmap -sU -p 67-68 --script dhcp-discover 192.168.1.0/24
# vulnérabilité SMB
nmap -p445 --script=smb-vuln-ms17-010 192.168.0.1
# test POODLE / négociation SSL
nmap --script ssl-enum-ciphers -p 443 exemple.tld
# algorithmes SSH
nmap -p 22 --script ssh2-enum-algos $YOUR_SERVER | grep -i aes*-gcm
Voir aussi
- Scan de ports TCP — détail des techniques TCP
- Scan de ports UDP — détail du sondage UDP
- Connexion — états d'une connexion TCP
- Os fingerprinting — détection d'OS et de services
- Zmap — scan à l'échelle d'Internet