Un port ouvert peut révéler un service exposé et une piste à explorer lors d’un pentest. Le scan des ports vous aide à repérer ces points d’entrée pour comprendre ce qui est accessible sur une machine ou un réseau.
Comment fonctionne-t-il et que peut-on réellement déduire des résultats ? Vous découvrirez les bases du scan de ports en pentesting, les principales techniques et le rôle d’outils comme Nmap pour orienter vos tests de sécurité.
La connexion TCP
Avant d’échanger des données, deux machines établissent une connexion TCP . TCP est un protocole, c’est-à-dire un ensemble de règles de communication. Il permet notamment de transmettre les données dans le bon ordre et de gérer les pertes pendant leur transport.
Pour commencer à communiquer, les deux machines passent par une connexion en trois étapes, appelée three-way handshake. On peut comparer cette procédure au début d’un appel téléphonique : les interlocuteurs échangent quelques mots pour établir le contact avant de poursuivre leur conversation.
Pour mieux comprendre le mécanisme, voici les trois étapes complètes :
- SYN : la demande de connexion. La première machine, appelée le client, envoie un message à la seconde, appelée le serveur. Ce message signifie, en simplifiant : « Je souhaite établir une connexion. »
- SYN-ACK : la réponse du serveur. Si le serveur accepte la demande, il répond : « J’ai reçu votre demande et je suis prêt à établir la connexion. »
- ACK : la confirmation du client. Le client confirme qu’il a bien reçu la réponse. La connexion est alors établie et les machines peuvent échanger les données de l’application.
Les termes SYN et ACK désignent des indicateurs présents dans les messages TCP : SYN sert à démarrer et à synchroniser la connexion, tandis qu’ACK confirme la réception d’informations.

