COMMENT ECRIRE UN TEMPLATE NUCLEI

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.

logo de 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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *