
I. Présentation
Je vous présente dans ce petit article 8 scripts NSE pour diagnostiquer et sécuriser votre système d’information rapidement avec Nmap.
Pour rappel, Nmap est un outil open-source de cartographie réseau et de recherche de vulnérabilité. En plus de ses très nombreuses fonctionnalités, il est installé avec des scripts NSE (Nmap Scripting Engine) qui étendent ses fonctionnalités, souvent pour vérifier des points précis dans des protocoles et services.
Les scripts NSE de Nmap sont des outils puissants pour vérifier la présence de faiblesses, de défauts de configuration ou de vulnérabilités sur un SI. Leur intégration dans Nmap évite d’avoir à maitriser plusieurs outils, un seul suffit pour effectuer de multiples vérifications.
Pour sécuriser un système d’information, la première étape est bien sûr d’être au fait de son état général de sécurité. Les audits, scans réseau et diagnostiques réalisés via Nmap sont donc le point de départ.
Dans cet article, je vous partage mon top des scripts Nmap à connaitre en tant qu’administrateur système, réseau, DSI ou RSSI pour sécuriser vos réseaux simplement.
Administrateur système, réseau ou étudiant ? Formez-vous à la cybersécurité !
Pour tirer le meilleur parti de cet outil open-source afin de diagnostiquer et sécuriser votre système d’information, j’ai écrit pour vous un livre entier dédié à Nmap. Au programme, 160 pages avec exemples et analyses approfondies pour vous accompagner à la maitrise de cet outil, que vous soyez étudiants, administrateur système, réseau, pentester ou même RSSI :
https://bit.ly/ITC-NMAP-LIVRE
II. Le top 8 des scripts NSE
Vous voulez référencer rapidement toutes les applications web de votre SI ? Pas de problème, les scripts NSE http-headers et http-title sont fait pour cela. Ils permettent d’afficher dans leur sortie le titre de la page et les en-têtes de tous les services web (HTTP/HTTPS) qu’il scanne. Voici comment les utiliser :
# Récupérer les bannières et en-têtes des services web
$ nmap 10.10.11.0/24 -p 80,443,8080,8081,8443 –script http-headers, http-title
Nmap scan report for 10.10.11.59
PORT STATE SERVICE
80/tcp open http
| http-headers:
| Server: nginx/1.18.0 (Ubuntu)
| Date: Mon, 01 Sep 2025 22:14:40 GMT
| Content-Type: text/html
| Content-Length: 154
| Connection: close
| Location: http://strutted.htb/
|
|_ (Request type: GET)
|_http-title: It works!
Nmap scan report for 10.10.11.60
PORT STATE SERVICE
80/tcp open http
| http-headers:
| Date: Mon, 01 Sep 2025 22:14:41 GMT
| Server: Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12
| Location: http://frizzdc.frizz.htb/home/
| Content-Length: 315
| Connection: close
| Content-Type: text/html; charset=iso-8859-1
|
|_ (Request type: GET)
|_http-title: Admin Page
Comme vous le voyez, nous récupérons ici les en-têtes des services web sur les ports scannés. Cela permet notamment d’identifier des technologies obsolètes, mais aussi des noms de vhost (sous-domaine) pour identifier les sites web hébergés.
Ces scripts sont donc parfaits pour lister les services et applications web de votre système d’information. Vous trouverez surement le nom d’une application que vous pensiez décommissionnée, des versions de services web obsolètes ou même des équipements encore inconnus ! Attention toutefois à bien cibler les bons réseaux et ports, et n’oubliez pas qu’il peut y avoir plusieurs vhosts sur un même service web.
B. Recherche de fuites ou mots-clés : http-grep
Ce script intègre un robot d’indexation (crawler) qui explore un site web et tente d’identifier des chaînes de caractère. Idéal, par exemple, pour identifier une adresse e-mail, des pages de login ou une information qui ne devrait pas être accessible sans authentification !
Astuce : Si vous disposez déjà d’une liste de sous-domaines, ce qui vous permet de cibler différents vhosts d’un même service web, mettez-les dans un fichier (un par ligne) et utilisez l’option -iL au lieu de cibler une IP ou un CIDR.
Voici un exemple d’utilisant basée sur fichier d’hôte/sous-domaine plutôt qu’un CIDR. Je recherche ici des adresses e-mails :
# Recheche d’adresses email via http-grep
$ nmap -iL vhosts.txt -p 80,443,8080,8081,8443 –script http-grep –script-args builtins=email
Nmap scan report for frizzdc.frizz.htb (10.10.11.60)
PORT STATE SERVICE
80/tcp open http
| http-grep:
| (3) http://frizzdc.frizz.htb:80/home/js/simplyCountdown.js:
| (3) email:
| + [email protected]
| + [email protected]
| + [email protected]
J’ai utilisé l’option builtin du script, qui intègre des filtres préconstruits (email, phone, mastercard, discover, visa, amex, ssn, ip addresses). Je vous invite à consulter la page d’aide de ce dernier si vous souhaitez utiliser d’autres options ou faire des recherches spécifiques : Nmap Script http-grep.
Voici d’autres idées d’informations intéressantes à rechercher : des noms de domaine, des adresses IP, des noms d’utilisateurs, voire des mots de passe ! Voici un second exemple d’utilisation :
# Recheche d’un mot dans l’URL et les pages via http-grep
$ nmap frizzdc.frizz.htb -p 80 –script http-grep –script-args match=”login”
Nmap scan report for frizzdc.frizz.htb (10.10.11.60)
PORT STATE SERVICE
80/tcp open http
| http-grep:
| (1) http://frizzdc.frizz.htb:80/Gibbon-LMS/:
| (1) User Pattern 1:
|_ + login
C. Sauvegarde et configurations accessibles : http-config-backup
Vous cherchez à identifier des fichiers de sauvegarde ou de configuration oubliés sur vos services web et mal protégés ? Le script NSE http-config-backup est fait pour cela. Il permet de chercher des noms de fichiers couramment utilisés qui pourraient être exposés publiquement. Il se base notamment sur des listes noms et d’extensions courantes pour ce type de fichier. Voici comment l’utiliser :
# Rechercher des fichiers de sauvegarde sur tous les services web
$ nmap 192.168.56.0/24 -p 80,443,8080,8081,8443 –script http-config-backup
Nmap scan report for 192.168.56.129
PORT STATE SERVICE REASON
80/tcp open http syn-ack
| http-config-backup:
| /backup.zip HTTP/1.1 200 OK
|_ /config.php~ HTTP/1.1 200 OK
Voilà de quoi éviter de graves fuites de données. Encore une fois, assurez-vous de bien cibler les réseaux et ports appropriés pour une analyse complète et à exécuter ce script régulièrement.
D. Rechercher les accès FTP anonyme : ftp-anon
L’accès anonyme au service FTP est monnaie courante sur de nombreux équipements, notamment les imprimantes et scanner. Si vous souhaitez identifier les serveurs FTP qui permettent un accès anonyme, vous pouvez utiliser le script NSE ftp-anon. Il permet de scanner les serveurs FTP pour voir s’ils permettent un accès sans authentification, mais aussi lister le contenu accessible sur de tels services :
# Rechercher des services FTP non protégés
$ nmap 10.10.11.0/24 -p 21 –script ftp-anon
Nmap scan report for 10.10.11.59
PORT STATE SERVICE
21/tcp open ftp
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Canonicalized by Nmap to: ftp://10.10.11.59/
Ce script est rapide et utile pour identifier les serveurs FTP mal configurés, qui pourraient servir de porte d’entrée à des attaques. N’oubliez pas que le FTP est un service d’échange de fichiers : un accès anonyme permettrait à n’importe qui sur le réseau, y compris un attaquant, de déposer des fichiers malveillants ou de récupérer ceux disponibles.
E. Identifier les mots de passe faibles : ssh-brute
Êtes-vous sûr que tous les accès SSH de votre SI sont correctement sécurisés ? Il existe toujours un équipement avec des identifiants faibles ou par défaut qui traine. Si vous souhaitez tester la robustesse des mots de passe SSH sur vos serveurs, c’est le script NSE ssh-brute qu’il faut utiliser. Il permet de réaliser une attaque par force brute sur les comptes SSH pour identifier les mots de passe faibles :
# Réaliser une attaque par bruteforce sur les services SSH
$ nmap 10.10.11.0/24 -p 22 –script ssh-brute
Nmap scan report for 10.10.11.59
PORT STATE SERVICE
22/tcp open ssh
| ssh-brute:
| Accounts:
| root:password – Valid credentials
| Statistics: Performed 1663 guesses in 604 seconds, average tps: 20
Ce script est utile pour identifier les comptes avec des mots de passe faibles ou par défaut. Assurez-vous de l’utiliser de manière responsable et uniquement sur des systèmes que vous êtes autorisé à tester.
F. Informations et communauté SNMP : snmp-info et snmp-brute
Le protocole SNMP permet de récupérer des informations techniques à propos d’un service ou d’un système d’exploitation. Très souvent, même systématiquement, les services SNMP sont activés par défaut sur de nombreux équipements et protégés à l’aide de communauté simples à trouver comme public, private, admin, secret…
Dans bien des cas, l’accès à ces services permet de récupérer des informations utiles comme des noms de technologies, utilisateurs, versions, etc. Si vous cherchez à obtenir des informations sur les services SNMP de votre SI, utilisez le script snmp-info :
$ nmap 10.13.37.11 -p 161 –script snmp-info
PORT STATE SERVICE VERSION
161/udp open snmp SNMPv1 server; net-snmp SNMPv3 server (public)
| snmp-info:
| enterprise: net-snmp
| engineIDFormat: unknown
| engineIDData: 423f5e76cd7abe5e00000000
| snmpEngineBoots: 6
|_ snmpEngineTime: 2d18h59m10s
| snmp-interfaces:
| lo
| Type: softwareLoopback Speed: 10 Mbps
| Traffic stats: 48.46 Mb sent, 48.46 Mb received
| Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
| MAC address: 00:50:56:b9:06:ef (VMware)
| Type: ethernetCsmacd Speed: 1 Gbps
|_ Traffic stats: 1.73 Gb sent, 612.83 Mb received
| snmp-netstat:
| TCP 0.0.0.0:22 0.0.0.0:0
[…]
Ce script est utile pour récupérer tout ce qui peut l’être des services SNMP accessibles, ce qui peut aider à la gestion du réseau ou à l’identification des vulnérabilités. Au préalable, vous souhaiterez peut-être effectuer un brute force des communautés classiques configurées par défaut, utilisez alors le script NSE snmp-brute :
$ nmap 192.168.56.169 -sU -p 161 –script snmp-brute
PORT STATE SERVICE
161/udp open snmp
| snmp-brute:
| admin – Valid credentials
|_ secret – Valid credentials
Pour toutes les opérations de bruteforce, Nmap dispose de ses propres listes. Mais en apprenant à utiliser les options de scripts NSE, vous pourrez spécifier vos propres listes ! À tout hasard, avec le nom de votre entreprise ou le mot de passe par défaut et historique de l’équipe informatique.
III. Conclusion
Vous l’aurez compris, ces scripts NSE correspondent aux techniques de cartographie les plus utilisées, mais aussi à certaines de vulnérabilités très communes découvertes au sein de système d’information internes. Néanmoins, nous n’avons ici vu qu’une toute petite partie des capacités de Nmap.
Cartographie complète du système d’information, évaluation de la politique de filtrage, recherche de vulnérabilité… C’est un outil puissant et très utile. Cependant, lorsqu’il est utilisé avec ses options par défaut ou sans connaissance de son fonctionnement interne, des faux négatifs, faux positifs, voir effets de bords indésirables peuvent apparaitre.
Obtenir mon livre : Maîtrisez Nmap : Cartographie réseau et scan de vulnérabilité
Co-fondateur d’IT-Connect.fr.
Auditeur/Pentester chez Orange Cyberdéfense.
