Scan de ports TCP
| Fiche express | |
|---|---|
| Domaine | Reconnaissance réseau / sondage de ports |
| Outil de référence | nmap |
| Voir aussi | Scan de ports UDP, Ports |
Un scan de ports TCP consiste à sonder à distance l'état des ports d'une cible (ouvert, fermé, filtré), en s'appuyant sur le comportement normalisé de la pile TCP/IP. Plusieurs techniques existent, avec des compromis différents entre fiabilité, discrétion et détectabilité par un pare-feu ou un IDS.
Vanilla connect()
Méthode dite « normale » : l'appel système connect() tente d'ouvrir une vraie connexion TCP complète. Fiable, mais facilement détectable et loguée par tout dispositif de sécurité.
nmap -sT <cible>
Half-open SYN scan
La méthode la plus utilisée : un SYN est envoyé, et si un SYN/ACK revient (port ouvert), un RST est renvoyé immédiatement au lieu de compléter la poignée de main. Très rapide et efficace, mais tout de même détectable par un pare-feu/IDS moderne.
nmap -sS <cible>
Inverse TCP flag (FIN/NULL/Xmas)
S'appuie sur une exigence de la RFC 793 : un port fermé doit répondre RST/ACK à un paquet inattendu, un port ouvert ne répond pas. L'attaquant envoie donc des paquets sans SYN (FIN, URG, PSH...) pour ne pas être logué comme une tentative de connexion classique. Moins fiable qu'un scan SYN et reste détectable par des règles de pare-feu.
nmap -sF <cible> # FIN flag
nmap -sN <cible> # NULL, aucun flag TCP
ACK flag probe
Exploite une faiblesse historique de certaines piles TCP/IP (BSD-like) : l'envoi massif de paquets ACK et l'analyse des champs TTL ou WINDOW des réponses RST permettent de déduire si un port est ouvert. Technique ancienne, corrigée sur les équipements modernes, mais très difficile à détecter par un IDS lorsqu'elle fonctionnait.
nmap -sA <cible> # analyse du TTL
nmap -sW <cible> # analyse du WINDOW
TCP fragmentation
N'est pas une technique de scan en tant que telle, mais une technique de discrétion : fragmenter l'en-tête TCP en petits paquets pour tromper les IDS basés sur des signatures. Inconvénient : le comportement du réassemblage côté cible reste imprévisible (peut provoquer des incidents sur l'hôte distant).
FTP Bounce
Technique historique (obsolète aujourd'hui) exploitant la commande PORT d'un serveur FTP en mode actif pour scanner une cible tierce par rebond — le scan apparaît provenir du serveur FTP de confiance, pas de l'attaquant. Fonctionnait sur des serveurs anciens (FreeBSD < 2.1.x, Red Hat Linux < 4.2...), plus d'actualité de nos jours.
Proxy Bounce
Utilisation d'un proxy ouvert mal sécurisé comme relais de scan : l'adresse IP loguée par la cible est celle du proxy, pas celle de l'attaquant.
Sniffer-based spoofed
Nécessite une présence physique sur le réseau de la cible : la carte réseau est mise en mode promiscuous, les paquets sont émis en usurpant l'identité d'une machine de confiance pour tromper un pare-feu, puis le trafic est capturé et analysé.
IP ID header scanning (scan par machine zombie)
Technique s'appuyant sur une faiblesse de la pile TCP/IP et impliquant trois acteurs : l'attaquant, la cible, et une machine « zombie ». Utilisée pour cartographier des réseaux de confiance qui communiquent entre eux (pare-feux, passerelles VPN) sans que l'attaquant n'émette directement vers la cible.
nmap -P0 -sI <zombie[:port_de_sonde]> <cible>
Analyse des réponses
| Réponse reçue | Interprétation |
|---|---|
| TCP SYN/ACK | Le port est ouvert |
| TCP RST/ACK | Le paquet a été rejeté par la cible, un IDS, ou une règle de pare-feu |
| ICMP type 3 code 13 | Connexion interdite par une ACL de sécurité |
| Aucune réponse | Un dispositif de sécurité a intercepté et supprimé silencieusement le paquet (règle de drop) |
Voir aussi
- Scan de ports UDP — l'équivalent côté UDP
- Ports
- Netstat (Unix) — observer les connexions résultantes localement