Post

Nuclei & OpenVAS : scanne tes vulnérabilités avant les autres

Nuclei & OpenVAS : scanne tes vulnérabilités avant les autres

Tu n’as pas besoin d’attendre qu’un pentester trouve tes failles. Nuclei et OpenVAS te permettent de scanner tes propres infrastructures gratuitement, de manière répétée et automatisée. Nuclei est rapide et basé sur des templates YAML. OpenVAS est plus lourd mais plus complet. Ensemble, ils couvrent la majorité des vulnérabilités connues. Cet article te montre comment les installer, les utiliser et intégrer ça dans ta routine de sécurité.

Pourquoi scanner soi-même ?

La majorité des breaches exploitent des CVE publiques depuis des mois. Si tu scannes régulièrement, tu corriges avant l’attaquant. C’est aussi un prérequis pour tout audit sérieux.

Deux outils complémentaires :

 NucleiOpenVAS (GVM)
ApprocheTemplates HTTP/networkVuln DB + moteur NVT
VitesseTrès rapideLent (complet)
InstallationUn binaireSuite lourde
Courbe d’apprentissageFaibleMoyenne
RésultatsMatch/miss par templateScores CVSS détaillés
Idéal pourCI/CD, scans rapidesAudits complets
Maintenance templatesCommunauté très activeMises à jour NVT

L’idéal : Nuclei pour le continu, OpenVAS pour le périodique.

Nuclei

Installation

1
2
3
4
5
6
# Via Go
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Ou binaire direct
curl -sL https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_Linux_x86_64.zip -o nuclei.zip
unzip nuclei.zip && sudo mv nuclei /usr/local/bin/

Mise à jour des templates

1
nuclei -update-templates

Les templates sont stockés dans ~/nuclei-templates/. La communauté en ajoute quotidiennement.

Scan basique

1
2
3
4
5
6
7
8
9
10
11
# Scan un seul host
nuclei -u https://target.example.com

# Scan avec tous les templates critiques
nuclei -u https://target.example.com -severity critical,high

# Scan depuis une liste de cibles
nuclei -l targets.txt -severity critical,high,medium -o results.txt

# Format JSON pour traitement automatisé
nuclei -u https://target.example.com -json -o results.jsonl

Templates personnalisés

Crée un template Nuclei pour vérifier une config spécifique :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
id: custom-xss-check
info:
  name: Reflected XSS Check
  author: marvax
  severity: high

requests:
  - method: GET
    path:
      - "/search?q=<script>alert(1)</script>"
    matchers:
      - type: word
        words:
          - "<script>alert(1)</script>"
1
nuclei -u https://target.example.com -t custom-xps-check.yaml

Exemples de scan par catégorie

1
2
3
4
5
6
7
8
9
10
11
# Uniquement les CVEs connues
nuclei -u https://target.example.com -tags cve

# Scan des technologies détectées
nuclei -u https://target.example.com -tags tech

# Détection de panels d'admin exposés
nuclei -u https://target.example.com -tags panel

# Vérification des configurations TLS
nuclei -u https://target.example.com -tags ssl

OpenVAS (Greenbone)

Installation

La méthode la plus propre pour un homelab — Docker :

1
2
3
4
5
6
7
8
docker run -d \
  --name openvas \
  -p 443:443 \
  -p 9390:9390 \
  -e PASSWORD=admin \
  -e USERNAME=admin \
  --volume openvas-data:/data \
  mikesplain/openvas

Ou installation complète sur Debian/Ubuntu :

1
2
3
sudo apt install -y gvm
sudo gvm-setup
sudo gvm-start

L’installation complète prend du temps et consomme de la RAM (4 Go minimum recommandé).

Lancer un scan

  1. Accède à l’interface web (https://localhost:443)
  2. Crée un Target (IP ou hostname)
  3. Crée un Task associé au target
  4. Lance le scan

En ligne de commande :

1
2
3
4
5
6
# Créer un target
omp -u admin -w admin --xml="<create_target><name>Mon Serveur</name><hosts>192.168.1.10</hosts></create_target>"

# Lancer un scan (via gvm-cli)
gvm-cli --gmp-username admin --gmp-password admin socket \
  --xml "<create_task><name>Scan hebdo</name><target id='TARGET_ID'/></create_task>"

Interpréter les résultats

OpenVAS attribue un score CVSS à chaque vulnérabilité :

ScoreNiveauAction
9.0 - 10.0CritiqueCorrection immédiate
7.0 - 8.9HauteCorrection sous 48h
4.0 - 6.9MoyenneCorrection planifiée
0.1 - 3.9BasseÉvaluation contextuelle

Ne patch pas aveuglément. Un score “moyen” sur un service exposé publiquement peut être plus critique qu’un score “haut” sur un service interne.

Automatisation des scans

Cron Nuclei quotidien

1
2
# /etc/cron.d/nuclei-scan
0 3 * * * root /usr/local/bin/nuclei -l /etc/nuclei/targets.txt -severity critical,high -json -o /var/log/nuclei/$(date +\%F).json 2>&1 | logger -t nuclei

CI/CD

Intègre Nuclei dans ton pipeline (CI/CD GitHub Actions) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
name: Security Scan
on:
  push:
    branches: [main]

jobs:
  nuclei-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Nuclei
        run: |
          go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
          nuclei -update-templates
      - name: Scan staging
        run: nuclei -u https://staging.example.com -severity critical,high -fail-on-matched

Le flag -fail-on-matched fait échouer le pipeline si une vulnérabilité est trouvée.

Alertes et monitoring

Envoie les résultats vers ta stack de monitoring (Monitoring Prometheus & Grafana) :

1
2
3
# Parser les résultats JSON et envoyer vers un webhook
cat /var/log/nuclei/$(date +%F).json | jq -r '. | select(.info.severity == "critical")' | \
  curl -X POST -H "Content-Type: application/json" -d @- https://alerts.example.com/webhook

Après le scan : durcir

Scanner c’est bien, corriger c’est mieux. Priorise :

  1. Patch : mets à jour les logiciels exposés
  2. Harden SSH : désactive les versions obsolètes (Hardening SSH)
  3. Fail2ban : bloque les tentatives d’exploitation (Fail2ban avancé)
  4. CrowdSec : protection collaborative (CrowdSec : le futur de Fail2ban)
  5. Docker security : vérifie tes images (Sécurité Docker)
  6. Supply chain : audite tes dépendances (Supply Chain Attacks)

Checklist de mise en place

  • Nuclei installé et templates à jour
  • OpenVAS déployé (Docker ou natif)
  • Liste de cibles définie et documentée
  • Scan Nuclei automatisé (cron ou CI/CD)
  • Scan OpenVAS planifié (hebdomadaire/mensuel)
  • Résultats stockés et versionnés
  • Alertes configurées pour les findings critiques
  • Processus de correction documenté
  • Hardening appliqué post-scan

Références :

Besoin d’un audit de vulnérabilités ou d’un coup de main sur le durcissement ? Contacte-moi.

This post is licensed under CC BY 4.0 by the author.