Nmap
📋 Fiche Outil : Nmap
masscan, rustscan
nmap furtif
nmap [Type de Scan] [Options] {Cible}
Description
Paramètre (Flag)
| Option | Description | Exemple d’utilisation |
|---|---|---|
-sS |
Scan TCP SYN (stealth scan) | nmap -sS 192.168.1.10 |
-sV |
Détection de version des services | nmap -sV 192.168.1.10 |
-sC |
Équivalent à -script=default, lance une série de scripts de base sûrs. |
nmap -sC 192.168.1.10 |
-A |
Active l’OS detection, traceroute, -sV, -sC |
nmap -A 192.168.1.10 |
-v |
Mode verbeux (affiche plus d’infos pendant le scan) | |
-sC |
Lance les scripts NSE par défaut | nmap -sC 192.168.1.10 |
-p- |
Scan tous les ports TCP (1-65535) | nmap -p- 192.168.1.10 |
-T4 |
Vitesse du scan (0 à 5) – 4 = rapide sans être trop bruyant | nmap -T4 192.168.1.10 |
-P0 |
Ne fait pas de ping préalable avant de scanner. Utile si la machine ne répond pas aux ping ICMP | |
-Pn |
Ignore le ping → force le scan même si la machine ne répond pas au ping | nmap -Pn 192.168.1.10 |
--min-rate=100 |
Force au moins 100 paquets/seconde (accélère le scan) | nmap --min-rate=100 -p- 192.168.1.10 |
--max-rate=500 |
Limite la vitesse à max 500 paquets/sec (utile en scan furtif) | nmap --max-rate=500 -p- 192.168.1.10 |
-oN result.txt |
Sauvegarde la sortie normale dans un fichier | nmap -oN result.txt 192.168.1.10 |
-oA scan-result |
Génère 3 fichiers : normal (.nmap), XML (.xml), grepable (.gnmap) |
nmap -oA scan-result 192.168.1.10 |
-oX scan-result |
Sauvegarde le résultat au format XML dans un fichier nommé | |
--script vuln |
Lance les scripts NSE de type vulnérabilité | nmap --script vuln 192.168.1.10 |
--webxlm |
Spécifique à la conversion web : Ajoute un schéma XSLT pour que le fichier XML puisse être ouvert dans un navigateur (beau rendu web) |
Commande Essentiel
| -sn | Identifier les hôtes actifs sur un sous-réseau | nmap -sn 192.168.1.0/24 |
|---|---|---|
| -Pn | Identifier les hôtes actifs en ignorant le ping (utile si le pare-feu bloque l’ICMP) : | nmap -Pn |
| -O | Tenter d’identifier l’OS de la cible | nmap -O |
| -sV -sC -p- -oN nmap_scan.txt | Combine la détection de version, les scripts par défaut et le scan de tous les ports | nmap -sV -sC -p- -oN nmap_scan.txt |
Exemple
- scan de tous les ports, rapide, même si la machine ne répond pas au ping, et export complet des résultats
nmap -sS -sV -p- -T4 -Pn --min-rate=100 -oA fullscan 192.168.1.10
## FSDFSDF
FEDF
- Rechercher des vulnérabilités (avec scripts NSE vuln) :
nmap --script vuln 192.168.1.20
- Scanner uniquement les ports web (HTTP, HTTPS) :
nmap -p 80,443 -sV --script http-enum 192.168.1.20
- Scanner une URL ou domaine :
nmap -sS -sV -A -T4 scanme.nmap.org
- Fuffly
nmap -T4 -p- -v -A -oX -P0 fluffy_tcp.scan 10.10.11.69 --webxml
Step By Step
Pour faire un scan nmap et éviter au maximun les détections, il faut scanner un minimum de port.
On fait les Scan Petit à petit :
nmap -T4 -p- --min-rate 1000 -Pn {IP}
on copie le résultat et on le colle dans le fichier txt
mousepad nmap.txt
Script Nmap
Le Nmap Scripting Engine (NSE) est la fonctionnalité la plus puissante de Nmap. Il permet d’automatiser des tâches et de chercher des vulnérabilités spécifiques.
Commande
- Lancer tous les scripts de la catégorie « vuln » sur les services détectés :
nmap -sV --script=vuln <IP>
- Énumérer les partages SMB sur un serveur Windows :
nmap -p 445 --script=smb-enum-shares <IP>
Exemple
Port SMB / Samba (139/445)
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 10.10.235.207
-script=smb-enum-shares.nse,smb-enum-users.nse : Ici, tu demandes à Nmap d’utiliser deux scripts spécifiques de sa bibliothèque (NSE – Nmap Scripting Engine).
smb-enum-shares.nse: Ce script tente de lister tous les partages de fichiers (les « shares ») disponibles sur la machine cible.smb-enum-users.nse: Ce script essaie d’énumérer les utilisateurs locaux de la machine.
Port RCPBIND (111)
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.235.207
-script=nfs-ls,nfs-statfs,nfs-showmount : Ici, tu demandes à Nmap d’exécuter trois scripts spécialisés pour NFS, l’un après l’autre.
nfs-showmount: Ce script est le plus important au début. Il demande au serveur : « Montre-moi (show) la liste des dossiers que tu partages (mounts) ». C’est l’équivalent de la commande Linuxshowmount -e <IP>.nfs-statfs: Si des partages sont trouvés, ce script tente d’obtenir des statistiques (statfspour _statistics file system_) sur ces partages, comme l’espace total, l’espace utilisé et l’espace libre.nfs-ls: C’est le script le plus intéressant pour un attaquant. S’il trouve des partages ouverts, il essaie de lister (ls) tous les fichiers et dossiers à l’intérieur de ces partages
⚠️ Conseils et Points d’Attention
- Vitesse vs Précision : Utilisez les templates de timing (
T0àT5) pour ajuster la vitesse du scan.T4(agressif) est un bon compromis.T5(insane) est très bruyant et peut manquer des ports. - Ne pas faire confiance à 100% à la détection d’OS : Elle peut être trompée par certains systèmes.
- Les scans UDP (
**sU**) sont très lents, ne les lancez sur tous les ports que si c’est absolument nécessaire.
Suivi & Recommandation
Pour être le plus discret possible :
- Scanner les ports
nmap -p- -T4 {ip} -Pn --min-rate 1000
- Analyser les versions et services des ports trouver
nmap -T4 -A -p$(cat open_ports.txt) --min-rate 1000 -Pn {ip}
- Exécuter un script de vulnérabilité avec nmap
nmap -T4 --script=vuln -p$(cat open_ports.txt) {ip} --min-rate 1000
Identifier les Port Réseau & Protocol et utiliser les outils adéquates pour énumérer et exploiter les vulnérabilité.