{"id":13378,"date":"2025-05-23T10:21:18","date_gmt":"2025-05-23T08:21:18","guid":{"rendered":"https:\/\/www.vaadata.com\/blog\/?p=13378"},"modified":"2025-05-23T10:21:21","modified_gmt":"2025-05-23T08:21:21","slug":"nmap-loutil-pour-cartographier-et-evaluer-la-securite-dun-reseau","status":"publish","type":"post","link":"https:\/\/www.vaadata.com\/blog\/fr\/nmap-loutil-pour-cartographier-et-evaluer-la-securite-dun-reseau\/","title":{"rendered":"Nmap, l\u2019outil pour cartographier et \u00e9valuer la s\u00e9curit\u00e9 d\u2019un r\u00e9seau"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/Nmap-1024x535.png\" alt=\"Nmap, l\u2019outil pour cartographier et \u00e9valuer la s\u00e9curit\u00e9 d\u2019un r\u00e9seau\" class=\"wp-image-13379\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/Nmap-1024x535.png 1024w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/Nmap-300x157.png 300w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/Nmap-1536x803.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Quand il s\u2019agit de cartographier un r\u00e9seau, un nom revient syst\u00e9matiquement : Nmap. Incontournable dans le monde de la cybers\u00e9curit\u00e9, ce v\u00e9ritable couteau suisse de la reconnaissance r\u00e9seau s\u2019impose comme l\u2019outil de pr\u00e9dilection pour identifier les services expos\u00e9s, d\u00e9tecter les ports ouverts, et poser les bases d\u2019un <a href=\"https:\/\/www.vaadata.com\/blog\/fr\/test-dintrusion-interne-objectifs-methodologie-tests-en-boite-noire-et-grise\/\" target=\"_blank\" rel=\"noopener\" title=\"\">test d\u2019intrusion de r\u00e9seau interne<\/a> efficace.<\/p>\n\n\n\n<p>Dans un contexte o\u00f9 les infrastructures deviennent toujours plus hybrides et complexes, la capacit\u00e9 \u00e0 visualiser avec pr\u00e9cision les syst\u00e8mes accessibles est plus cruciale que jamais. \u00c0 ce titre, Nmap reste la r\u00e9f\u00e9rence.<\/p>\n\n\n\n<p>Gr\u00e2ce \u00e0 ses multiples fonctionnalit\u00e9s, il permet non seulement de scanner des h\u00f4tes, mais aussi de d\u00e9tecter les versions logicielles, d\u2019identifier les syst\u00e8mes d\u2019exploitation, ou encore d\u2019observer les r\u00e9actions des pare-feu ou IDS en place.<\/p>\n\n\n\n<p>Dans cet article, nous illustrerons le principe de la reconnaissance r\u00e9seau (cartographie et d\u00e9couverte) \u00e0 travers la pr\u00e9sentation d\u00e9taill\u00e9e, cas concrets \u00e0 l\u2019appui, du fonctionnement et des fonctionnalit\u00e9s de Nmap.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Guide complet sur Nmap<\/h2>\n\n\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#nmap-principes-et-fonctionnement\">Nmap\u00a0: principes et fonctionnement<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#cest-quoi-nmap\">C\u2019est quoi Nmap\u00a0?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#exemple-dutilisation-de-nmap\">Exemple d\u2019utilisation de Nmap<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#comment-fonctionne-nmap\">Comment fonctionne Nmap\u00a0?<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#scan-de-ports-et-techniques-de-scan\">Scan de ports et techniques de scan<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-syn-ss\">Scan TCP SYN (-sS)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-connect-st\">Scan TCP connect (-sT)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-ack-sa\">Scan TCP ACK (-sA)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-udp-su\">Scan UDP (-sU)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-null-sn\">Scan TCP NULL (-sN)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-fin-sf\">Scan TCP FIN (-sF)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-xmas-sx\">Scan TCP Xmas (-sX)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-tcp-window-sw\">Scan TCP Window (-sW)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-sctp-init-sy\">Scan SCTP INIT (-sY)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scans-personnalises-avec-scanflags\">Scans personnalis\u00e9s avec &#8211;scanflags<\/a><ul><\/ul><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#detection-des-services-et-versions\">D\u00e9tection des services et versions<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#comment-fonctionne-la-detection-de-services-avec-nmap\">Comment fonctionne la d\u00e9tection de services avec Nmap ?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#etapes-du-processus-de-detection\">\u00c9tapes du processus de d\u00e9tection<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#cas-des-services-udp\">Cas des services UDP<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#comment-detecter-le-systeme-dexploitation-dans-cette-phase\">Comment d\u00e9tecter le syst\u00e8me d&#039;exploitation dans cette phase ?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#focus-sur-les-ports-exclus-par-defaut-dans-la-phase-de-detection-des-services\">Focus sur les ports exclus par d\u00e9faut dans la phase de d\u00e9tection des services<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#effectuer-une-decouverte-dhotes-avec-nmap\">Effectuer une d\u00e9couverte d&#039;h\u00f4tes avec Nmap<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#utilisation-du-protocole-icmp\">Utilisation du protocole ICMP<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#utilisation-du-protocole-arp-pr\">Utilisation du protocole ARP (-PR)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#utilisation-des-protocoles-tcp-udp\">Utilisation des protocoles TCP\/UDP<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#utilisation-dautres-protocoles-ip-po\">Utilisation d&#039;autres protocoles IP (-PO)<\/a><\/li><\/ul><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#utilisation-avancee-de-nmap\">Utilisation avanc\u00e9e de Nmap<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#detection-du-systeme-dexploitation\">D\u00e9tection du syst\u00e8me d\u2019exploitation<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#principe-de-fonctionnement\">Principe de fonctionnement<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#empreinte-de-la-cible-subject-fingerprint\">Empreinte de la cible (Subject Fingerprint)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#empreinte-de-reference-reference-fingerprint\">Empreinte de r\u00e9f\u00e9rence (Reference Fingerprint)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#match-fingerprint\">Match Fingerprint<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#scripts-nmap\">Scripts Nmap<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#techniques-de-contournement-des-pare-feux-et-systemes-de-detection-dintrusion-ids-avec-nmap\">Techniques de contournement des pare-feux et syst\u00e8mes de d\u00e9tection d&#039;intrusion (IDS) avec Nmap<\/a><ul><li><a class=\"aioseo-toc-item\" href=\"#scan-ip-idle-si\">Scan IP Idle (-sI)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-ack-sa\">Scan ACK (-sA)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#fragmentation\">Fragmentation<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#ipv6\">IPv6<\/a><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#scan-des-protocole-ip\">Scan des protocole IP<\/a><\/li><\/ul><\/li><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#conclusion\">Conclusion<\/a><\/li><\/ul><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"nmap-principes-et-fonctionnement\">Nmap&nbsp;: principes et fonctionnement<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-89c40a1052ceeca069e43a6c9c96451e\" id=\"cest-quoi-nmap\" style=\"color:#c0b800\">C\u2019est quoi Nmap&nbsp;?<\/h3>\n\n\n\n<p><a href=\"https:\/\/nmap.org\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Nmap<\/a>, abr\u00e9viation de Network Mapper, est un outil open source incontournable dans le monde de la cybers\u00e9curit\u00e9. Disponible en ligne de commande et via une interface graphique (Zenmap), il fonctionne sur la plupart des syst\u00e8mes d\u2019exploitation.<\/p>\n\n\n\n<p><strong>Nmap est g\u00e9n\u00e9ralement utilis\u00e9 pour collecter des informations r\u00e9seau sur tout type de p\u00e9riph\u00e9rique disposant d&rsquo;une adresse IP, qu\u2019il s\u2019agisse d\u2019une machine isol\u00e9e ou d\u2019un ensemble d\u2019h\u00f4tes sur un r\u00e9seau entier<\/strong>.<strong> <\/strong>\u00c0 l\u2019origine, Nmap a \u00e9t\u00e9 con\u00e7u pour deux usages fondamentaux :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scanner un h\u00f4te sp\u00e9cifique <\/strong>afin d\u2019identifier les services actifs et les ports ouverts ;<\/li>\n\n\n\n<li><strong>Scanner un r\u00e9seau<\/strong> pour d\u00e9tecter les h\u00f4tes connect\u00e9s.<\/li>\n<\/ul>\n\n\n\n<p>Au fil des ann\u00e9es, ses fonctionnalit\u00e9s se sont consid\u00e9rablement \u00e9toff\u00e9es. Gr\u00e2ce \u00e0 ses nombreux modules, Nmap est d\u00e9sormais un v\u00e9ritable couteau suisse de la reconnaissance r\u00e9seau.<\/p>\n\n\n\n<p>Par ailleurs, Nmap est un outil polyvalent, aussi bien adapt\u00e9 \u00e0 un usage personnel que professionnel. Gratuit et accessible, il permet \u00e0 quiconque de d\u00e9couvrir les services actifs sur un syst\u00e8me. Mais c\u2019est surtout dans un cadre professionnel qu\u2019il prend toute sa dimension : que ce soit pour inventorier les h\u00f4tes et services d\u2019un r\u00e9seau ou pour d\u00e9tecter des configurations \u00e0 risque.<\/p>\n\n\n\n<p>En mati\u00e8re de cybers\u00e9curit\u00e9, identifier les services expos\u00e9s, parfois vuln\u00e9rables ou mal configur\u00e9s, est une \u00e9tape cl\u00e9 dans l\u2019\u00e9valuation du niveau de s\u00e9curit\u00e9 d\u2019un r\u00e9seau. Et c\u2019est pr\u00e9cis\u00e9ment ce que permet Nmap.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-27e35002dcf3f3c5f1c0ee8eadd2d6a0\" id=\"exemple-dutilisation-de-nmap\" style=\"color:#c0b800\">Exemple d\u2019utilisation de Nmap<\/h3>\n\n\n\n<p>Avant de rentrer dans les d\u00e9tails, illustrons le fonctionnement de Nmap avec un exemple concret : le scan d\u2019un h\u00f4te ayant pour adresse IP 172.20.0.2.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"766\" height=\"247\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-use-case.png\" alt=\"Exemple d\u2019utilisation de Nmap\" class=\"wp-image-13442\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-use-case.png 766w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-use-case-300x97.png 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure>\n\n\n\n<p>Nmap nous indique que le port 80 est ouvert et qu\u2019un service HTTP y est probablement actif. Il pr\u00e9cise \u00e9galement que 999 autres ports sont ferm\u00e9s. <\/p>\n\n\n\n<p>\u00c0 noter que, par d\u00e9faut, Nmap analyse uniquement les 1 000 ports les plus couramment utilis\u00e9s ; un comportement que l\u2019on peut modifier \u00e0 l\u2019aide de l\u2019option <code>-p<\/code>. <\/p>\n\n\n\n<p>Dans les sections suivantes, nous allons approfondir le fonctionnement de Nmap et comprendre comment il parvient \u00e0 ces r\u00e9sultats. Nous d\u00e9taillerons les diff\u00e9rentes \u00e9tapes d\u2019une ex\u00e9cution typique, les techniques de scan disponibles, ainsi que des fonctionnalit\u00e9s cl\u00e9s telles que la d\u00e9tection de version et l\u2019identification du syst\u00e8me d\u2019exploitation. <\/p>\n\n\n\n<p>Enfin, nous aborderons les usages plus avanc\u00e9s de Nmap, adapt\u00e9s \u00e0 des contextes sp\u00e9cifiques comme le contournement de pare-feu ou l\u2019automatisation via scripts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-4334aaf35a8855fce2b960ae787946d2\" id=\"comment-fonctionne-nmap\" style=\"color:#c0b800\">Comment fonctionne Nmap&nbsp;?<\/h3>\n\n\n\n<p>Chaque ex\u00e9cution de Nmap suit une s\u00e9quence structur\u00e9e d\u2019\u00e9tapes. Selon les options sp\u00e9cifi\u00e9es, certaines peuvent \u00eatre ignor\u00e9es, tandis que d\u2019autres ne s\u2019ex\u00e9cutent que sur demande explicite.<\/p>\n\n\n\n<p>Le tableau ci-dessous r\u00e9sume ces diff\u00e9rentes phases, dans l\u2019ordre o\u00f9 elles sont g\u00e9n\u00e9ralement ex\u00e9cut\u00e9es :<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>N\u00b0<\/th><th>Phase<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><strong>Scripts Pr\u00e9-scan<\/strong><\/td><td>Ex\u00e9cution des scripts de la cat\u00e9gorie <code>prerule<\/code>, avant tout scan. Ils peuvent, par exemple, envoyer des requ\u00eates broadcast ou DNS.<br><em>D\u00e9faut : non<\/em> <br><em>Option : <code>--script<\/code> ou <code>-sC<\/code><\/em><\/td><\/tr><tr><td>2<\/td><td><strong>\u00c9num\u00e9ration des cibles<\/strong><\/td><td>G\u00e9n\u00e9ration de la liste des IP \u00e0 analyser. Les noms de domaine sont r\u00e9solus \u00e0 cette \u00e9tape.<br><em>D\u00e9faut : oui<\/em><br><em>Option : non d\u00e9sactivable<\/em><\/td><\/tr><tr><td>3<\/td><td><strong>D\u00e9couverte d\u2019h\u00f4tes (Host Discovery)<\/strong><\/td><td>D\u00e9tecte si chaque h\u00f4te est actif ou non.<br><em>D\u00e9faut : oui<\/em> <br><em>Option : d\u00e9sactivable avec <code>-Pn<\/code><\/em><\/td><\/tr><tr><td>4<\/td><td><strong>R\u00e9solution DNS inverse<\/strong><\/td><td>Tente de r\u00e9cup\u00e9rer les noms de domaine associ\u00e9s aux adresses IP.<br><em>D\u00e9faut : oui<\/em>  <br><em>Option : d\u00e9sactivable avec <code>-n<\/code><\/em><\/td><\/tr><tr><td>5<\/td><td><strong>Scan de ports<\/strong><\/td><td>Fonction principale de Nmap : identification des \u00e9tats des ports via diff\u00e9rentes techniques.<br><em>D\u00e9faut : oui<\/em>  <br><em>Option : d\u00e9sactivable avec <code>-sn<\/code><\/em><\/td><\/tr><tr><td>6<\/td><td><strong>D\u00e9tection de version<\/strong><\/td><td>Identification des services et versions actifs sur les ports d\u00e9tect\u00e9s.<br><em>D\u00e9faut : non<\/em> <br><em>Option : <code>-sV<\/code><\/em><\/td><\/tr><tr><td>7<\/td><td><strong>D\u00e9tection du syst\u00e8me d\u2019exploitation<\/strong><\/td><td>Tente de d\u00e9tecter le syst\u00e8me d&rsquo;exploitation en cours d&rsquo;ex\u00e9cution sur l&rsquo;h\u00f4te.<br><em>D\u00e9faut : non<\/em><br><em>Option : <code>-O<\/code><\/em><\/td><\/tr><tr><td>8<\/td><td><strong>Traceroute<\/strong><\/td><td>Ex\u00e9cute un traceroute vers la cible.<br><em>D\u00e9faut : non<\/em> <br><em>Option : <code>--traceroute<\/code><\/em><\/td><\/tr><tr><td>9<\/td><td><strong>R\u00e9sultats<\/strong> <strong>en sortie<\/strong><\/td><td>Formatage et affichage des r\u00e9sultats (stdout, XML, JSON, fichiers, etc.).<br><em>D\u00e9faut : oui<\/em> <br><em>Option : non d\u00e9sactivable<\/em><\/td><\/tr><tr><td>10<\/td><td><strong>Scripts<\/strong> <strong>Post-scan<\/strong><\/td><td>Ex\u00e9cution des scripts <code>postrule<\/code>, ainsi que ceux explicitement demand\u00e9s par l\u2019utilisateur.<br><em>D\u00e9faut : non<\/em> <br><em>Option : <code>--script<\/code> ou <code>-sC<\/code><\/em><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Phases d\u2019une ex\u00e9cution Nmap<\/figcaption><\/figure>\n\n\n\n<p>Dans les sections suivantes, nous nous concentrerons sur les phases 3 (d\u00e9couverte d\u2019h\u00f4tes), 5 (scan de ports), 6 (d\u00e9tection de version) et 7 (d\u00e9tection de l&rsquo;OS), particuli\u00e8rement int\u00e9ressantes pour comprendre la puissance de Nmap.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"scan-de-ports-et-techniques-de-scan\">Scan de ports et techniques de scan<\/h4>\n\n\n\n<p>Cette phase correspond \u00e0 la cinqui\u00e8me \u00e9tape pr\u00e9sent\u00e9e dans le Tableau ci-dessus. L\u2019objectif ici est d\u2019identifier les ports ouverts sur un h\u00f4te. <\/p>\n\n\n\n<p>Cependant, avec la g\u00e9n\u00e9ralisation des solutions de s\u00e9curit\u00e9 \u00e0 diff\u00e9rents niveaux \u2014 comme les pare-feu qui bloquent certaines connexions selon des r\u00e8gles pr\u00e9d\u00e9finies \u2014 il devient difficile de savoir si un port est effectivement \u00e0 l\u2019\u00e9coute ou non.<\/p>\n\n\n\n<p>C\u2019est pourquoi Nmap classe l\u2019\u00e9tat d\u2019un port selon plusieurs cat\u00e9gories :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open (ouvert)<\/strong><\/li>\n\n\n\n<li><strong>Closed (ferm\u00e9)<\/strong><\/li>\n\n\n\n<li><strong>Filtered (filtr\u00e9)<\/strong><\/li>\n\n\n\n<li><strong>Unfiltered (non filtr\u00e9)<\/strong> : dans certains cas, Nmap ne peut pas d\u00e9terminer si le port est ouvert ou ferm\u00e9, mais peut savoir s\u2019il est filtr\u00e9 ou non en fonction des r\u00e9ponses re\u00e7ues.<\/li>\n<\/ul>\n\n\n\n<p>Nmap propose plusieurs techniques de scan permettant de d\u00e9duire l\u2019\u00e9tat d\u2019un port en exploitant des diff\u00e9rences subtiles dans les impl\u00e9mentations des protocoles selon les \u00e9quipements et syst\u00e8mes d\u2019exploitation. <\/p>\n\n\n\n<p>Ces m\u00e9thodes ne sont pas toujours fiables puisqu\u2019elles d\u00e9pendent du comportement sp\u00e9cifique des cibles, mais elles restent utiles \u00e0 conna\u00eetre, en particulier lorsqu\u2019on interagit avec des syst\u00e8mes ou appareils atypiques. Certaines d\u2019entre elles ont aussi \u00e9t\u00e9 con\u00e7ues pour rester discr\u00e8tes.<\/p>\n\n\n\n<p>Voyons maintenant quelques techniques de scan de ports propos\u00e9es par Nmap.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-syn-ss\">Scan TCP SYN (<code>-sS<\/code>)<\/h5>\n\n\n\n<p>Cette technique n\u00e9cessite des privil\u00e8ges d\u2019envoi de paquets bruts (raw packets) et elle est utilis\u00e9e par d\u00e9faut si l\u2019utilisateur qui ex\u00e9cute Nmap dispose des droits n\u00e9cessaires. Elle fonctionne avec n\u2019importe quel service conforme au protocole TCP.<\/p>\n\n\n\n<p>Le principe est le suivant : Nmap envoie un paquet au port cible avec uniquement le flag SYN activ\u00e9.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si une r\u00e9ponse SYN\/ACK (ou parfois juste SYN) est re\u00e7ue, cela signifie que le port est ouvert.<\/li>\n\n\n\n<li>Si une r\u00e9ponse RST (reset) est re\u00e7ue, le port est ferm\u00e9.<\/li>\n\n\n\n<li>En l\u2019absence de r\u00e9ponse ou si un message ICMP \u00ab Destination inaccessible \u00bb est re\u00e7u, le port est alors consid\u00e9r\u00e9 comme filtr\u00e9.<\/li>\n<\/ul>\n\n\n\n<p>Le scan TCP SYN est souvent qualifi\u00e9 de scan furtif (stealth scan), car Nmap n\u2019\u00e9tablit pas de connexion compl\u00e8te : il envoie un paquet RST imm\u00e9diatement apr\u00e8s avoir re\u00e7u un SYN\/ACK, interrompant ainsi la proc\u00e9dure de handshake avant qu\u2019elle ne soit finalis\u00e9e.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-connect-st\">Scan TCP connect (<code>-sT<\/code>)<\/h5>\n\n\n\n<p>Cette technique est s\u00e9lectionn\u00e9e par d\u00e9faut si l\u2019utilisateur qui ex\u00e9cute Nmap ne dispose pas des privil\u00e8ges n\u00e9cessaires pour envoyer des paquets bruts.<\/p>\n\n\n\n<p>Elle repose sur l\u2019\u00e9tablissement classique d\u2019une connexion TCP compl\u00e8te avec le port cible, en suivant le processus standard de handshake TCP. Elle permet de d\u00e9tecter les \u00e9tats des ports de la m\u00eame mani\u00e8re que le scan SYN, \u00e0 une diff\u00e9rence pr\u00e8s : le scan TCP connect n\u2019est pas furtif.<\/p>\n\n\n\n<p>En effet, cette m\u00e9thode compl\u00e8te la connexion TCP en r\u00e9pondant avec un SYN\/ACK, ce qui la rend facilement d\u00e9tectable. La majorit\u00e9 des syst\u00e8mes modernes enregistrent toute tentative de connexion, ce qui peut attirer l\u2019attention de solutions de s\u00e9curit\u00e9 ou d\u2019administrateurs r\u00e9seau.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-ack-sa\">Scan TCP ACK (<code>-sA<\/code>)<\/h5>\n\n\n\n<p>Contrairement aux techniques pr\u00e9c\u00e9dentes qui exploitent uniquement le flag SYN, cette m\u00e9thode envoie un paquet avec uniquement le flag ACK activ\u00e9.<\/p>\n\n\n\n<p>Lorsqu\u2019un port ouvert ou ferm\u00e9 re\u00e7oit un paquet contenant uniquement ce flag ACK, il devrait r\u00e9pondre avec un paquet contenant un flag RST. Ainsi, si Nmap re\u00e7oit un RST en r\u00e9ponse, le port est class\u00e9 comme non filtr\u00e9 (unfiltered). En revanche, l\u2019absence de r\u00e9ponse ou la r\u00e9ception d\u2019un message ICMP de type \u00ab\u00a0destination inaccessible\u00a0\u00bb indique que le port est filtr\u00e9.<\/p>\n\n\n\n<p>Il est donc important de noter que cette technique ne permet pas de savoir si un port est ouvert ou ferm\u00e9, mais uniquement s\u2019il est accessible ou non \u00e0 travers un pare-feu.<\/p>\n\n\n\n<p>Cette approche peut n\u00e9anmoins s\u2019av\u00e9rer utile pour analyser la configuration d\u2019un pare-feu. Par exemple, elle permet parfois de distinguer si un pare-feu est statique (stateless) ou dynamique (stateful). Les pare-feux stateful gardent en m\u00e9moire les connexions \u00e9tablies et autorisent g\u00e9n\u00e9ralement seulement les paquets appartenant \u00e0 une session active, ou ceux qui tentent d\u2019en initier une nouvelle.<\/p>\n\n\n\n<p>Malgr\u00e9 ses limitations, le scan TCP ACK peut \u00eatre utilis\u00e9 en compl\u00e9ment d\u2019autres techniques. En croisant les r\u00e9sultats, il devient alors possible d\u2019inf\u00e9rer si un port est ouvert ou ferm\u00e9.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-udp-su\">Scan UDP (<code>-sU<\/code>)<\/h5>\n\n\n\n<p>Le scan UDP consiste \u00e0 envoyer des paquets UDP vides vers les ports cibles, puis \u00e0 attendre une \u00e9ventuelle r\u00e9ponse. Si le port r\u00e9pond avec des donn\u00e9es, il est alors consid\u00e9r\u00e9 comme ouvert.<\/p>\n\n\n\n<p>Cependant, il faut garder \u00e0 l\u2019esprit que les services UDP r\u00e9pondent rarement \u00e0 des paquets vides ou \u00e0 des donn\u00e9es inattendues. Cela rend difficile pour Nmap de savoir si l\u2019absence de r\u00e9ponse est due \u00e0 un service qui ignore le paquet, ou un pare-feu qui bloque le trafic.<\/p>\n\n\n\n<p>Pour augmenter les chances d&rsquo;obtenir une r\u00e9ponse, Nmap envoie parfois des donn\u00e9es sp\u00e9cifiques \u00e0 certains protocoles vers les ports connus. Par exemple, il envoie une requ\u00eate DNS au port 53.<\/p>\n\n\n\n<p>Lorsque aucune r\u00e9ponse n\u2019est re\u00e7ue, Nmap classe l\u2019\u00e9tat du port comme \u00ab\u00a0open|filtered\u00a0\u00bb (ouvert ou filtr\u00e9), faute de pouvoir trancher.<\/p>\n\n\n\n<p>Enfin, il faut noter que le scan UDP est relativement lent, car Nmap attend plusieurs secondes par d\u00e9faut avant de retransmettre un paquet.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-null-sn\">Scan TCP NULL (<code>-sN<\/code>)<\/h5>\n\n\n\n<p>Jusqu\u2019\u00e0 pr\u00e9sent, nous avons vu des techniques qui exploitent les flags SYN et ACK. Cette m\u00e9thode, en revanche, envoie un paquet TCP sans aucun flag activ\u00e9 \u2014 d\u2019o\u00f9 son nom de NULL scan.<\/p>\n\n\n\n<p>Elle s\u2019appuie sur un d\u00e9tail pr\u00e9cis de la <a href=\"https:\/\/www.ietf.org\/rfc\/rfc793.txt\" target=\"_blank\" rel=\"noopener\" title=\"\">RFC TCP<\/a>, qui stipule que lorsqu\u2019un port ferm\u00e9 re\u00e7oit un paquet sans le flag RST activ\u00e9, il doit r\u00e9pondre avec un paquet RST.<\/p>\n\n\n\n<p>Ainsi, en envoyant un paquet qui ne contient aucun des flags RST, SYN ou ACK, il devient possible d\u2019identifier les ports ferm\u00e9s sur les syst\u00e8mes qui appliquent ce comportement conforme \u00e0 la RFC.<\/p>\n\n\n\n<p>Cependant, cette technique pr\u00e9sente une limitation : elle ne permet pas de distinguer un port ouvert d\u2019un port filtr\u00e9. En effet, la RFC indique qu\u2019un port ouvert doit simplement ignorer les paquets qui ne contiennent pas les flags SYN, ACK ou RST.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-fin-sf\">Scan TCP FIN (<code>-sF<\/code>)<\/h5>\n\n\n\n<p>Cette technique fonctionne de la m\u00eame mani\u00e8re que le scan TCP NULL, \u00e0 la diff\u00e9rence qu\u2019elle envoie des paquets avec le flag FIN activ\u00e9.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-xmas-sx\">Scan TCP Xmas (<code>-sX<\/code>)<\/h5>\n\n\n\n<p>Cette technique est similaire \u00e0 la pr\u00e9c\u00e9dente, sauf que les paquets envoy\u00e9s ont les flags FIN, PSH et URG activ\u00e9s, ce qui leur donne un aspect \u00ab&nbsp;d\u2019arbre de No\u00ebl&nbsp;\u00bb (d\u2019o\u00f9 le nom Xmas).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-tcp-window-sw\">Scan TCP Window (<code>-sW<\/code>)<\/h5>\n\n\n\n<p>Cette technique est similaire au scan TCP ACK puisqu\u2019elle envoie des paquets avec uniquement le flag ACK activ\u00e9, mais elle interpr\u00e8te les r\u00e9ponses diff\u00e9remment.<\/p>\n\n\n\n<p>Elle tente d\u2019exploiter un comportement pr\u00e9sent sur certains syst\u00e8mes : ceux-ci r\u00e9pondent avec un paquet RST dont le champ window varie selon l\u2019\u00e9tat du port.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si le port est ouvert, le champ window contient une valeur non nulle.<\/li>\n\n\n\n<li>Si le port est ferm\u00e9, cette valeur est g\u00e9n\u00e9ralement nulle.<\/li>\n<\/ul>\n\n\n\n<p>Cette technique ne fonctionne que sur les syst\u00e8mes qui impl\u00e9mentent ce comportement sp\u00e9cifique, ce qui la rend globalement peu fiable.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-sctp-init-sy\">Scan SCTP INIT (<code>-sY<\/code>)<\/h5>\n\n\n\n<p>Le protocole SCTP est une alternative aux protocoles TCP\/UDP. De mani\u00e8re similaire au scan SYN, cette technique d\u00e9tecte qu\u2019un port est ouvert s\u2019il re\u00e7oit un paquet INIT-ACK en r\u00e9ponse.<\/p>\n\n\n\n<p>\u00c0 l\u2019inverse, si elle re\u00e7oit un paquet ABORT, elle consid\u00e8re le port comme ferm\u00e9.<\/p>\n\n\n\n<p>Enfin, si une erreur ICMP de type \u00ab\u00a0destination inaccessible\u00a0\u00bb est re\u00e7ue, le port est class\u00e9 comme filtr\u00e9.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scans-personnalises-avec-scanflags\">Scans personnalis\u00e9s avec <code>--scanflags<\/code><\/h5>\n\n\n\n<p>Nmap est un outil flexible qui permet aux utilisateurs de cr\u00e9er des scans personnalis\u00e9s en sp\u00e9cifiant n\u2019importe quelle combinaison de flags TCP.<\/p>\n\n\n\n<p>Il est \u00e9galement possible d\u2019ajouter une option de scan comme <code>-sF<\/code> ou <code>-sA<\/code> afin que les r\u00e9sultats soient interpr\u00e9t\u00e9s selon le comportement de ce type de scan.<\/p>\n\n\n\n<p>Si aucune option n\u2019est pr\u00e9cis\u00e9e, les r\u00e9sultats sont interpr\u00e9t\u00e9s par d\u00e9faut comme un scan SYN (<code>-sS<\/code>).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"aioseo-synthese-des-techniques-de-scan\">Synth\u00e8se des techniques de scan<\/h5>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"aioseo-tcp\">TCP<\/h6>\n\n\n\n<p>Le tableau ci-dessous r\u00e9sume comment les diff\u00e9rentes techniques de scan TCP \u00e9voqu\u00e9es pr\u00e9c\u00e9demment classifient les ports en fonction des r\u00e9ponses re\u00e7ues.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"280\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/tcp-scan-techniques-1024x280.png\" alt=\"\" class=\"wp-image-13392\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/tcp-scan-techniques-1024x280.png 1024w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/tcp-scan-techniques-300x82.png 300w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/tcp-scan-techniques.png 1140w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Tableau r\u00e9capitulatif de l\u2019interpr\u00e9tation des r\u00e9sultats selon les techniques de scan TCP disponibles dans Nmap.<\/figcaption><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"aioseo-udp\">UDP<\/h6>\n\n\n\n<p>Le tableau ci-dessous r\u00e9sume les cas rencontr\u00e9s lors de l\u2019utilisation de la technique de scan UDP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"990\" height=\"121\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/udp-scan-techniques.png\" alt=\"\" class=\"wp-image-13396\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/udp-scan-techniques.png 990w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/udp-scan-techniques-300x37.png 300w\" sizes=\"(max-width: 990px) 100vw, 990px\" \/><figcaption class=\"wp-element-caption\">Tableau r\u00e9capitulatif du comportement de la technique de scan UDP propos\u00e9e par Nmap.<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"detection-des-services-et-versions\">D\u00e9tection des services et versions<\/h4>\n\n\n\n<p>Ceci correspond \u00e0 la sixi\u00e8me phase mentionn\u00e9e dans le tableau pr\u00e9sentant les phases d&rsquo;ex\u00e9cution de Nmap<strong>.<\/strong><\/p>\n\n\n\n<p>\u00c0 ce stade, tous les exemples que nous avons vus incluent une colonne <code>SERVICE<\/code> dans la sortie, indiquant des valeurs comme <code>http<\/code>.<\/p>\n\n\n\n<p>Cela s&rsquo;explique par le fait que, par d\u00e9faut, Nmap tente de deviner quel service s&rsquo;ex\u00e9cute sur un port donn\u00e9 en se basant sur un fichier nomm\u00e9 <code>nmap-services<\/code>. Ce fichier associe les num\u00e9ros de ports aux services qui y sont g\u00e9n\u00e9ralement li\u00e9s. <\/p>\n\n\n\n<p>Toutefois, cette m\u00e9thode reste impr\u00e9cise, car les utilisateurs sont libres de faire tourner n&rsquo;importe quel programme sur n&rsquo;importe quel port, sans n\u00e9cessairement respecter les conventions.<\/p>\n\n\n\n<p>Dans l&rsquo;exemple ci-dessous, Nmap identifie correctement qu&rsquo;un service <code>http<\/code> s&rsquo;ex\u00e9cute sur le port <code>80<\/code>. Cette information figure dans le fichier <code>nmap-services<\/code> (puisque le port 80 est un port enregistr\u00e9, couramment utilis\u00e9 pour les serveurs HTTP). <\/p>\n\n\n\n<p>En revanche, il ne parvient pas \u00e0 identifier pr\u00e9cis\u00e9ment ce qui tourne sur le port <code>5000<\/code>, et le qualifie simplement de <code>upnp<\/code>. Cela est logique puisque le port <code>5000<\/code> n\u2019est pas un port officiellement enregistr\u00e9, il ne figure donc pas dans le fichier <code>nmap-services<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"768\" height=\"272\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/service-detection-nmap.png\" alt=\"\" class=\"wp-image-13435\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/service-detection-nmap.png 768w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/service-detection-nmap-300x106.png 300w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>Pour contourner cette limite et r\u00e9colter un maximum d&rsquo;informations sur les cibles, Nmap propose un module complet d\u00e9di\u00e9 \u00e0 la d\u00e9tection des services. Ce module repose sur une m\u00e9thode d\u2019empreintes (fingerprinting), bien plus efficace que l\u2019approche bas\u00e9e uniquement sur le fichier statique <code>nmap-services<\/code>.<\/p>\n\n\n\n<p>Ce module peut \u00eatre activ\u00e9 en ajoutant l&rsquo;option <code>-sV<\/code>. Si l\u2019on relance le scan pr\u00e9c\u00e9dent avec cette option, on obtient les r\u00e9sultats suivants :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"764\" height=\"275\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-service-detection-module.png\" alt=\"\" class=\"wp-image-13438\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-service-detection-module.png 764w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-service-detection-module-300x108.png 300w\" sizes=\"(max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<p>Les r\u00e9sultats affichent d\u00e9sormais une nouvelle colonne <code>VERSION<\/code>, qui indique que le service en \u00e9coute sur le port <code>5000<\/code> est tr\u00e8s probablement un serveur HTTP nginx, version 1.27.4.<\/p>\n\n\n\n<p>Si cette version de nginx est vuln\u00e9rable, cette information peut s\u2019av\u00e9rer extr\u00eamement pr\u00e9cieuse pour un attaquant. C\u2019est pourquoi le type de service et sa version constituent des informations cruciales d\u2019un point de vue s\u00e9curit\u00e9.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"comment-fonctionne-la-detection-de-services-avec-nmap\">Comment fonctionne la d\u00e9tection de services avec Nmap ?<\/h5>\n\n\n\n<p>Lors d\u2019un scan, Nmap ne se contente pas de lister les ports ouverts. Il peut aussi essayer d\u2019identifier les services qui tournent sur ces ports. Pour cela, il utilise un fichier appel\u00e9 <code>nmap-service-probes<\/code> qui contient une grande liste de \u00ab\u00a0probes\u00a0\u00bb.<\/p>\n\n\n\n<p>Une probe est tout simplement un petit message sp\u00e9cifique que Nmap envoie \u00e0 un port pour voir comment le service va r\u00e9pondre. En comparant la r\u00e9ponse obtenue \u00e0 ce qu\u2019il attend, Nmap peut deviner quel service est en face (par exemple Apache, nginx, SSH, etc.).<\/p>\n\n\n\n<p>Ces probes peuvent \u00eatre modifi\u00e9es ou enrichies par les utilisateurs avanc\u00e9s pour d\u00e9tecter des services sp\u00e9cifiques.<\/p>\n\n\n\n<p>Ci-dessous un exemple de probe : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"297\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-probe-1024x297.png\" alt=\"\" class=\"wp-image-13406\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-probe-1024x297.png 1024w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-probe-300x87.png 300w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-probe-1536x446.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Chaque probe contient plusieurs lignes de directives :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La ligne <code>Probe<\/code> d\u00e9crit le protocole utilis\u00e9 (TCP ou UDP), le nom de la probe, et le contenu du message envoy\u00e9 au port (le \u00ab\u00a0payload\u00a0\u00bb).<\/li>\n\n\n\n<li>Les lignes <code>match<\/code> contiennent des expressions r\u00e9guli\u00e8res : elles servent \u00e0 v\u00e9rifier si la r\u00e9ponse du service correspond \u00e0 un mod\u00e8le connu. Si \u00e7a matche, on identifie le service !<\/li>\n\n\n\n<li>La directive <code>ports<\/code> liste les ports sur lesquels cette probe est habituellement efficace.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"etapes-du-processus-de-detection\">\u00c9tapes du processus de d\u00e9tection<\/h5>\n\n\n\n<p>Pour chaque port trouv\u00e9 comme ouvert ou ouvert|filtr\u00e9, Nmap proc\u00e8de ainsi :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Il s\u00e9lectionne les probes compatibles (protocole + port mentionn\u00e9).<\/li>\n\n\n\n<li>Il envoie chaque probe au port :\n<ul class=\"wp-block-list\">\n<li>Si une r\u00e9ponse est re\u00e7ue, il teste la r\u00e9ponse avec les r\u00e8gles <code>match<\/code>. Si aucune ne correspond, il essaie une \u00ab\u00a0probe de secours\u00a0\u00bb (<code>fallback<\/code>).<\/li>\n\n\n\n<li>S&rsquo;il ne re\u00e7oit aucune r\u00e9ponse, il passe \u00e0 la suivante.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Si aucune probe ne matche :\n<ul class=\"wp-block-list\">\n<li>Nmap tente certaines autres probes, m\u00eame si le port n\u2019est pas sp\u00e9cifiquement mentionn\u00e9.<\/li>\n\n\n\n<li>Il tient alors compte de la raret\u00e9 de la probe (<code>rarity<\/code>) et du niveau de verbosit\u00e9 demand\u00e9 (<code>--version-intensity<\/code>).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>N\u00e9anmoins, il est important de noter que les r\u00e9sultats de cette phase ne sont pas toujours fiables \u00e0 100 %, car ils d\u00e9pendent d\u2019une base de donn\u00e9es et de tests de correspondance par expressions r\u00e9guli\u00e8res. Il peut y avoir des erreurs de d\u00e9tection.<\/p>\n\n\n\n<p>C&rsquo;est pour cela que Nmap encourage les utilisateurs \u00e0 remonter les erreurs ou \u00e0 contribuer \u00e0 enrichir la base de donn\u00e9es de probes.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"cas-des-services-udp\">Cas des services UDP<\/h5>\n\n\n\n<p>Comme indiqu\u00e9 dans les sections pr\u00e9c\u00e9dentes, les ports ouverts UDP sont sujets \u00e0 des d\u00e9passements de d\u00e9lai, car de nombreux services UDP ne r\u00e9pondent pas s&rsquo;ils ne reconnaissent pas les donn\u00e9es re\u00e7ues. <\/p>\n\n\n\n<p>En revanche, la phase de d\u00e9tection des services envoie des donn\u00e9es sp\u00e9cifiques au protocole, ce qui augmente les chances d&rsquo;envoyer les donn\u00e9es attendues au service UDP et d&rsquo;obtenir une r\u00e9ponse en retour. <\/p>\n\n\n\n<p>Dans ce cas, tout port UDP pr\u00e9c\u00e9demment marqu\u00e9 comme <code>open|filtered<\/code> peut \u00eatre mis \u00e0 jour en <code>open<\/code>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"comment-detecter-le-systeme-dexploitation-dans-cette-phase\">Comment d\u00e9tecter le syst\u00e8me d&rsquo;exploitation dans cette phase ?<\/h5>\n\n\n\n<p>La phase de d\u00e9tection des services peut \u00e9galement permettre d&rsquo;identifier des syst\u00e8mes d&rsquo;exploitation, car de nombreux services peuvent r\u00e9v\u00e9ler des informations utiles simplement en interagissant avec eux.<\/p>\n\n\n\n<p>Par exemple, SSH envoie souvent une banni\u00e8re qui peut contenir des d\u00e9tails sur le syst\u00e8me d&rsquo;exploitation du serveur. Il est donc possible d&rsquo;extraire des informations relatives au syst\u00e8me d&rsquo;exploitation au cours de cette phase. <\/p>\n\n\n\n<p>De plus, certains services sont connus pour fonctionner exclusivement sur des syst\u00e8mes ou des appareils sp\u00e9cifiques, ce qui permet \u00e0 Nmap de d\u00e9duire le syst\u00e8me d&rsquo;exploitation sous-jacent. <\/p>\n\n\n\n<p>Cependant, Nmap fournit un autre m\u00e9canisme pour la d\u00e9tection du syst\u00e8me d&rsquo;exploitation qui est invoqu\u00e9 en utilisant l&rsquo;option <code>-O<\/code>, qui sera d\u00e9taill\u00e9e dans une autre section.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"focus-sur-les-ports-exclus-par-defaut-dans-la-phase-de-detection-des-services\">Focus sur les ports exclus par d\u00e9faut dans la phase de d\u00e9tection des services<\/h5>\n\n\n\n<p>Par pr\u00e9caution, Nmap ignore par d\u00e9faut les ports 9100 \u00e0 9107, souvent associ\u00e9s \u00e0 des imprimantes. Ces derni\u00e8res, comme mentionn\u00e9 dans la documentation, ont la mauvaise habitude d\u2019imprimer tout ce qu\u2019on leur envoie. <\/p>\n\n\n\n<p>Donc si un serveur HTTP tourne sur un de ces ports, il ne sera <strong>pas d\u00e9tect\u00e9<\/strong> par d\u00e9faut. Exemple : <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"769\" height=\"105\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/excluded-ports-nmap.png\" alt=\"\" class=\"wp-image-13445\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/excluded-ports-nmap.png 769w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/excluded-ports-nmap-300x41.png 300w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<p>Nous voyons que le port n&rsquo;a pas \u00e9t\u00e9 identifi\u00e9 comme un serveur HTTP. Mais si nous ajoutons <code>--allports<\/code> pour forcer Nmap \u00e0 scanner tous les ports :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"765\" height=\"108\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-allports-nmap.png\" alt=\"\" class=\"wp-image-13447\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-allports-nmap.png 765w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/adding-allports-nmap-300x42.png 300w\" sizes=\"(max-width: 765px) 100vw, 765px\" \/><\/figure>\n\n\n\n<p>Nmap arrive \u00e0 identifier le service et la version. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"effectuer-une-decouverte-dhotes-avec-nmap\">Effectuer une d\u00e9couverte d&rsquo;h\u00f4tes avec Nmap<\/h4>\n\n\n\n<p>Au-del\u00e0 du scan de ports, Nmap permet \u00e9galement de d\u00e9tecter les machines accessibles sur un r\u00e9seau donn\u00e9. Cette fonctionnalit\u00e9 est particuli\u00e8rement utile pour les administrateurs syst\u00e8me ou r\u00e9seau, car elle facilite la gestion de l&rsquo;infrastructure et la constitution d\u2019un inventaire r\u00e9seau. <\/p>\n\n\n\n<p>Plusieurs techniques sont propos\u00e9es pour cela.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"utilisation-du-protocole-icmp\">Utilisation du protocole ICMP<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ICMP Echo Request (<code>-PE<\/code>)<\/strong> : Nmap envoie une requ\u00eate ICMP Echo et attend une r\u00e9ponse (Echo Reply). Si aucune r\u00e9ponse n\u2019est re\u00e7ue, la machine est consid\u00e9r\u00e9e comme hors ligne. Il s&rsquo;agit du comportement par d\u00e9faut du \u00ab\u00a0ping\u00a0\u00bb.<\/li>\n\n\n\n<li><strong>ICMP Address Mask Request (<code>-PM<\/code>)<\/strong> : Fonctionne comme <code>-PE<\/code>, mais envoie une requ\u00eate ICMP Address Mask. Utile si les requ\u00eates Echo sont bloqu\u00e9es.<\/li>\n\n\n\n<li><strong>ICMP Timestamp Request (<code>-PP<\/code>)<\/strong> : Envoie une requ\u00eate ICMP Timestamp pour d\u00e9terminer si l\u2019h\u00f4te r\u00e9pond.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"utilisation-du-protocole-arp-pr\">Utilisation du protocole ARP (<code>-PR<\/code>)<\/h5>\n\n\n\n<p>Cette m\u00e9thode est particuli\u00e8rement efficace en r\u00e9seau local. Le protocole ARP \u00e9tant massivement utilis\u00e9 et rarement bloqu\u00e9, il constitue une solution fiable pour d\u00e9tecter les machines actives sur un LAN.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"utilisation-des-protocoles-tcp-udp\">Utilisation des protocoles TCP\/UDP<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>-PS<\/code><\/strong> : Envoie un paquet TCP SYN sur le port 443 (configurable). Si une r\u00e9ponse SYN\/ACK ou RST est re\u00e7ue, l\u2019h\u00f4te est consid\u00e9r\u00e9 comme actif. Cela fonctionne bien lorsque ICMP est bloqu\u00e9, mais que des services comme HTTP sont autoris\u00e9s.<\/li>\n\n\n\n<li><strong><code>-PA<\/code><\/strong> : M\u00eame logique que <code>-PS<\/code>, mais envoie un paquet TCP ACK sur le port 80 par d\u00e9faut.<\/li>\n\n\n\n<li><strong><code>-PU<\/code><\/strong> : Envoie un paquet UDP, par d\u00e9faut sur le port 40125.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"utilisation-dautres-protocoles-ip-po\">Utilisation d&rsquo;autres protocoles IP (<code>-PO<\/code>)<\/h5>\n\n\n\n<p>Nmap peut \u00e9galement tenter de d\u00e9tecter la pr\u00e9sence d\u2019un h\u00f4te via d\u2019autres protocoles comme IGMP.<\/p>\n\n\n\n<p>Par d\u00e9faut, Nmap combine les options suivantes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour les utilisateurs privil\u00e9gi\u00e9s : <code>-PE -PP -PS443 -PA80<\/code><\/li>\n\n\n\n<li>Pour les utilisateurs non privil\u00e9gi\u00e9s : <code>-PS80,443<\/code><\/li>\n<\/ul>\n\n\n\n<p>Ci-dessous un exemple de scan dune machine sur un r\u00e9seau : <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"764\" height=\"366\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/host-scanning-nmap.png\" alt=\"\" class=\"wp-image-13449\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/host-scanning-nmap.png 764w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/host-scanning-nmap-300x144.png 300w\" sizes=\"(max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-ddadb7f415b530aa9054dd2b630aefcc\" id=\"utilisation-avancee-de-nmap\" style=\"color:#c0b800\">Utilisation avanc\u00e9e de Nmap<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"detection-du-systeme-dexploitation\">D\u00e9tection du syst\u00e8me d\u2019exploitation<\/h4>\n\n\n\n<p>Identifier le syst\u00e8me d\u2019exploitation utilis\u00e9 par une cible constitue une information pr\u00e9cieuse. Cela permet, par exemple, d\u2019orienter l\u2019identification du type d\u2019appareil, comme les routeurs ou les imprimantes, qui ex\u00e9cutent souvent des syst\u00e8mes sp\u00e9cifiques. <\/p>\n\n\n\n<p>En audit de s\u00e9curit\u00e9, cette donn\u00e9e est cruciale pour adapter les charges utiles d\u2019attaque en fonction de l\u2019environnement cibl\u00e9. <\/p>\n\n\n\n<p>Nmap int\u00e8gre un module d\u00e9di\u00e9 \u00e0 la d\u00e9tection du syst\u00e8me d\u2019exploitation, bas\u00e9 sur l\u2019analyse d\u2019empreintes r\u00e9seau (fingerprinting). Cette m\u00e9thode repose sur une s\u00e9rie de m\u00e9triques et de calculs permettant de comparer les caract\u00e9ristiques d\u2019un h\u00f4te inconnu \u00e0 une base de donn\u00e9es de r\u00e9f\u00e9rences connues. <\/p>\n\n\n\n<p>Toutefois, cette d\u00e9tection peut \u00e9chouer ou aboutir \u00e0 des r\u00e9sultats impr\u00e9cis. Dans ce cas, Nmap fournit une liste de syst\u00e8mes d\u2019exploitation probables, accompagn\u00e9s d\u2019un pourcentage de confiance. Il arrive \u00e9galement que le syst\u00e8me ne puisse pas \u00eatre identifi\u00e9 du tout.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"principe-de-fonctionnement\">Principe de fonctionnement <\/h5>\n\n\n\n<p>Les explications qui suivent s\u2019appliquent exclusivement \u00e0 l\u2019IPv4.<\/p>\n\n\n\n<p>La d\u00e9tection du syst\u00e8me d\u2019exploitation repose sur l\u2019envoi de plusieurs types de probes \u00e0 la cible. Ces paquets peuvent \u00eatre de nature TCP, UDP ou ICMP, et incluent souvent des donn\u00e9es inhabituelles dans certains champs du paquet. Nmap envoie environ 16 paquets diff\u00e9rents et classe les r\u00e9sultats dans une douzaine de cat\u00e9gories.<\/p>\n\n\n\n<p>Apr\u00e8s r\u00e9ception des r\u00e9ponses, Nmap construit une empreinte de la cible (subject fingerprint) en attribuant des attributs sp\u00e9cifiques \u00e0 chaque cat\u00e9gorie, en se basant sur les valeurs retourn\u00e9es ou des m\u00e9triques calcul\u00e9es. Cette empreinte est ensuite compar\u00e9e \u00e0 une empreinte de r\u00e9f\u00e9rence, extraite de sa base de donn\u00e9es, laquelle regroupe les signatures connues de nombreux syst\u00e8mes d\u2019exploitation.<\/p>\n\n\n\n<p>Voici un exemple de d\u00e9tection d\u2019OS r\u00e9alis\u00e9e sur un routeur, en utilisant l\u2019option <code>-d<\/code> qui permet d\u2019afficher les d\u00e9tails de l\u2019empreinte calcul\u00e9e :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># nmap -O -d -sV 192.168.1.254\n\nNot shown: 992 closed tcp ports (reset)\nPORT     STATE SERVICE  REASON         VERSION\n53\/tcp   open  domain   syn-ack ttl 64 dnsmasq 2.90\n&#91;... TRUNCATED RESULTS ...]\n\nDevice type: general purpose|router\n\nRunning: Linux 4.X|5.X, MikroTik RouterOS 7.X\nOS CPE: cpe:\/o:linux:linux_kernel:4 cpe:\/o:linux:linux_kernel:5 cpe:\/o:mikrotik:routeros:7 cpe:\/o:linux:linux_kernel:5.6.3\nOS details: Linux 4.15 - 5.19, OpenWrt 21.02 (Linux 5.4), MikroTik RouterOS 7.2 - 7.5 (Linux 5.6.3)\nTCP\/IP fingerprint:\nOS:SCAN(V=7.95%E=4%D=5\/1%OT=53%CT=1%CU=42846%PV=Y%DS=1%DC=D%G=Y%M=8C97EA%TM\nOS:=68133D2C%P=arm-apple-darwin24.1.0)SEQ(SP=104%GCD=1%ISR=10D%TI=Z%CI=Z%II\nOS:=I%TS=A)OPS(O1=M5B4ST11NW7%O2=M5B4ST11NW7%O3=M5B4NNT11NW7%O4=M5B4ST11NW7<\/code><\/pre>\n\n\n\n<p>Le bloc d\u2019empreinte TCP\/IP (non affich\u00e9 ici en entier) illustre la richesse des donn\u00e9es collect\u00e9es par Nmap. \u00c0 partir de celles-ci, Nmap a identifi\u00e9 trois syst\u00e8mes d\u2019exploitation possibles pour la cible :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linux 4.15 \u00e0 5.19<\/li>\n\n\n\n<li>OpenWrt 21.02 (noyau Linux 5.4)<\/li>\n\n\n\n<li>MikroTik RouterOS 7.2 \u00e0 7.5 (noyau Linux 5.6.3)<\/li>\n<\/ul>\n\n\n\n<p>De plus, Nmap indique que l\u2019\u00e9quipement cibl\u00e9 est probablement un routeur ou une machine standard.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"empreinte-de-la-cible-subject-fingerprint\">Empreinte de la cible (Subject Fingerprint)<\/h5>\n\n\n\n<p>Dans cette section, ce qui nous int\u00e9resse, c\u2019est l\u2019empreinte de la cible g\u00e9n\u00e9r\u00e9e par Nmap. Celle-ci est affich\u00e9e dans un format condens\u00e9, con\u00e7u pour \u00eatre facilement partageable lors de la remont\u00e9e d\u2019erreurs ou d\u2019incoh\u00e9rences.<\/p>\n\n\n\n<p>Heureusement, ce format est relativement simple \u00e0 d\u00e9coder : il suffit de retirer le pr\u00e9fixe <code>OS:<\/code> pr\u00e9sent au d\u00e9but de chaque ligne, puis d\u2019ajouter un retour \u00e0 la ligne apr\u00e8s chaque parenth\u00e8se fermante.<\/p>\n\n\n\n<p>Voici une version d\u00e9cod\u00e9e de l\u2019empreinte :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"769\" height=\"370\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/subject-fingerprint.png\" alt=\"\" class=\"wp-image-13418\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/subject-fingerprint.png 769w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/subject-fingerprint-300x144.png 300w\" sizes=\"(max-width: 769px) 100vw, 769px\" \/><\/figure>\n\n\n\n<p>Chaque ligne repr\u00e9sente une cat\u00e9gorie qui synth\u00e9tise les r\u00e9sultats des sondes envoy\u00e9es, \u00e0 l\u2019exception de la premi\u00e8re. Ces r\u00e9sultats sont exprim\u00e9s sous forme de paires attribut-valeur, s\u00e9par\u00e9es par le caract\u00e8re <code>%<\/code>. Le format g\u00e9n\u00e9ral est : <code>NOM_DE_CATEGORIE(ATTR_1=valeur%ATTR_2=valeur%...)<\/code>.<\/p>\n\n\n\n<p>Par exemple, la cat\u00e9gorie <code>SEQ<\/code> fournit des r\u00e9sultats d\u2019analyse bas\u00e9s sur des calculs statistiques portant sur certains champs comme l\u2019IP ID et la pr\u00e9dictibilit\u00e9 du num\u00e9ro de s\u00e9quence initial (ISN).<\/p>\n\n\n\n<p>Un autre exemple : l\u2019attribut <code>R<\/code>, pr\u00e9sent dans de nombreuses cat\u00e9gories, correspond \u00e0 la r\u00e9activit\u00e9 (<code>Responsiveness<\/code>). Sa valeur est fix\u00e9e \u00e0 <code>Y<\/code> (yes) si la cible a r\u00e9pondu aux sondes associ\u00e9es \u00e0 cette cat\u00e9gorie.<\/p>\n\n\n\n<p>Quant \u00e0 la ligne <code>SCAN<\/code>, elle se distingue des autres : elle r\u00e9capitule les conditions g\u00e9n\u00e9rales du scan, incluant notamment la version de Nmap utilis\u00e9e, la date, ou encore le nombre de ports ouverts identifi\u00e9s.<\/p>\n\n\n\n<p>Pour une compr\u00e9hension compl\u00e8te des diff\u00e9rentes cat\u00e9gories et de la signification des attributs, on se r\u00e9f\u00e9rera \u00e0 la documentation officielle de Nmap.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"empreinte-de-reference-reference-fingerprint\">Empreinte de r\u00e9f\u00e9rence (Reference Fingerprint)<\/h5>\n\n\n\n<p>Une fois l\u2019empreinte du syst\u00e8me cible g\u00e9n\u00e9r\u00e9e, Nmap la compare \u00e0 toutes les empreintes de r\u00e9f\u00e9rence disponibles, en calculant un score de similarit\u00e9 (ou de confiance). <\/p>\n\n\n\n<p>Prenons l\u2019exemple de l\u2019empreinte de r\u00e9f\u00e9rence correspondant \u00e0 \u00ab\u00a0MikroTik RouterOS\u00a0\u00bb, identifi\u00e9e dans l\u2019analyse pr\u00e9c\u00e9dente. Toutes les empreintes de r\u00e9f\u00e9rence sont stock\u00e9es dans le fichier <code>nmap-os-db<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"766\" height=\"491\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/reference-fingerprint.png\" alt=\"\" class=\"wp-image-13420\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/reference-fingerprint.png 766w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/reference-fingerprint-300x192.png 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure>\n\n\n\n<p>Une empreinte de r\u00e9f\u00e9rence a une structure tr\u00e8s proche de celle d&rsquo;une empreinte cible, \u00e0 ceci pr\u00e8s que les valeurs ne sont pas fixes : elles sont exprim\u00e9es sous forme de tests logiques ou expressions de correspondance.<\/p>\n\n\n\n<p>Par exemple, dans la cat\u00e9gorie <code>OPS<\/code>, l\u2019attribut <code>O1<\/code> est d\u00e9fini comme suit : <code>O1=M[54E-5B4]ST11NW[2|3|5|7]<\/code>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La notation <code>[54E-5B4]<\/code> d\u00e9signe une plage de valeurs hexad\u00e9cimales que l\u2019on peut retrouver dans cette position.<\/li>\n\n\n\n<li>Quant \u00e0 <code>[2|3|5|7]<\/code>, cela signifie que la derni\u00e8re valeur doit obligatoirement \u00eatre l\u2019un de ces chiffres pr\u00e9cis (2, 3, 5 ou 7).<\/li>\n<\/ul>\n\n\n\n<p>Les premi\u00e8res lignes de l\u2019empreinte servent \u00e0 d\u00e9crire le syst\u00e8me d\u2019exploitation et la version cibl\u00e9e par l\u2019ensemble des tests qui suivent.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"match-fingerprint\">Match Fingerprint<\/h5>\n\n\n\n<p>Comme mentionn\u00e9 pr\u00e9c\u00e9demment, Nmap calcule un score de confiance pour d\u00e9terminer si une empreinte collect\u00e9e (subject fingerprint) correspond \u00e0 une empreinte de r\u00e9f\u00e9rence (reference fingerprint). Ce score est bas\u00e9 sur un mod\u00e8le d\u00e9fini au d\u00e9but du fichier <code>nmap-os-db<\/code>, reconnaissable gr\u00e2ce \u00e0 la directive <code>MatchPoints<\/code>.<\/p>\n\n\n\n<p>Cette directive sp\u00e9cifie, pour chaque attribut de chaque cat\u00e9gorie, le nombre de points pouvant \u00eatre attribu\u00e9s si l\u2019attribut de l\u2019empreinte \u00e0 analyser correspond \u00e0 celui de l\u2019empreinte de r\u00e9f\u00e9rence.<\/p>\n\n\n\n<p>Deux accumulateurs sont utilis\u00e9s : TotalPoints et GainedPoints.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TotalPoints correspond \u00e0 la somme maximale des points que l\u2019on peut obtenir si tous les attributs sont identiques.<\/li>\n\n\n\n<li>GainedPoints est la somme r\u00e9elle des points obtenus selon les correspondances effectives.<\/li>\n<\/ul>\n\n\n\n<p>Nmap calcule ensuite un score de confiance sous la forme du ratio <code>GainedPoints \/ TotalPoints<\/code>, ce qui donne un nombre d\u00e9cimal entre 0 et 1.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si le r\u00e9sultat est exactement 1, cela signifie que l\u2019empreinte analys\u00e9e correspond parfaitement \u00e0 l\u2019empreinte de r\u00e9f\u00e9rence.<\/li>\n\n\n\n<li>Sinon, Nmap affiche ce score de confiance ainsi que les r\u00e9sultats suppos\u00e9s (guess results).<\/li>\n<\/ul>\n\n\n\n<p>Voici l\u2019exemple de mod\u00e8le de correspondance par d\u00e9faut extrait du fichier <code>nmap-os-db<\/code> :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"770\" height=\"365\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/match-fingerprint.png\" alt=\"\" class=\"wp-image-13424\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/match-fingerprint.png 770w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/match-fingerprint-300x142.png 300w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/figure>\n\n\n\n<p>NB : La d\u00e9tection du syst\u00e8me d\u2019exploitation pour les cibles IPv6 repose sur une approche diff\u00e9rente, bas\u00e9e sur des techniques de machine learning.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"scripts-nmap\">Scripts Nmap<\/h4>\n\n\n\n<p>Nmap int\u00e8gre un module de script connu sous le nom de <strong>Nmap Scripting Engine (NSE)<\/strong>. Son objectif, comme son nom l\u2019indique, est d\u2019ex\u00e9cuter des scripts sur les cibles, ce qui peut s\u2019av\u00e9rer tr\u00e8s utile pour automatiser des t\u00e2ches fastidieuses ou r\u00e9p\u00e9titives. Ces scripts sont \u00e9crits dans le langage de programmation Lua. <\/p>\n\n\n\n<p>Le module est livr\u00e9 avec une large collection de scripts, mais les utilisateurs peuvent \u00e9galement \u00e9crire et ajouter leurs propres scripts personnalis\u00e9s.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"aioseo-etapes-dexecution-des-scripts\">\u00c9tapes d&rsquo;ex\u00e9cution des scripts<\/h5>\n\n\n\n<p>Les scripts peuvent \u00eatre ex\u00e9cut\u00e9s \u00e0 quatre \u00e9tapes distinctes lors de l\u2019ex\u00e9cution d\u2019un scan Nmap. C\u2019est l\u2019auteur du script qui sp\u00e9cifie \u00e0 quelle \u00e9tape celui-ci doit s\u2019ex\u00e9cuter. Voici les quatre \u00e9tapes possibles :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pre-rule scripts<\/strong> : ex\u00e9cut\u00e9s durant la toute premi\u00e8re phase, appel\u00e9e Script pre-scanning. Ces scripts sont lanc\u00e9s avant tout scan Nmap. Ils peuvent, par exemple, envoyer des requ\u00eates de broadcast sur le r\u00e9seau.<\/li>\n\n\n\n<li><strong>Host scripts<\/strong> : ex\u00e9cut\u00e9s apr\u00e8s que Nmap ait r\u00e9alis\u00e9 la d\u00e9couverte d\u2019h\u00f4tes, le scan de ports, la d\u00e9tection de version et l\u2019identification du syst\u00e8me d\u2019exploitation. Ce type de script s\u2019ex\u00e9cute une fois par h\u00f4te cible, pourvu que celui-ci corresponde \u00e0 la condition <code>hostrule<\/code> d\u00e9finie dans le script.<\/li>\n\n\n\n<li><strong>Service scripts<\/strong> : ces scripts s\u2019ex\u00e9cutent contre les ports \u00e0 l\u2019\u00e9coute qui correspondent \u00e0 la r\u00e8gle <code>portrule<\/code>.<\/li>\n\n\n\n<li><strong>Post-rule scripts<\/strong> : ex\u00e9cut\u00e9s \u00e0 la toute fin, une fois que toutes les phases de Nmap sont termin\u00e9es. Ils peuvent servir, par exemple, \u00e0 traiter ou formater les r\u00e9sultats avant la fin de l\u2019ex\u00e9cution.<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"aioseo-categories-des-scripts\">Cat\u00e9gories des scripts<\/h5>\n\n\n\n<p>Les scripts sont aussi class\u00e9s en <strong>cat\u00e9gories<\/strong>, selon leur finalit\u00e9. Par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>default<\/strong> : cette cat\u00e9gorie regroupe les scripts lanc\u00e9s par d\u00e9faut si les options <code>-sC<\/code> ou <code>--script<\/code> sont utilis\u00e9es sans arguments suppl\u00e9mentaires.<\/li>\n\n\n\n<li><strong>brute<\/strong> : ces scripts effectuent des <a href=\"https:\/\/www.vaadata.com\/blog\/fr\/attaques-brute-force-principes-et-bonnes-pratiques-securite\/\" title=\"\">attaques brute force<\/a>. Quelques exemples : <code>http-brute<\/code> (attaque brute force sur l\u2019authentification HTTP basic, digest ou <a href=\"https:\/\/www.vaadata.com\/blog\/fr\/authentification-ntlm-principes-fonctionnement-et-attaques-ntlm-relay\/\" target=\"_blank\" rel=\"noopener\" title=\"\">NTLM<\/a>), <code>snmp-brute<\/code>, <code>oracle-brute<\/code>, etc.<\/li>\n\n\n\n<li><strong>discovery<\/strong> : cette cat\u00e9gorie interroge davantage de services d\u2019annuaire et registres pour collecter plus d\u2019informations sur le r\u00e9seau.<\/li>\n<\/ul>\n\n\n\n<p>Voici un exemple d\u2019ex\u00e9cution de Nmap utilisant l\u2019option <code>--script<\/code> :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"767\" height=\"323\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/using-nmap-with-scripts.png\" alt=\"\" class=\"wp-image-13428\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/using-nmap-with-scripts.png 767w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/using-nmap-with-scripts-300x126.png 300w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/><\/figure>\n\n\n\n<p>Comme on peut l\u2019observer, le script a r\u00e9ussi \u00e0 contourner l\u2019authentification HTTP basic en r\u00e9alisant une attaque brute force.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"techniques-de-contournement-des-pare-feux-et-systemes-de-detection-dintrusion-ids-avec-nmap\">Techniques de contournement des pare-feux et syst\u00e8mes de d\u00e9tection d&rsquo;intrusion (IDS) avec Nmap<\/h4>\n\n\n\n<p>Nmap propose plusieurs techniques pour contourner des pare-feux ou des syst\u00e8mes de d\u00e9tection\/pr\u00e9vention d&rsquo;intrusion (IDS\/IPS) mal configur\u00e9s. <\/p>\n\n\n\n<p>Certaines de ces techniques ne sont efficaces que contre des machines anciennes avec des logiciels obsol\u00e8tes. <\/p>\n\n\n\n<p>Bien qu\u2019elles puissent \u00e9chouer face \u00e0 des outils de s\u00e9curit\u00e9 modernes, elles m\u00e9ritent d\u2019\u00eatre essay\u00e9es, en particulier lors d\u2019un audit en r\u00e9seau local.<\/p>\n\n\n\n<p>Voici un aper\u00e7u de quelques techniques d\u2019\u00e9vasion disponibles dans Nmap. <\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-ip-idle-si\">Scan IP Idle (<code>-sI<\/code>)<\/h5>\n\n\n\n<p>Cette technique est utile lorsque l\u2019on est bloqu\u00e9 pour scanner la cible, mais qu\u2019on peut atteindre une autre machine qui :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Peut contacter la cible et est moins susceptible d\u2019\u00eatre filtr\u00e9e.<\/li>\n\n\n\n<li>G\u00e9n\u00e8re des identifiants IP (IP ID) pr\u00e9visibles \u00e0 l\u2019\u00e9chelle globale (ce qui est rare sur les syst\u00e8mes modernes).<\/li>\n<\/ul>\n\n\n\n<p>Cette machine est appel\u00e9e <em>zombie<\/em> et permet d\u2019inf\u00e9rer des informations sur la cible. Le principe est le suivant :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>On envoie un paquet au zombie pour lire sa valeur actuelle d\u2019IP ID.<\/li>\n\n\n\n<li>On lance le scan vers la cible, mais en usurpant l\u2019adresse IP source du zombie.<\/li>\n\n\n\n<li>Les r\u00e9ponses de la cible seront envoy\u00e9es au zombie, et non \u00e0 nous.<\/li>\n\n\n\n<li>En fonction de l\u2019\u00e9volution de l\u2019IP ID du zombie, on peut d\u00e9duire l\u2019\u00e9tat du port scann\u00e9.<\/li>\n<\/ol>\n\n\n\n<p>Trois cas peuvent se produire :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le port est ouvert : la cible r\u00e9pond avec un SYN\/ACK \u2192 le zombie, n\u2019ayant rien initi\u00e9, envoie un RST \u2192 l\u2019IP ID est incr\u00e9ment\u00e9.<\/li>\n\n\n\n<li>Si le port est ferm\u00e9 : la cible envoie un RST \u2192 le zombie ignore \u2192 IP ID inchang\u00e9.<\/li>\n\n\n\n<li>Le<strong> <\/strong>port est filtr\u00e9 : aucune r\u00e9ponse ou r\u00e9ponse ICMP \u2192 pas d\u2019incr\u00e9mentation.<\/li>\n<\/ul>\n\n\n\n<p>Enfin, on r\u00e9interroge le zombie :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si l\u2019IP ID a \u00e9t\u00e9 incr\u00e9ment\u00e9 deux fois, le port est probablement ouvert.<\/li>\n\n\n\n<li>Sinon, il est ferm\u00e9 ou filtr\u00e9.<\/li>\n<\/ul>\n\n\n\n<p>Cette m\u00e9thode d\u00e9pend du comportement de l\u2019IP ID, donc elle est peu fiable si la machine zombie a d\u2019autres connexions actives. Il est pr\u00e9f\u00e9rable de choisir une machine <em>vraiment idle<\/em>. Nmap propose un script nomm\u00e9 <code>ipidseq<\/code> pour d\u00e9tecter si les IP ID sont g\u00e9n\u00e9r\u00e9s de mani\u00e8re incr\u00e9mentale.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"scan-ack-sa\">Scan ACK (<code>-sA<\/code>)<\/h5>\n\n\n\n<p>Cette technique est utile pour diff\u00e9rencier les pare-feux stateful et stateless. Comme seuls les paquets avec le drapeau ACK sont envoy\u00e9s, les pare-feux stateless peuvent les laisser passer, tandis que les stateful v\u00e9rifieront s\u2019il existe une connexion associ\u00e9e.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"fragmentation\">Fragmentation<\/h5>\n\n\n\n<p>Cette technique permet d\u2019envoyer les paquets en fragments plus petits. Cela peut contourner des \u00e9quipements de s\u00e9curit\u00e9 qui ne g\u00e8rent pas correctement les paquets fragment\u00e9s.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"ipv6\">IPv6<\/h5>\n\n\n\n<p>Parfois ignor\u00e9 dans la configuration des pare-feux, ce protocole peut permettre de contourner certaines protections via des scans IPv6.<\/p>\n\n\n\n<p>Nmap impl\u00e9mente d\u2019autres techniques int\u00e9ressantes \u00e0 tester lors d\u2019un audit : routage source, usurpation d\u2019adresse MAC, rebond FTP (FTP bounce), etc.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"scan-des-protocole-ip\">Scan des protocole IP<\/h4>\n\n\n\n<p>Il s&rsquo;agit d&rsquo;un type de scan particulier qui ne rentre pas dans les techniques de scan de ports classiques. Le scan des protocoles IP (<code>-sO<\/code>) a pour objectif d\u2019identifier les protocoles IP support\u00e9s par la cible : ICMP, TCP, IGMP, etc.<\/p>\n\n\n\n<p>Plut\u00f4t que de scanner des ports comme dans les scans traditionnels, cette m\u00e9thode fait varier la valeur du champ Protocole (8 bits) de l&rsquo;en-t\u00eate IP, permettant de d\u00e9terminer quels protocoles sont accept\u00e9s ou filtr\u00e9s par l\u2019\u00e9quipement vis\u00e9.<\/p>\n\n\n\n<p>Voici un exemple de scan r\u00e9alis\u00e9 avec Nmap sur un routeur :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"764\" height=\"373\" src=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-scan.png\" alt=\"\" class=\"wp-image-13432\" srcset=\"https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-scan.png 764w, https:\/\/www.vaadata.com\/blog\/wp-content\/uploads\/2025\/05\/nmap-scan-300x146.png 300w\" sizes=\"(max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<p>Dans cet exemple, on peut observer que les protocoles ICMP (1), TCP (6), UDP (17) et SCTP (132) sont clairement ouverts. D&rsquo;autres comme IPv6 (41), GRE (47) ou ESP (50) apparaissent comme <code>open|filtered<\/code>, ce qui signifie que Nmap ne peut pas d\u00e9terminer avec certitude si le protocole est bien autoris\u00e9 ou simplement filtr\u00e9.<\/p>\n\n\n\n<p>Ce type de scan est surtout utile lors d\u2019audits de routeurs, pare-feux, ou autres \u00e9quipements r\u00e9seau qui pourraient laisser passer certains protocoles tout en bloquant d&rsquo;autres.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>Nmap est un outil puissant et polyvalent qui constitue un pilier essentiel dans l\u2019arsenal des professionnels de la cybers\u00e9curit\u00e9. Gr\u00e2ce \u00e0 ses nombreuses fonctionnalit\u00e9s \u2014 de la d\u00e9couverte d\u2019h\u00f4tes \u00e0 la d\u00e9tection des syst\u00e8mes d\u2019exploitation, en passant par l\u2019ex\u00e9cution de scripts automatis\u00e9s et les techniques d\u2019\u00e9vasion avanc\u00e9es \u2014 Nmap permet d\u2019obtenir une cartographie pr\u00e9cise et approfondie des r\u00e9seaux cibles.<\/p>\n\n\n\n<p>Sa capacit\u00e9 \u00e0 s\u2019adapter \u00e0 diff\u00e9rents environnements et sc\u00e9narios d\u2019audit en fait un alli\u00e9 incontournable pour identifier les vuln\u00e9rabilit\u00e9s, comprendre la configuration r\u00e9seau, et pr\u00e9parer des strat\u00e9gies de d\u00e9fense efficaces. Les fonctionnalit\u00e9s avanc\u00e9es telles que la comparaison des empreintes (fingerprints) ou le scan des protocoles IP illustrent la finesse d\u2019analyse que l\u2019on peut obtenir, m\u00eame face \u00e0 des syst\u00e8mes complexes ou prot\u00e9g\u00e9s.<\/p>\n\n\n\n<p>Enfin, le fait que Nmap int\u00e8gre un moteur de scripts extensible, avec une large biblioth\u00e8que et la possibilit\u00e9 d\u2019ajouter ses propres scripts en Lua, lui conf\u00e8re une souplesse exceptionnelle pour automatiser et personnaliser les audits, allant bien au-del\u00e0 d\u2019un simple scanner de ports.<\/p>\n\n\n\n<p>Ma\u00eetriser Nmap, c\u2019est donc s\u2019\u00e9quiper pour mieux comprendre et prot\u00e9ger les r\u00e9seaux, anticiper les attaques et renforcer la s\u00e9curit\u00e9 globale. Que ce soit pour un pentest, une analyse r\u00e9seau ou un diagnostic rapide, Nmap reste un outil de r\u00e9f\u00e9rence indispensable pour tout expert en s\u00e9curit\u00e9 informatique.<\/p>\n\n\n\n<p><strong>Source : <\/strong><\/p>\n\n\n\n<p><strong>Documentation Nmap<\/strong> : https:\/\/nmap.org\/book\/man.html <\/p>\n\n\n\n<p><strong>Auteure : Souad SEBAA &#8211; Pentester @Vaadata<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":{"0":"post-13378","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-technique"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/13378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/comments?post=13378"}],"version-history":[{"count":38,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/13378\/revisions"}],"predecessor-version":[{"id":13476,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/13378\/revisions\/13476"}],"wp:attachment":[{"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/media?parent=13378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/categories?post=13378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vaadata.com\/blog\/fr\/wp-json\/wp\/v2\/tags?post=13378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}