"Le terrain est souvent un meilleur capitaine que les généraux les plus prudents."
Dans l'univers de la cybersécurité offensive, certains outils deviennent des références incontestées. Nmap (network mapper) est l'un d'entre eux. Développé initialement en 1997 par Gordon Lyon, ce scanner de réseau open source s'est imposé comme la solution de référence pour la découverte et l'audit de systèmes informatiques.
Qu'est-ce que nmap ?
Nmap est un outil d'exploration réseau et d'audit de sécurité qui permet d'identifier les hôtes actifs sur un réseau, de découvrir les services exposés, de détecter les versions de logiciels utilisés et même d'identifier les systèmes d'exploitation. Sa polyvalence en fait un allié précieux tant pour les administrateurs système que pour les pentesteurs.
Contrairement aux simples scanners de vulnérabilités automatisés, nmap offre une granularité exceptionnelle dans l'analyse réseau. Il permet de comprendre réellement l'architecture d'un système d'information, d'identifier sa surface d'attaque et de détecter les failles de configuration qui pourraient être exploitées par un attaquant.
Développé à l'origine pour les systèmes Unix, nmap s'est rapidement étendu à l'ensemble des plateformes. Aujourd'hui, il tourne sur Windows, Linux, macOS, FreeBSD et de nombreux autres systèmes. Cette compatibilité multiplateforme permet aux pentesteurs de l'utiliser dans n'importe quel environnement client.
L'outil est distribué sous licence GPL, ce qui signifie que son code source est librement accessible et auditable. Cette transparence constitue un gage de confiance pour les professionnels de la sécurité qui peuvent vérifier exactement ce que fait l'outil. De nombreux contributeurs à travers le monde participent à son amélioration continue, garantissant son évolution face aux nouvelles technologies et menaces.
Pourquoi nmap est essentiel en pentest
En test d'intrusion, la phase de reconnaissance constitue le fondement de toute mission réussie. Avant d'exploiter une vulnérabilité, il faut d'abord la découvrir. Nmap excelle dans cette première étape en fournissant une cartographie détaillée du périmètre audité.

