Chapitre 3 — Scanning des Réseaux
⏱ ~25 min autonome · ~40 min encadré
Une fois la reconnaissance passive et active épuisées, le scanning marque le passage à une interaction systématique avec la cible : découvrir quelles machines sont vivantes, quels ports sont ouverts, et quels services y répondent.
- Expliquer le fonctionnement du handshake TCP à trois voies et son rôle dans le scanning.
- Distinguer un scan TCP Connect d'un scan SYN et expliquer pourquoi ce dernier est dit « furtif ».
- Décrire les défis propres au scan UDP par rapport au scan TCP.
Le scanning répond à quatre questions simples mais essentielles : quels hôtes sont actifs sur le réseau ? Quels ports y sont ouverts ? Quels services écoutent sur ces ports ? Et quel système d'exploitation fait tourner la machine ? Chaque réponse réduit l'incertitude et oriente les étapes suivantes.
Le handshake TCP à trois voies
TCP établit une connexion fiable via un échange en trois étapes, que tout scan TCP doit comprendre pour interpréter correctement ses résultats :
- SYN — le client envoie un paquet de synchronisation pour initier la connexion.
- SYN-ACK — le serveur répond s'il accepte la connexion (le port est donc ouvert).
- ACK — le client confirme, et la connexion est pleinement établie.
Si le port est fermé, le serveur répond directement par un paquet RST (réinitialisation) au lieu d'un SYN-ACK — c'est cette différence de réponse que les scanners exploitent pour déterminer l'état d'un port sans jamais avoir besoin de compléter une vraie connexion applicative.
Le protocole UDP et ses défis pour le scanning
UDP n'a pas de mécanisme de handshake — il n'y a donc pas de réponse garantie à interpréter. Un port UDP ouvert peut simplement ne rien répondre du tout (le paquet est traité en silence par l'application), rendant le scan UDP intrinsèquement plus lent et moins fiable que son équivalent TCP. En pratique, un port UDP est souvent déclaré « ouvert ou filtré » plutôt que catégoriquement ouvert, faute de confirmation positive.
Scan TCP Connect vs scan SYN (furtif)
| Type | Mécanisme | Détectabilité |
|---|---|---|
| TCP Connect | Complète le handshake à trois voies en entier — une vraie connexion est établie puis fermée | Facilement journalisée : la connexion complète apparaît dans les journaux applicatifs du serveur |
| SYN (furtif) | Envoie un SYN, note la réponse (SYN-ACK ou RST), puis envoie un RST immédiatement au lieu de compléter la connexion | Moins susceptible d'apparaître dans les journaux applicatifs, puisqu'aucune connexion complète n'est jamais établie |
Le terme « furtif » est aujourd'hui un peu trompeur : la plupart des pare-feu et IDS modernes détectent très bien un scan SYN. Le nom vient d'une époque où les journaux applicatifs, mais pas les journaux réseau bas niveau, constituaient la principale source de détection.
Scan de version et détection d'OS (fingerprinting)
Au-delà de savoir qu'un port est ouvert, un scanner peut interroger le service qui y répond pour en déduire la version logicielle exacte (utile pour croiser avec des vulnérabilités connues, voir Chapitre 5). Le fingerprinting d'OS repose sur de subtiles différences dans la façon dont chaque système d'exploitation implémente la pile réseau (valeurs par défaut de certains champs TCP/IP) — chaque OS laisse une signature reconnaissable.
Introduction à Nmap
Nmap reste l'outil de scan le plus universellement reconnu du domaine. Sans dépendre d'un laboratoire pratique, voici la logique de sa syntaxe de base :
| Commande (concept) | Effet |
|---|---|
nmap [cible] | Scan de base des ports les plus courants |
nmap -sS [cible] | Scan SYN (furtif) |
nmap -sU [cible] | Scan UDP |
nmap -sV [cible] | Détection de version de service |
nmap -O [cible] | Détection du système d'exploitation |