Aujourd’hui, nous allons explorer l’un des outils les plus puissants du monde de la chasse aux bugs et de la cybersécurité offensive : Nuclei.

Si vous vous êtes déjà intéressé à l’analyse des vulnérabilités ou à l’automatisation, vous avez probablement entendu parler de Nuclei, développé par ProjectDiscovery. C’est un scanner de vulnérabilités incroyablement rapide et flexible qui permet aux chercheurs en sécurité et aux hackers éthiques d’automatiser des analyses à grande échelle.
Mais ce n’est pas tout : au-delà de la simple utilisation de Nuclei, apprendre à créer vos propres modèles vous donne un avantage considérable. Vous pouvez ainsi créer des détections de vulnérabilités personnalisées, adapter les analyses à des cibles spécifiques et automatiser vos découvertes de sécurité uniques, à l’instar d’un testeur d’intrusion professionnel.
Dans cet article, nous vous guiderons pas à pas dans la création d’un modèle Nuclei, la compréhension de sa structure et l’adoption des bonnes pratiques pour une utilisation optimale.
Qu’est-ce qu’un modèle Nuclei ?
Un modèle Nuclei est un simple fichier YAML (.yaml ou .yml) qui décrit comment détecter une vulnérabilité spécifique.
En résumé, il indique à Nuclei :
- Quelle requête envoyer ?
- Quelle réponse attendre ?
- Comment déterminer si une vulnérabilité existe.
Chaque modèle contient :
- Des métadonnées (informations sur le modèle)
- Une ou plusieurs requêtes (HTTP, TCP, DNS, SSL, etc.)
- Des correspondances qui définissent les modèles ou les réponses indiquant une vulnérabilité.
Voici un exemple de modèle simple qui détecte un répertoire .git exposé :
id: exposed-git
info:
name: Exposed .git Directory
author: joseph
severity: medium
description: Detects exposed .git directories which may contain sensitive information
tags: git,exposure
requests:
- method: GET
path:
- "{{BaseURL}}/.git/HEAD"
matchers:
- type: word
words:
- "ref: refs/heads"
Explication ligne par ligne :
id → Identifiant unique de votre modèle
info → Métadonnées telles que le nom, l’auteur, la gravité et la description
requests → Requêtes effectuées par Nuclei
method → Méthode HTTP utilisée (GET, POST, etc.)
path → Chemin d’URL à tester ({{BaseURL}} est automatiquement remplacé par l’URL de la cible)
matchers → Conditions utilisées pour vérifier l’existence de la vulnérabilité (ex. : texte de la réponse, code d’état, expression régulière)
Comprendre les matchers :
Les matchers définissent la logique qui détermine si une vulnérabilité est détectée en fonction de la réponse.
Types de matchers courants :
word → Recherche des mots-clés spécifiques dans la réponse
regex → Utilise des expressions régulières pour la correspondance de modèles
status → Vérifie les codes d’état HTTP spécifiques (ex. : 200, 403)
dsl → Permet des expressions plus avancées (ex. : longueur du contenu, en-têtes, conditions du corps)
Exemple :
matchers:
- type: status
status:
- 200
- type: word
words:
- "Welcome"
Cela signifie que la détection est réussie si la page renvoie un code 200 OK et contient le mot « Bienvenue ».
Variables et espaces réservés
Nuclei inclut des variables intégrées telles que :
{{BaseURL}} → L’URL cible complète
{{Hostname}} → Le nom d’hôte de la cible
{{RootURL}} → La racine du domaine
Vous pouvez également créer des variables personnalisées pour les requêtes dynamiques ou les modèles plus complexes.
Test et validation de votre modèle
Une fois votre modèle prêt, enregistrez-le dans le fichier :
~/.local/nuclei-templates/
Ensuite, testez-le en utilisant :
nuclei -t ~/path/to/template.yaml -u https://target.com
Cette commande vous permet de vérifier le bon fonctionnement de votre modèle avant de le déployer sur des analyses à grande échelle ou de le partager publiquement.
quelques bonnes pratiques pour la création de modèles :
Utilisez des identifiants clairs et uniques
Incluez systématiquement une description et des balises pertinentes
Testez sur des environnements hors production
Évitez les requêtes destructives (comme DELETE ou PUT)
Contribuez à la communauté ProjectDiscovery en partageant vos modèles de qualité
Conclusion :
Créer vos propres modèles Nuclei, c’est comme concevoir votre propre scanner de vulnérabilités.
Cela peut paraître technique au premier abord, mais une fois la structure comprise, c’est une compétence incroyablement puissante et réutilisable.
En maîtrisant la création de modèles Nuclei, vous pouvez :Identifier les vulnérabilités spécifiques à vos cibles
Gagner du temps lors des tests d’intrusion
Et surtout, contribuer à un écosystème de cybersécurité plus sûr et plus proactif
Alors, la prochaine fois que vous utiliserez Nuclei , ne vous contentez pas des modèles existants : créez les vôtres et automatisez vos découvertes comme un pro, bye !
Laisser un commentaire