La demande vise un numéro de port précis sur le serveur. L’adresse IP permet de joindre la machine, et le port permet de contacter un service particulier sur celle-ci. Par exemple, un serveur web utilise généralement le port 443 pour les connexions HTTPS.
En envoyant des messages et en observant les réponses, un outil peut déterminer si certains ports sont ouverts, fermés ou semblent filtrés. Comprendre une connexion TCP aide donc à comprendre ce que mesure un scan et à interpréter ses résultats.
Pour résumé simplement, une connexion TCP, c’est comme un appel téléphonique entre deux ordinateurs. Avant d’échanger des données, ils se mettent d’accord en s’envoyant un premier signal pour établir la ligne. Pendant toute la discussion, chaque paquet envoyé est confirmé par l’autre pour être sûr qu’il est bien arrivé, et à la fin, ils raccrochent proprement pour fermer la connexion.
Les principaux types de scan de ports
Voici les principaux types de scan de ports avec Nmap. Dans ces exemples, 192.168.56.102 représente l’adresse IP de la cible.
| Type de scan | Commande | Principe et utilité |
|---|---|---|
| TCP SYN | nmap -sS 192.168.56.102 | Envoie un SYN et analyse la réponse sans terminer la connexion TCP. C’est le scan courant pour repérer les ports ouverts. |
| TCP Connect | nmap -sT 192.168.56.102 | Établit une connexion TCP complète lorsqu’un port est ouvert. Fonctionne sans privilèges administrateur. |
| UDP | nmap -sU 192.168.56.102 | Recherche les ports UDP accessibles, utilisés notamment par DNS ou SNMP. Généralement plus lent et parfois moins précis que TCP. |
| TCP ACK | nmap -sA 192.168.56.102 | Aide à étudier le filtrage d’un pare-feu. Ne détermine pas si les ports sont ouverts. |
| TCP FIN | nmap -sF 192.168.56.102 | Envoie un paquet avec l’indicateur FIN et analyse les réponses. Résultats variables selon le système. |
| TCP NULL | nmap -sN 192.168.56.102 | Envoie un paquet sans indicateur TCP. Peut laisser une ambiguïté entre port ouvert et filtré. |
| TCP Xmas | nmap -sX 192.168.56.102 | Active les indicateurs FIN, PSH et URG. Comme FIN et NULL, son interprétation dépend du système ciblé. |
Les scans FIN, NULL et Xmas sont surtout utiles pour approfondir certains comportements réseau. Pour débuter, retenez principalement SYN, TCP Connect et UDP. Attention car aucun de ces scans n’est invisible aux outils de surveillance.
Voici un résumé simple et direct des différents types de scans Nmap :
- TCP SYN (
-sS) : Le plus courant et discret. Il entame la connexion sans la terminer pour repérer rapidement les ports ouverts. - TCP Connect (
-sT) : Établit une connexion TCP complète. Il est utile si l’on ne dispose pas des privilèges administrateur. - UDP (
-sU) : Cible les services fonctionnant en UDP (comme le DNS). Il est généralement plus lent et moins précis que le TCP. - TCP ACK (
-sA) : Ne détecte pas les ports ouverts, mais sert à analyser le comportement et le filtrage d’un pare-feu. - TCP FIN (
-sF) : Envoie un paquet de fin de connexion pour tester les réactions du système cible. - TCP NULL (
-sN) : Envoie un paquet sans aucun indicateur, ce qui peut laisser une ambiguïté sur l’état réel du port. - TCP Xmas (
-sX) : Surnommé « sapin de Noël » car il active plusieurs indicateurs en même temps pour sonder les défenses du réseau.
Voici également les options complémentaires vues dans ce chapitre : elles modifient les cibles ou les ports examinés, sans constituer un nouveau type de scan.
| Objectif | Commande |
|---|---|
| Scanner tous les ports TCP de 1 à 65 535 | nmap -sT -p- 192.168.56.102 |
| Scanner des ports précis | nmap -sT -p 22,80,443 192.168.56.102 |
| Scanner sans découverte préalable de la cible | nmap -sT -Pn 192.168.56.102 |
| Scanner une plage d’adresses | nmap -sT 192.168.56.1-254 |
| Scanner les adresses contenues dans un fichier | nmap -sT -iL cibles.txt |
À savoir :
sudocorrespond ici à une exécution avec les privilèges administrateur sous Linux/macOS. Sans les privilèges nécessaires, Nmap utilise généralement TCP Connect à la place du scan SYN par défaut.
Le scan TCP Connect
Le scan TCP Connect avec Nmap est un principe simple : Nmap essaie de se connecter aux ports d’une machine pour repérer ceux qui acceptent une connexion.
Le lien avec SYN et ACK
Pour établir une connexion TCP, le client envoie un message SYN. Si un service écoute sur le port visé et accepte la connexion, le serveur répond SYN-ACK. Le client confirme ensuite avec ACK : la connexion est établie.
Le scan TCP Connect utilise ce mécanisme jusqu’au bout. Lorsqu’un port accepte la connexion, Nmap termine les trois étapes, puis ferme la connexion. C’est ainsi qu’il peut reconnaître un port ouvert. Cela indique qu’un service est accessible, mais ne signifie pas automatiquement qu’il présente une faille de sécurité.
Quels ports Nmap examine-t-il ?
Nmap examine les 1 000 ports les plus courants. Attention : ce ne sont pas forcément les ports numérotés de 1 à 1 000, mais une sélection fondée sur leur fréquence d’utilisation.
Cela suffit pour une première exploration, mais certains services peuvent fonctionner sur des ports moins habituels. Par exemple, un serveur web peut utiliser le port 8080 au lieu du port 80. Examiner tous les ports permet donc d’élargir la recherche, au prix d’un scan généralement plus long.
Prenons comme exemple la commande suivante :
nmap -sT -p- -Pn 192.168.56.102
| Élément | Explication simple |
|---|---|
nmap | Lance l’outil de scan. |
-sT | Choisit un scan TCP Connect, qui tente d’établir une connexion TCP complète. |
-p- | Demande de tester tous les ports TCP de 1 à 65 535. |
-Pn | Ignore la vérification préalable destinée à déterminer si la machine est active et passe au scan demandé. |
192.168.56.102 | Désigne l’adresse IP de la machine à examiner dans cet exemple. |
L’option -Pn est utile lorsqu’une machine ne répond pas aux tests de découverte utilisés par Nmap, alors que certains de ses services restent accessibles. Elle ne contourne toutefois pas un pare-feu : si celui-ci bloque les connexions, les ports peuvent rester inaccessibles. Elle peut aussi allonger le scan, puisque Nmap tente d’examiner la cible même si elle est éteinte.
Ce scan est simple et stable. Il faut comprendre que son fonctionnement repose sur une connexion TCP classique, pas qu’il serait sans effet sur la cible. Il génère du trafic et peut laisser des traces dans les journaux des services. Vous pouvez utiliser Metasploitable, une machine volontairement vulnérable conçue pour les exercices de sécurité.
L’idée principale est donc de tester quels ports acceptent une connexion TCP, puis d’élargir la recherche avec -p- et, si nécessaire, de passer outre la découverte préalable avec -Pn.
Scanner plusieurs machines avec Nmap
Voici comment scanner plusieurs machines avec Nmap en une seule commande, au lieu de lancer un scan pour chaque adresse IP. Il existe deux possibilités : indiquer une plage d’adresses ou utiliser un fichier contenant une liste de cibles.
Comprendre les résultats du scan