Les cabinets de cybersécurité comme Piirates utilisent nmap quotidiennement pour plusieurs raisons :
- Rapidité : capable de scanner des milliers d'hôtes en quelques minutes
- Précision : identification fine des services et versions logicielles
- Flexibilité : adapté à tous les contextes (interne, externe, applicatif, industriel)
- Extensibilité : le nmap scripting engine permet d'automatiser des vérifications complexes
- Fiabilité : utilisé et testé par des millions de professionnels dans le monde
La méthodologie de test d'intrusion repose sur plusieurs phases distinctes : reconnaissance, scanning, énumération, exploitation, post-exploitation et reporting. Nmap intervient principalement dans les trois premières phases, mais ses résultats influencent directement les étapes suivantes. Une reconnaissance incomplète ou imprécise peut conduire à manquer des vecteurs d'attaque critiques.
Dans le contexte actuel où les infrastructures deviennent de plus en plus complexes avec le cloud, les microservices et l'IoT, la capacité de nmap à s'adapter à différents environnements devient cruciale. Les pentesteurs doivent pouvoir auditer aussi bien des datacenters traditionnels que des clusters Kubernetes ou des réseaux de capteurs industriels. Nmap constitue ce dénominateur commun qui fonctionne partout.
Fonctionnement et principes de nmap
Architecture et méthode
Nmap fonctionne en envoyant des paquets réseau spécialement construits vers les cibles et en analysant les réponses reçues. Cette approche permet de déterminer l'état des ports, les services actifs et de nombreuses autres caractéristiques du système audité.
Le processus d'un scan nmap se déroule généralement en plusieurs phases :
- Découverte des hôtes : identification des machines actives sur le réseau
- Scan de ports : détection des ports ouverts, fermés ou filtrés
- Détection de services : identification des applications écoutant sur les ports
- Détection du système d'exploitation : fingerprinting pour reconnaître l'OS
- Exécution de scripts : analyse approfondie via le NSE
Les différents états de ports
Lors d'un scan, nmap peut déterminer six états possibles pour un port :
- Open : un service accepte activement les connexions sur ce port
- Closed : le port est accessible mais aucune application n'écoute
- Filtered : un pare-feu ou un filtre empêche nmap de déterminer l'état
- Unfiltered : le port est accessible mais nmap ne peut pas déterminer s'il est ouvert ou fermé
- Open|filtered : impossible de distinguer entre ouvert et filtré
- Closed|filtered : impossible de distinguer entre fermé et filtré
Cette granularité d'analyse permet aux pentesteurs de comprendre non seulement quels services sont exposés, mais aussi quelles protections sont en place.
La compréhension de ces états est fondamentale pour interpréter correctement les résultats d'un scan. Par exemple, un port "filtered" peut indiquer la présence d'un pare-feu qui mérite une attention particulière, tandis qu'un port "open" constitue une porte d'entrée potentielle dans le système.
Techniques d'évasion et discrétion
Au-delà des scans standards, nmap propose de nombreuses techniques pour contourner les systèmes de détection et de protection. Ces capacités sont essentielles lors de pentests en boîte noire où l'objectif est de simuler une attaque réelle.
La fragmentation de paquets permet de diviser les requêtes en petits fragments pour échapper aux filtres basiques. L'utilisation de leurres (decoys) crée du bruit en faisant croire que plusieurs adresses IP scannent simultanément la cible. Le spoofing d'adresse MAC peut être utile dans certains contextes pour contourner les restrictions basées sur le matériel.
Les options de timing (-T0 à -T5) permettent d'ajuster la vitesse du scan en fonction du contexte. Un scan paranoid (-T0) envoie un paquet toutes les cinq minutes, ce qui le rend pratiquement indétectable mais extrêmement lent. À l'inverse, un scan insane (-T5) bombarde la cible de paquets mais se fait systématiquement repérer par les IDS modernes.
Interprétation des résultats
Savoir lancer un scan nmap est une chose, interpréter correctement ses résultats en est une autre. Un pentesteur expérimenté sait faire la différence entre un faux positif et une véritable vulnérabilité. Il comprend également les implications de sécurité de chaque découverte.
Par exemple, la présence d'un service SSH sur le port 22 n'est pas nécessairement problématique. En revanche, si ce service utilise une version obsolète connue pour contenir des vulnérabilités, ou s'il accepte l'authentification par mot de passe sans limitation de tentatives, cela devient un risque significatif.
L'analyse des bannières de services révèle souvent des informations précieuses sur l'infrastructure : versions de logiciels, systèmes d'exploitation, noms d'hôtes internes. Ces métadonnées permettent de construire une image précise de l'environnement cible et d'identifier les vecteurs d'attaque les plus prometteurs.
Toutes nos missions sont spécifiques
Parce que vos enjeux le sont !
Le pentest est avant tout une philosophie qui, couplé avec nos compétences techniques multiples peut s’adapter aux diffférentes cibles.
Les différents types de scans nmap
TCP SYN scan (scan furtif)
Le scan TCP SYN, souvent appelé "half-open scan", constitue la technique de scan par défaut de nmap. Il envoie un paquet SYN (synchronisation) et analyse la réponse sans compléter la connexion TCP. Cette approche présente l'avantage d'être plus discrète qu'un scan complet, car de nombreux systèmes ne journalisent pas ces tentatives de connexion incomplètes.
Commande : nmap -sS 192.168.1.0/24
Ce scan nécessite des privilèges root ou administrateur car il manipule directement les paquets réseau au niveau IP.
TCP connect scan
Lorsque l'utilisateur ne dispose pas des privilèges nécessaires pour envoyer des paquets bruts, nmap utilise le scan TCP connect. Cette technique établit une connexion TCP complète avec le port cible, ce qui la rend plus facilement détectable par les systèmes de défense.
Commande : nmap -sT 192.168.1.0/24
UDP scan
Contrairement aux scans TCP, le scan UDP permet de détecter les services qui utilisent le protocole UDP comme DNS, DHCP ou SNMP. Ces services sont souvent négligés lors des audits, ce qui en fait des cibles potentielles intéressantes.
Commande : nmap -sU 192.168.1.0/24
Le scan UDP est généralement plus lent car il nécessite d'attendre des délais de timeout pour déterminer si un port est ouvert ou filtré.
Scans avancés et évasion
Nmap propose également des techniques de scan plus sophistiquées pour contourner les systèmes de détection d'intrusion :
- TCP ACK scan : pour cartographier les règles de pare-feu
- TCP FIN, NULL et XMAS scans : techniques furtives exploitant des subtilités du protocole TCP
- Fragmentation de paquets : pour échapper aux filtres basiques
- Timing personnalisé : adaptation de la vitesse de scan pour éviter la détection
Les scans FIN, NULL et XMAS exploitent une particularité du standard TCP/IP. Selon la RFC 793, un système recevant un paquet avec des flags inhabituels sur un port fermé devrait répondre avec un RST. Sur un port ouvert, il ne devrait pas y avoir de réponse. Cette subtilité permet de scanner discrètement, car ces paquets ne ressemblent pas à des tentatives de connexion classiques.
Le scan ACK est particulièrement utile pour cartographier les règles de pare-feu. Plutôt que de déterminer si un port est ouvert ou fermé, il indique si le port est filtré ou non. Cette information aide à comprendre la topologie réseau et l'architecture de sécurité mise en place.
Randomisation : mélanger l'ordre des cibles et des ports pour éviter les patterns
nmap --randomize-hosts -p- --random-ports target-network.com
Source port spoofing : utiliser des ports sources spécifiques souvent autorisés
nmap --source-port 53 target-server.local
Data length : modifier la taille des paquets pour échapper aux signatures
nmap --data-length 25 suspicious-target.com
Idle scan : utiliser une machine tierce comme rebond (scan zombie)
nmap -sI zombie.host.com target.vulnerable.com
Le idle scan, ou zombie scan, représente l'une des techniques les plus furtives. Elle exploite un hôte tiers (le "zombie") qui ne sait pas qu'il participe au scan. Nmap analyse les numéros de séquence IP du zombie pour déduire si des ports sont ouverts sur la cible sans jamais envoyer de paquets directement depuis sa propre adresse IP.
IPv6 et nouveaux protocoles
Avec l'adoption croissante d'IPv6, nmap a évolué pour supporter ce protocole. Le scan d'espaces d'adressage IPv6 présente des défis uniques en raison de l'immensité de l'espace d'adressage. Scanner un réseau /64 de manière exhaustive prendrait des milliers d'années.
Les pentesteurs doivent donc adapter leur approche :
nmap -6 -sV target.ipv6.address.com
Certaines organisations déploient IPv6 sans appliquer les mêmes règles de sécurité que sur IPv4, créant ainsi des vulnérabilités involontaires. Un audit complet doit systématiquement vérifier les deux protocoles.

