moyen · Durée estimée : 35 min
Dans ce tutoriel, tu ne scanneras QUE :
127.0.0.1 — ta propre machine (localhost)scanme.nmap.org,
mis à disposition par l'équipe Nmap pour l'apprentissage
scanme.nmap.org est un serveur public
maintenu par les développeurs de Nmap. Ils autorisent
explicitement et gratuitement les scans
d'apprentissage. C'est le seul domaine externe que tu
utiliseras ici.
Comprendre ce qu'est Nmap, comment l'installer dans la console, réaliser tes premiers scans sur des cibles autorisées, et interpréter les résultats.
Nmap (Network Mapper) est l'outil de référence pour cartographier un réseau et identifier les services exposés. C'est un outil de base pour tout administrateur système et tout analyste sécurité.
Dans Alpine (jslinux), Nmap n'est pas installé par défaut.
Installe-le avec apk :
apk add nmap
OK: 12 MiB in 15 packages, c'est bon.
Vérifie la version :
nmap --version
Nmap version 7.9x ( https://nmap.org )
apk add échoue (pas de droits, réseau
coupé), tu peux quand même lire ce tutoriel pour comprendre
les concepts. Tu appliqueras sur une machine Kali réelle
plus tard.
nmap --version doit afficher un numéro de version.
Commence toujours par ta propre machine. C'est légal, gratuit, et instructif.
nmap 127.0.0.1
Sortie typique :
Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Nmap scanne par défaut les 1000 ports les plus courants en TCP.
nmap 127.0.0.1 et note combien de
ports sont ouverts ou fermés.
Les développeurs de Nmap maintiennent un serveur public spécifiquement pour l'apprentissage :
nmap scanme.nmap.org
Sortie typique :
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.15s latency).
Not shown: 993 filtered tcp ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
9929/tcp open nping-echo
31337/tcp open Elite
31337 s'appelle Elite —
clin d'œil à la culture hacker des années 90.
nmap scanme.nmap.org et note les ports
ouverts.
-sS, -sT, -snnmap -sS 127.0.0.1
Envoie un paquet SYN, attend la réponse, et ferme la connexion sans la finaliser. Discret et rapide.
nmap -sT 127.0.0.1
Effectue un vrai handshake TCP complet. Plus visible dans les logs de la cible, mais fonctionne sans privilèges.
nmap -sn 127.0.0.0/30
Ne scanne pas les ports. Sert juste à savoir quels hôtes sont en ligne sur un réseau.
nmap -sn 192.168.1.0/24 → liste toutes les
machines actives sur ton réseau local.
127.0.0.0/30
(4 adresses, dont toi) ou 10.0.2.0/30
(réseau virtuel de la console).
nmap -sn 127.0.0.0/30 et note combien
d'hôtes sont en ligne.
127.0.0.1 up.
-sV
-sV (version detection) interroge
chaque port ouvert pour identifier le service et sa version.
nmap -sV scanme.nmap.org
Sortie :
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1
80/tcp open http Apache httpd 2.4.7
9929/tcp open nping-echo
31337/tcp open Elite
Tu vois maintenant quelle version logicielle tourne. C'est crucial : une version obsolète peut avoir des vulnérabilités connues.
-sV prend plus de temps que nmap
seul (chaque port est interrogé activement). Sois patient.
nmap -sV scanme.nmap.org et note la
version d'OpenSSH et d'Apache.
-O
-O (OS detection) essaie de deviner
le système d'exploitation de la cible.
nmap -O scanme.nmap.org
Sortie :
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.10 - 4.11
-O nécessite les droits root (accès aux
sockets bruts). Dans jslinux, tu es utilisateur normal,
donc ça peut échouer. Pas grave, retiens le principe.
nmap -O scanme.nmap.org. Si erreur
"requires root", c'est normal.
En pratique, on combine souvent plusieurs options :
nmap -sV -O scanme.nmap.org # services + OS
nmap -sV -p 22,80,443 scanme.nmap.org # services sur ports précis
nmap -A scanme.nmap.org # mode agressif (tout)
nmap -v scanme.nmap.org # verbeux
-A active tout :
détection d'OS, de services, de scripts, de traceroute.
C'est puissant mais bruyant et lent.
-pnmap -p 22 127.0.0.1 # un seul port
nmap -p 1-100 127.0.0.1 # une plage
nmap -p 22,80,443 127.0.0.1 # une liste
nmap -p- 127.0.0.1 # tous les 65535 ports (long)
-p- (tous les ports) peut prendre des heures
sur une cible distante. À réserver aux labos.
nmap -sV -p 22,80 scanme.nmap.org
et compare avec le scan complet.
Nmap peut exporter ses résultats dans plusieurs formats :
nmap -oN resultat.txt scanme.nmap.org # format normal
nmap -oX resultat.xml scanme.nmap.org # format XML
nmap -oG resultat.gnmap scanme.nmap.org # format grepable
nmap -oA resultat scanme.nmap.org # tous les formats
-oA resultat crée trois fichiers :
resultat.nmap, resultat.xml,
resultat.gnmap.
-oA est la convention : tu récupères tout
sans te poser de questions. Utile pour archiver une
mission.
nmap -oA scan_local 127.0.0.1 puis
vérifie avec ls que les 3 fichiers existent.
ls scan_local* doit afficher 3 fichiers :
.nmap, .xml, .gnmap.
Nmap classe chaque port dans un état :
993 filtered tcp ports (no-response)
→ 993 ports sur 1000 n'ont pas répondu. Un pare-feu est
probablement en place.
scanme.nmap.org
et compte combien de ports sont open,
closed et filtered.
apk add nmap → installer
nmap --version → vérifier
nmap 127.0.0.1 → scan localhost (1000 ports)
nmap scanme.nmap.org → cible d'apprentissage publique
nmap -sn 10.0.2.0/30 → ping scan (découverte d'hôtes)
nmap -sS 127.0.0.1 → SYN scan (rapide, root)
nmap -sT 127.0.0.1 → TCP connect (sans root)
nmap -sV scanme.nmap.org → détection de services
nmap -O scanme.nmap.org → détection d'OS
nmap -A scanme.nmap.org → mode agressif (tout)
nmap -p 22,80,443 CIBLE → ports précis
nmap -p- CIBLE → tous les 65535 ports
nmap -oA nom CIBLE → sauvegarder 3 formats
open → service actif
closed → machine répond, rien n'écoute
filtered → pare-feu bloque
unfiltered → réponse, état indéterminé
127.0.0.1 et noter les ports ouvertsnmap -sn 127.0.0.0/30scanme.nmap.org avec -sV-oA.nmap avec catscan_local.nmap
contenant la sortie complète du scan.
Une fois ces bases maîtrisées, tu pourras explorer :
nmap --script vuln — détection de
vulnérabilités connues (à utiliser uniquement sur
tes propres systèmes)-sU) — beaucoup plus lents
mais souvent révélateursChacun de ces sujets mériterait son propre tutoriel. On les abordera peut-être plus tard, en fonction de ton parcours.