| Colonne | Signification |
|---|---|
PORT | Le numéro du port testé et le protocole utilisé, par exemple 22/tcp. |
STATE | L’état du port. open signifie qu’un service accepte les connexions sur ce port. |
SERVICE | Le nom du service généralement associé à ce numéro de port, comme ssh ou http. |
Précision utile : le nom affiché dans SERVICE ne confirme pas forcément quel logiciel fonctionne réellement derrière le port. Sans détection supplémentaire, il peut simplement correspondre au service habituellement associé à ce numéro. De même, unknown signifie que Nmap ne lui associe pas de nom connu, pas que le port est fermé.
Scanner une plage d’adresses IP
Lorsque les adresses des machines se suivent, vous pouvez indiquer directement un intervalle :
nmap -sT -p- -Pn 192.168.56.1-254
La partie 192.168.56.1-254 désigne toutes les adresses allant de 192.168.56.1 à 192.168.56.254, soit 254 adresses.
Les options conservent le sens expliqué sur la page précédente :
-sTeffectue un scan TCP Connect.-p-teste les ports TCP de 1 à 65 535 sur chaque cible.-Pnpasse outre la découverte préalable des machines actives et tente le scan sur chaque adresse indiquée.
Cette méthode évite de saisir chaque adresse séparément. En revanche, scanner tous les ports de 254 adresses représente beaucoup plus de travail que scanner une seule machine. Avec -Pn, Nmap essaie également les adresses qui ne correspondent à aucune machine active, ce qui peut allonger l’opération.
Utiliser un fichier pour des cibles dispersées
Si les adresses ne se suivent pas, vous pouvez les regrouper dans un fichier texte, avec une adresse IP par ligne. Par exemple, un fichier nommé cibles.txt pourrait contenir :
192.168.56.10
192.168.56.42
192.168.56.102
Vous pouvez ensuite transmettre cette liste à Nmap avec l’option -iL, suivie du nom ou du chemin du fichier. En reprenant les options de ce chapitre, cela donne :
nmap -sT -p- -Pn -iL cibles.txt
Nmap lit alors le fichier et examine chacune des trois adresses. Le L de -iL est une lettre majuscule.
L’intérêt principal est de conserver une liste claire et réutilisable des machines à examiner. Vous limitez ainsi les saisies répétées et les erreurs d’adresse. Une liste vérifiée aide aussi à respecter le périmètre du pentest : les machines que vous êtes autorisé à tester.
Le scan SYN
Le scan SYN avec Nmap est une méthode qui repère les ports TCP ouverts sans établir complètement la connexion. Découvrons son fonctionnement, sa rapidité et les limites de sa discrétion.
Comment fonctionne le scan SYN ?
Lors d’un scan TCP Connect, Nmap réalise les trois étapes de la connexion : SYN → SYN-ACK → ACK. Le scan SYN s’arrête avant la dernière confirmation.
Lorsqu’un port est ouvert, les échanges se déroulent ainsi :
- Nmap envoie un paquet SYN à la cible pour demander une connexion.
- La cible répond SYN-ACK, ce qui indique qu’un service accepte les connexions sur ce port.
- La machine qui effectue le scan envoie un paquet RST, au lieu de confirmer avec ACK. Ce message interrompt la tentative : la connexion n’est donc pas complètement établie.
RST, pour Reset, signifie ici que l’on abandonne la connexion en cours de préparation. C’est pour cette raison que le scan SYN est souvent appelé scan semi-ouvert.
L’analogie est simple : vous téléphonez à quelqu’un, cette personne décroche et dit « Allô ? », puis vous raccrochez immédiatement. Vous savez qu’elle répond, sans poursuivre la conversation.
Pourquoi est-il généralement plus rapide ?
Outre le fait qu’il s’agit du choix par défaut, sa popularité vient également de sa rapidité supérieure au scan TCP Connect, tout en restant relativement sûr, avec peu de risques de submerger ou de planter le système cible. Il est plus rapide car, à la place d’une connexion intégrale en trois étapes, il réalise uniquement les deux premières.
Le scan SYN évite d’établir puis de fermer une connexion TCP complète sur chaque port ouvert. Il demande donc généralement moins d’échanges et de traitement qu’un scan TCP Connect.
Sur une seule machine, le gain peut sembler limité. Mais lorsqu’on examine beaucoup de ports ou plusieurs machines, ces économies de temps s’accumulent.
Est-il vraiment discret ?
Le scan SYN est parfois appelé Stealth Scan, ou « scan furtif ». Comme la connexion n’est jamais terminée, certaines applications peuvent ne pas enregistrer la tentative dans leurs journaux habituels.
Cela ne le rend pas invisible. Les équipements de sécurité qui surveillent les échanges réseau peuvent repérer les tentatives SYN répétées. La détection et le déclenchement d’une alerte dépendent toutefois des outils utilisés et de leur configuration.
Il faut donc distinguer deux choses : une tentative peut ne pas apparaître dans le journal d’une application, tout en restant visible pour un pare-feu ou un système de détection d’intrusion.
Puisqu’il s’agit du type de scan par défaut de Nmap, il est inutile de préciser son type avec l’option -s. Cependant, puisque nous voulons établir des bases solides, il est préférable de prendre l’habitude de préciser le type du scan :
nmap -sS -p- -Pn 192.168.56.102
| Élément | Signification |
|---|---|
nmap | Lance l’outil. |
-sS | Choisit explicitement un scan SYN. |
-p- | Teste tous les ports TCP de 1 à 65 535. |
-Pn | Ignore la découverte préalable de la machine et tente directement le scan. |
192.168.56.102 | Indique l’adresse IP de la cible. |
La différence avec la commande précédente est donc -sS à la place de -sT : le S correspond au scan SYN, tandis que le T désigne TCP Connect.
SYN est le scan par défaut de Nmap. Il faut ajouter une condition importante : Nmap doit disposer des privilèges nécessaires pour envoyer les paquets directement. Sous Linux ou macOS, on utilise généralement :
sudo nmap -sS -p- -Pn 192.168.56.102
Sans ces privilèges, une exécution sans type de scan explicite utilise généralement TCP Connect. Préciser -sS ou -sT permet donc de rendre votre intention claire et de mieux comprendre le scan réalisé.