Indépendance totale

Expertise

Professionnalisme
Mesurez et améliorez la sécurité de votre entreprise !
Livrable : Rapport de test d’intrusion
Une feuille de route claire et opérationnelle
Un livrable conçu pour vous guider dans la correction des vulnérabilités comprenant :
- Synthèse managériale : vue d’ensemble du niveau de sécurité, des points forts et axes d’amélioration.
- Analyse technique : vulnérabilités identifiées, preuves d’exploitation et impact potentiel.
- Actions de remédiations : solutions concrètes et priorisées des corrections.
- Accompagnement : conseils pour améliorer durablement votre sécurité.
Un rapport actionnable, conçu pour la direction et les équipes techniques.
Nous contacter
Nmap et les tests d'intrusion réseau
Reconnaissance externe
Dans le cadre d'un pentest externe, nmap constitue l'outil privilégié pour découvrir les services exposés sur internet. Les pentesteurs de Piirates utilisent nmap pour identifier :
- Les serveurs web et leurs versions (apache, nginx, IIS)
- Les services d'authentification (SSH, RDP, VPN)
- Les serveurs de messagerie (SMTP, POP3, IMAP)
- Les bases de données exposées accidentellement
- Les services d'administration à risque (Telnet, FTP)
Une commande typique pour un audit externe pourrait être :
nmap -sV -sC -p- --min-rate 1000 -oA pentest_externe target.com
Cette commande effectue un scan complet des 65535 ports TCP, détecte les versions de services, exécute les scripts par défaut et génère un rapport détaillé dans plusieurs formats.
Audit interne et mouvements latéraux
Lors d'un test d'intrusion interne, nmap permet de cartographier l'ensemble du réseau local pour identifier les cibles prioritaires et les chemins d'escalade de privilèges. Les pentesteurs recherchent notamment :
- Les contrôleurs de domaine Active Directory
- Les serveurs de fichiers avec des partages ouverts
- Les imprimantes et équipements réseau mal configurés
- Les anciens serveurs Windows avec SMBv1 activé
- Les services de management (SNMP avec community strings par défaut)
La segmentation réseau peut être évaluée en utilisant nmap pour tenter d'accéder à différents sous-réseaux et vérifier l'efficacité des règles de filtrage.
Détection des vulnérabilités réseau
Au-delà de la simple découverte, nmap peut identifier des failles de sécurité connues grâce à son moteur de scripts. Par exemple, la détection de la vulnérabilité EternalBlue (MS17-010) qui a été exploitée par WannaCry :
nmap --script smb-vuln-ms17-010 -p445 192.168.1.0/24
Cette capacité à détecter rapidement des vulnérabilités critiques fait de nmap un outil précieux pour prioriser les efforts de remédiation.
Analyse de la configuration réseau
Au-delà de l'identification des hôtes et services, nmap peut révéler des informations précieuses sur l'architecture réseau :
Traceroute avancé : cartographie du chemin réseau jusqu'à la cible
nmap --traceroute --script traceroute-geolocation target-server.com
Détection de proxy et NAT : identification des équipements d'infrastructure
nmap -sV --script http-proxy-brute,nat-pmp-info target-network.local
Analyse de routage : compréhension de la topologie réseau
nmap -sn --traceroute 192.168.1.0/24
Ces informations permettent aux pentesteurs de comprendre la segmentation réseau et d'identifier les chemins potentiels pour les mouvements latéraux une fois qu'un premier point d'entrée a été compromis.
Découverte de services critiques
Certains services représentent des cibles prioritaires lors d'un pentest réseau. Nmap permet de les identifier rapidement :
Services d'authentification : SSH, RDP, VPN qui peuvent être bruteforcés
nmap -p 22,3389,1194 --script ssh-auth-methods,rdp-enum-encryption 10.0.0.0/8
Services de base de données : MySQL, PostgreSQL, MSSQL exposés par erreur
nmap -p 3306,5432,1433 --script mysql-info,pgsql-databases,ms-sql-info network.corp.local
Services de gestion : SNMP, IPMI qui contiennent souvent des credentials par défaut
nmap -sU -p 161,623 --script snmp-brute,ipmi-version target-mgmt.local
La découverte d'un service de base de données exposé directement sur internet constitue généralement une découverte critique. Ces services ne devraient jamais être accessibles depuis l'extérieur et leur présence indique une erreur de configuration majeure.
Énumération Active Directory
Dans les environnements d'entreprise utilisant Active Directory, nmap peut fournir des informations précieuses :
nmap -p 389,636,3268,3269,88 --script ldap-rootdse,krb5-enum-users domain-controller.company.local
Ces scans permettent d'identifier les contrôleurs de domaine, d'énumérer les utilisateurs, de découvrir les noms de domaine et les configurations LDAP. Ces informations servent ensuite de base pour des attaques plus ciblées comme le password spraying ou le kerberoasting.
Détection de services cachés
Certaines organisations tentent d'obscurcir leurs services en utilisant des ports non standard. Nmap peut détecter ces tentatives de "security through obscurity" :
nmap -p- -sV --version-intensity 9 target-server.com
L'option --version-intensity contrôle l'agressivité de la détection de version. Une valeur de 9 (maximum) force nmap à utiliser toutes les sondes disponibles pour identifier précisément le service, même s'il s'exécute sur un port inhabituel.
Analyse de la sécurité périmétrique
L'audit du périmètre externe permet d'évaluer l'exposition d'une organisation sur internet. Les pentesteurs Piirates utilisent nmap pour identifier :
- Les services redondants exposés sur plusieurs adresses IP
- Les anciennes infrastructures oubliées (shadow IT)
- Les environnements de développement ou de test accessibles publiquement
- Les sous-domaines avec des configurations de sécurité différentes
- Les services cloud mal configurés
Mesurez et améliorez la sécurité de votre entreprise !
Le nmap scripting engine (NSE) pour aller plus loin
Présentation du NSE
Le nmap scripting engine constitue l'une des fonctionnalités les plus puissantes de l'outil. Il permet d'automatiser des tâches complexes via des scripts écrits en Lua, un langage de programmation léger et efficace.
Actuellement, nmap est distribué avec plus de 600 scripts répartis en plusieurs catégories :
- auth : authentification et bruteforce de credentials
- broadcast : découverte via protocoles de broadcast
- brute : attaques par force brute
- default : scripts sûrs et utiles exécutés par défaut
- discovery : découverte approfondie d'informations
- dos : tests de déni de service (à utiliser avec précaution)
- exploit : exploitation de vulnérabilités connues
- fuzzer : tests de fuzzing
- intrusive : scripts potentiellement dangereux pour les cibles
- malware : détection de malwares et backdoors
- safe : scripts garantis sans danger
- version : détection avancée de versions
- vuln : détection de vulnérabilités
Scripts essentiels pour le pentesting
Voici une sélection de scripts particulièrement utiles lors des missions de test d'intrusion :
vulners : base de données de vulnérabilités à jour
nmap -sV --script vulners --script-args mincvss=5.0 target.com
vulscan : scan multi-bases de vulnérabilités
nmap -sV --script vulscan target-server.local
smb-enum-shares : énumération de partages SMB
nmap --script smb-enum-shares -p445 windows-server.local
ssl-heartbleed : détection de la faille Heartbleed
nmap --script ssl-heartbleed -p443 vulnerable-site.com
http-wordpress-enum : énumération d'installation WordPress
nmap --script http-wordpress-enum --script-args search-limit=10 -p80 wordpress-site.com
Création de scripts personnalisés
Les pentesteurs expérimentés développent leurs propres scripts NSE pour répondre à des besoins spécifiques. Un script NSE basique comprend :
-- Métadonnées du script
description = [[
Description de la fonctionnalité du script
]]
author = "Nom du développeur"
license = "Same as Nmap"
categories = {"safe", "discovery"}
-- Fonction principale
action = function(host, port)
-- Code du script
return "Résultat du scan"
end
Cette extensibilité permet d'adapter nmap à des contextes très spécifiques rencontrés lors de missions complexes.
Développement et intégration de scripts
Pour les besoins avancés, les pentesteurs peuvent développer leurs propres scripts. La structure d'un script NSE comprend plusieurs composants :
-- En-tête et métadonnées
description = [[
Script personnalisé pour détecter une
vulnérabilité spécifique
dans l'application XYZ
version 2.3.1
]]
author = "Équipe Piirates"
license = "Same as Nmap"
categories = {"intrusive",
"vuln"}
-- Déclaration des ports
cibles
portrule = function(host,
port)
return port.number
== 8080 and port.protocol
== "tcp"
end
-- Fonction principale
action = function(host, port)
local result = {}
-- Envoi d'une requête personnalisée
local response =
http.get(host, port, "/vulnerable_endpoint")
if response and string.match
(response.body, "pattern_vulnérable") then
table.insert(result,
"Vulnérabilité détectée!")
return
stdnse.format_output(true, result)
end
return "Système non vulnérable"
end
Scripts d'exploitation
Certains scripts NSE vont au-delà de la simple détection et peuvent exploiter les vulnérabilités découvertes. Ces scripts sont à utiliser avec précaution et uniquement dans le cadre d'un pentest autorisé :
ms-sql-xp-cmdshell : exécution de commandes sur SQL Server
nmap --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=password,ms-sql-xp-cmdshell.cmd="ipconfig" -p1433 sql-server.local
smb-psexec : exécution de commandes à distance via SMB
nmap --script smb-psexec --script-args smbuser=admin,smbpass=password,smbdomain=CORP -p445 windows-target.local
oracle-brute-stealth : bruteforce furtif de comptes Oracle
nmap --script oracle-brute-stealth -p1521 oracle-db.company.local
Ces capacités d'exploitation font de nmap un outil qui dépasse la simple reconnaissance pour entrer dans le domaine du post-exploitation.
Automatisation et chaînage de scripts
Les scripts NSE peuvent être chaînés pour créer des workflows d'audit automatisés. Par exemple, découvrir les hôtes Windows, énumérer les partages SMB, puis tester les comptes par défaut :
nmap -p445 --script "smb-os-discovery and smb-enum-shares and smb-security-mode" 192.168.1.0/24
Cette approche par couches permet de construire progressivement une compréhension approfondie de l'environnement cible.
Scripts pour la détection de malwares
Nmap peut également détecter la présence de backdoors et malwares sur des systèmes compromis :
http-malware-host : détection de serveurs web compromis
nmap --script http-malware-host -p80,443 suspected-compromised.local
smb-vuln-conficker : détection du ver Conficker
nmap --script smb-vuln-conficker -p445 windows-network.local
dns-blacklist : vérification dans les listes noires de domaines malveillants
nmap --script dns-blacklist --script-args dns-blacklist.ip=target-ip
Ces scripts permettent d'identifier rapidement une compromission et d'évaluer l'étendue d'une infection.
Performance et optimisation des scripts
Les scripts NSE peuvent impacter significativement la durée totale d'un scan. Pour optimiser les performances :
- Limiter l'exécution aux ports pertinents avec portrule
- Utiliser des timeouts appropriés avec --script-timeout
- Paralléliser l'exécution avec --script-threads
- Désactiver les scripts inutiles pour le contexte
- Créer des catégories personnalisées de scripts
Une bonne pratique consiste à créer des profils de scan adaptés à chaque type d'audit : pentest externe, audit interne, scan IoT, vérification industrielle, etc.
Base de données et mise à jour des scripts
Nmap maintient une base de données de scripts constamment mise à jour. Pour bénéficier des derniers scripts et corrections :
nmap --script-updatedb
Cette commande télécharge les dernières versions des scripts NSE depuis le dépôt officiel. Il est recommandé de l'exécuter régulièrement pour disposer des détections de vulnérabilités les plus récentes.
Scripts communautaires et sources externes
Au-delà des scripts officiels, la communauté développe constamment de nouveaux scripts disponibles sur GitHub et d'autres plateformes. Ces scripts peuvent être intégrés dans le répertoire scripts de nmap pour être utilisés comme les scripts standards.
Cependant, il convient de vérifier soigneusement le code de ces scripts tiers avant de les utiliser en production. Un script malveillant pourrait compromettre la machine qui effectue le scan ou révéler des informations sensibles.
Ce que nous ne faisons pas
(Liste non exhaustive)
Piratage de boite mail
Piratage comptes réseaux sociaux
Espionnage
Exfiltration de sms
Récupération de Cryptomonnaies
Prise en main à distance de véhicules
Suivi GPS de véhicule
Envoyez nous un ping
Un suivi régulier permet d’anticiper les nouvelles menaces et de renforcer vos défenses.
Un pentest doit être réalisé au moins une fois par an ou après une mise à jour majeure, un incident de sécurité ou une exigence réglementaire.
Le prix d’un pentest varie selon le périmètre testé, la complexité et la durée de la mission.
Demandez un devis pour une estimation adaptée à vos besoins.
Non, les tests sont réalisés dans un cadre contrôlé pour éviter toute perturbation.
Nous définissons ensemble les limites et périodes d’intervention pour assurer la continuité de vos services.
Tout dépend de la complexité des vulnérabilités.
Certaines peuvent être corrigées immédiatement (quickwin), d’autres nécessitent des actions plus profondes.
Découvrez comment utiliser nmap en pentest pour auditer vos systèmes web, réseaux, IoT et industriels. Guide expert par Piirates, cabinet de cybersécurité.



