Retour au cours

cyber / pentest-red-team

Reconnaissance active : scanning réseau avec Nmap

Leçon 31 exercice

Explication

Ce que vous allez apprendre

  • Découvrir les hôtes actifs sur un sous-réseau de lab avant de les scanner individuellement
  • Distinguer un SYN scan (furtif) d'un Connect scan (complet mais visible)
  • Interpréter les quatre états de port retournés par Nmap
  • Utiliser les scripts NSE pour l'énumération et la détection de vulnérabilités connues
  • Exporter des résultats de scan dans un format réutilisable par d'autres outils

Dans quel contexte ?

La reconnaissance passive (leçon précédente) a permis de cartographier des domaines et sous-domaines, mais elle ne dit rien des services réellement actifs sur les serveurs correspondants. Il faut désormais franchir une étape qualitativement différente : envoyer du trafic directement vers ces machines, dans le respect strict du périmètre autorisé par le contrat de mission (leçon 1).

D'abord, il faut savoir quelles machines sont seulement seulement allumées

Avant de scanner les ports d'une machine, encore faut-il savoir qu'elle répond. nmap -sn (scan de découverte, sans scan de port) balaie un sous-réseau entier pour lister uniquement les hôtes actifs — une étape rapide qui évite de perdre du temps à scanner des adresses IP inoccupées.

Une fois les hôtes actifs identifiés, il faut comprendre les résultats retournés par un scan de port

Nmap ne renvoie pas un simple "ouvert/fermé" binaire : quatre états distincts existent, chacun avec une signification précise pour la suite de l'analyse.

ÉtatSignificationImplication
openUn service écoute et répondCible d'énumération prioritaire
closedLe port répond, mais rien n'écoute dessusAucun pare-feu ne bloque, juste rien à cet endroit
filteredAucune réponse reçuePare-feu probable, à sonder différemment
unfilteredAccessible, mais état ouvert/fermé indéterminéNécessite un scan complémentaire

Prérequis

Cette leçon suppose que le périmètre exact autorisé par le contrat de mission est déjà clair (voir la leçon 1) : scanner une IP hors scope, même par erreur de frappe, constitue une infraction, indépendamment de l'intention.

Maintenant, une question technique essentielle : comment scanner sans se faire immédiatement repérer ?

Le SYN scan (-sS) envoie uniquement le premier paquet du handshake TCP sans jamais le compléter — d'où son surnom de "half-open scan". Beaucoup de systèmes de journalisation basiques ne loggent une connexion qu'une fois le handshake terminé, ce qui rend ce scan sensiblement plus discret qu'un Connect scan (-sT), qui complète la connexion TCP entière et laisse une trace bien plus visible dans les journaux applicatifs.

Piège fréquent

Le scan UDP (-sU) est souvent négligé par les débutants car il est nettement plus lent qu'un scan TCP — et c'est précisément pour cette raison qu'il est aussi souvent négligé par les défenseurs eux-mêmes. Des services critiques (DNS, SNMP) tournent en UDP : ignorer ce protocole dans un audit revient à laisser un angle mort volontaire dans le rapport final.

Il reste un dernier outil puissant à maîtriser : les scripts NSE

Le Nmap Scripting Engine étend considérablement les capacités du simple scan de port : --script vuln recherche des vulnérabilités connues, tandis que des scripts ciblés (smb-enum-shares, ssh2-enum-algos) approfondissent l'énumération d'un service précis, une fois qu'il a été identifié comme ouvert.

Bonne pratique

Exporte systématiquement tes résultats avec -oA (qui génère trois formats simultanément : lisible, XML et grep-able). Cette habitude simple permet de réinjecter automatiquement les résultats dans d'autres outils du pipeline, plutôt que de retaper manuellement des adresses IP et ports déjà découverts.

Les ports ouverts maintenant identifiés, la prochaine leçon va plus loin : comprendre en détail ce que chaque service ouvert révèle réellement une fois qu'on l'explore, service par service.

Commandes & code

Reconnaissance active : scanning réseau avec Nmap

À partir d'ici, on envoie du trafic vers la cible : uniquement dans le périmètre autorisé.

bash
# Découverte d'hôtes actifs sur un sous-réseau de lab
nmap -sn 192.168.56.0/24

# Scan de ports TCP classique (top 1000 ports)
nmap -sV -sC 192.168.56.10

# Scan complet des 65535 ports TCP, plus lent mais exhaustif
nmap -p- --min-rate 5000 192.168.56.10
bash
# Techniques de scan selon la furtivité recherchée
nmap -sS 192.168.56.10          # SYN scan ("half-open"), rapide, ne complète pas le handshake TCP
nmap -sT 192.168.56.10          # Connect scan, complet, plus visible dans les logs
nmap -sU --top-ports 20 192.168.56.10   # Scan UDP (lent, souvent négligé par les défenseurs)
nmap -Pn 192.168.56.10          # Ignore le ping (utile si ICMP est filtré)
bash
# Détection d'OS et de versions de services
nmap -O -sV 192.168.56.10

# Scripts NSE (Nmap Scripting Engine) pour l'énumération avancée
nmap --script vuln 192.168.56.10          # scripts orientés détection de vulnérabilités connues
nmap --script "http-*" -p 80,443 192.168.56.10
nmap --script smb-enum-shares,smb-os-discovery -p 445 192.168.56.10
bash
# Exporter les résultats pour les réutiliser dans d'autres outils
nmap -sV -oA scan_resultat 192.168.56.10
# -oA génère .nmap (lisible), .xml (parsable) et .gnmap (grep-able)

# Convertir un scan en rapport HTML lisible
xsltproc scan_resultat.xml -o rapport.html
text
# Table de référence : états de port Nmap
open       : un service écoute et répond
closed     : le port répond mais aucun service n'écoute
filtered   : aucune réponse -> pare-feu probable
unfiltered : accessible mais l'état ouvert/fermé n'a pas pu être déterminé

Résumé

  • Le scan actif est détectable : ne jamais dépasser le périmètre autorisé.
  • SYN scan = rapide et discret ; Connect scan = complet mais très visible dans les logs.
  • Les scripts NSE automatisent l'énumération et la détection de vulnérabilités connues.
  • Toujours exporter les résultats (-oA) pour les réinjecter dans le reste du pipeline.

Exercices pratiques

1 disponible
1

Mission : scanner le sous-réseau de lab NordShield sans dépasser le périmètre

Objectif : Découvrir les hôtes actifs et les ports ouverts du périmètre autorisé, puis choisir la technique de scan adaptée au besoin.

Contexte

Le périmètre signé par NordShield autorise uniquement le sous-réseau de lab 192.168.56.0/24. Toute IP en dehors est explicitement exclue du contrat : tu dois rester rigoureusement dans ce périmètre pendant toute la reconnaissance active.

Résoudre l’exercice →