Interprétation du scan ci-dessus : Le serveur est bien allumé, mais tous les ports sont protégés par un pare-feu (firewall).
Voici ce que signifient les résultats :
Host is up: L’adresse IP cible est active et présente sur le réseau.1000 filtered tcp ports: Les 1000 ports les plus courants n’ont renvoyé aucune réponse. Un pare-feu bloque ou ignore les requêtes de Nmap, ce qui empêche de savoir s’ils sont ouverts ou fermés.
Le scan de ports UDP
Beaucoup de débutants en sécurité informatique font l’erreur de scanner uniquement les ports TCP (comme les scans SYN classique).
- TCP est un protocole orienté connexion. Il fonctionne comme un appel téléphonique : avant d’échanger des données, l’émetteur et le destinataire établissent un contact direct pour vérifier qu’ils s’entendent bien.
- UDP (User Datagram Protocol) est un protocole sans connexion. Il fonctionne comme une lettre postée : vous envoyez le message sans garantie qu’il arrive et sans attendre de confirmation de réception de la part du destinataire.
Des services réseau très importants fonctionnent uniquement sur UDP (comme DNS, DHCP, SNMP ou TFTP). Si vous oubliez de scanner en UDP, vous risquez de passer à côté de portes d’entrée critiques.
La difficulté du scan UDP : l’état open|filtered
Scanner en UDP est plus complexe qu’en TCP pour deux raisons principales :
- La lenteur : Les scans UDP prennent beaucoup plus de temps (parfois plusieurs dizaines de minutes pour 1 000 ports).
- L’absence de réponse : Comme UDP n’impose pas de répondre, si un port est ouvert, le service qui écoute peut recevoir le message et ne rien renvoyer. De la même façon, si un pare-feu bloque le message, il ne renvoie rien non plus.
Par conséquent, lorsque Nmap ne reçoit aucune réponse à une requête UDP, il ne peut pas savoir si le port est ouvert ou bloqué. Il affiche alors l’état ambigu : open|filtered (ouvert ou filtré).
La solution : Le scan de version (-sUV)
Pour sortir de cette ambiguïté et obtenir des résultats exploitables, il existe une méthode efficace, lancer un scan UDP standard avec la commande :
nmap -sU 192.168.56.102
Ajouter l’option de détection de version (-sV ou -sUV) avec la commande :
nmap -sUV 192.168.56.102
Pourquoi cela fonctionne-t-il ?
Lorsque l’option de version (V) est activée, Nmap ne se contente pas d’envoyer un paquet vide. Il envoie des requêtes spécifiques et « intelligentes » adaptées aux applications courantes (DNS, SNMP, etc.). Ces requêtes forcent le service distant à réagir et à répondre, ce qui permet à Nmap de transformer un port affiché open|filtered en port clairement open tout en identifiant le logiciel qui tourne derrière.
Les scans Xmas
Une RFC (Request for Comments) est le document officiel qui définit la règle du jeu ou le standard technique d’une technologie réseau.
Pourquoi les hackers s’y intéressent : En lisant attentivement ces règles officielles, les attaquants cherchent des comportements logiques spécifiques pour deviner l’état d’un système sans se faire repérer.
Le concept du scan Xmas Tree (Arbre de Noël)
Le nom Xmas vient du fait que le paquet réseau envoyé contient plusieurs drapeaux (flags) TCP activés simultanément : FIN, PSH et URG. La combinaison de ces voyants allumés fait penser à un sapin de Noël éclairé.
Un paquet TCP possède des cases à cocher appelées « drapeaux » :
- SYN : Sert à initier une connexion (« Bonjour, je veux parler »).
- ACK : Confirme la réception (« Bien reçu »).
- FIN : Signale la fin de la communication (« J’ai terminé »).
- PSH (Push) : Demande de traiter immédiatement les données transmises.
- URG (Urgent) : Indique que les données sont prioritaires.
Un paquet Xmas est anormal et contradictoire : il active FIN, PSH et URG tout en omettant complètement SYN et ACK. C’est une situation qui ne se produit jamais lors d’une communication légitime.
La logique de détection basée sur la RFC
La RFC du protocole TCP impose aux systèmes la règle suivante face à ces paquets « bizarres » :
- Si le port est FERMÉ : Le système cible doit obligatoirement répondre par un paquet
RST(Reset / Réinitialisation). - Si le port est OUVERT : Le système doit simplement ignorer le paquet et ne rien renvoyer.
Donc :
- Réponse
RSTreçue Le port est FERMÉ. - Aucune réponse reçue Le port est OUVERT (ou bloqué par un pare-feu).
Les limites du scan Xmas (Linux vs Windows)
Ce type de scan repose sur le fait que le système d’exploitation respecte strictement la norme RFC.
Sur Linux / Unix : La norme est correctement implémentée. Le scan Xmas fonctionne très bien. Par contre, Microsoft Windows ne respecte pas cette RFC de la même manière et renvoie un paquet RST dans tous les cas (que le port soit ouvert ou fermé).
- Le scan Xmas y est donc totalement inefficace.
Pour exécuter ce scan, l’option à utiliser dans Nmap est -sX :
nmap -sX -p- -Pn 192.168.56.102
-sX: Active le scan Xmas Tree.-p-: Scanne l’intégralité des 65 535 ports (au lieu des 1 000 par défaut).-Pn: Désactive le ping préalable pour scanner même si l’hôte ne répond pas aux requêtes ICMP.
Les scans Null
Le scan Null est l’exact opposé du scan Xmas Tree que vous avez vu précédemment :
- Scan Xmas : Tous les drapeaux (flags) TCP majeurs sont activés (le paquet est « surchargé »)
- Scan Null : Le paquet TCP envoyé est totalement vide de drapeaux (aucun signal n’est activé, d’où le nom « Null »)
Comment la cible réagit-elle ?
La logique reste la même que pour le scan Xmas, car elle repose sur la norme officielle (la RFC du protocole TCP), donc uniquement sur les environnements Linux / Unix / macOS :
- Si le port est fermé : La cible doit répondre par un paquet
RST - Si le port est ouvert : La cible ignore le paquet et ne renvoie rien
L’intérêt majeur des scans Null et Xmas est leur capacité à passer à travers certains filtres réseau basiques ou listes de contrôle d’accès (ACL – Access Control List) :
Le fonctionnement d’un filtre basique : De nombreux administrateurs configurent un pare-feu pour bloquer uniquement les paquets comportant le drapeau SYN. En bloquant les paquets SYN entrants, le pare-feu empêche l’établissement de la fameuse connexion en trois étapes (la poignée de main TCP), censée initier toute communication normale.
La faille exploitée : Comme les paquets Null et Xmas n’utilisent pas le drapeau SYN, ils ne déclenchent pas l’alerte du pare-feu basique. Le filtre les laisse donc passer jusqu’au système cible, permettant au testeur d’intrusion de découvrir des ports ouverts là où un scan classique (comme SYN) aurait échoué.
Pour effectuer un scan Null avec Nmap, on utilise l’option -sN :
nmap -sN -p- -Pn 192.168.56.102
-sN: Active spécifiquement le scan Null (paquets sans aucun drapeau)-p-: Scanne la totalité des 65 535 ports-Pn: Ignore le test de ping préalable
Un port ouvert est le début d’une enquête : quel service se cache derrière, pourquoi est-il accessible et son exposition est-elle justifiée ? C’est en posant ces questions que vous passez du simple scan à une véritable analyse de sécurité.
Pour poursuivre votre apprentissage, essayez de comparer les résultats sur une machine de laboratoire avant et après l’activation d’un service ou d’une règle de pare-feu. Vous comprendrez ainsi ce que Nmap vous montre… et ce qu’il vous reste à vérifier.

Fondateur de l’agence Créa-troyes.
Affilié France Num
Intervenant en Freelance.
Contactez-moi
