
Fournit un environnement conteneurisé et un modèle Nuclei signé pour tester en toute sécurité CVE-2025-32463, une vulnérabilité d'élévation de privilèges sudo, avec détection et comparaison avec la version corrigée.
C'est la première fois que je porte un exploit malveillant dans un modèle Nuclei pour un scan de vulnérabilité non intrusif qui démontre néanmoins le problème sous-jacent.
J'ai documenté le processus plus en détail expressément comme exercice d'apprentissage.
Mes principaux défis étaient :
-itags local, car la balise locale est ignorée par défaut dans les paramètres .nuclei-ignore.Il peut sembler étrange que j'aie choisi l'environnement Windows pour cette activité. Le fait est que Windows est mon système d'exploitation par défaut pour des raisons que je n'aborderai pas ici.
docker-compose up --build -d
Ce modèle utilise le moteur code qui nécessite une signature pour des raisons de sécurité. Le modèle est déjà signé dans ce dépôt.
Le docker-compose.yaml est configuré pour monter vos clés de signature Nuclei Windows depuis %APPDATA%\nuclei\keys dans les conteneurs. Cela permet de vérifier le modèle signé.
Sur l'hôte Windows (nécessite Nuclei installé).
nuclei -t cve-2025-32463.yaml -sign
Cela signera le modèle et ajoutera un champ digest.
Remarque : La première fois que vous exécutez cette commande, Nuclei créera des clés de signature dans %APPDATA%\nuclei\keys et vous demandera :
Linux/macOS/Git Bash :
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD :
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternative (fonctionne sur toutes les plateformes) :
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Remarques :
-code est requis pour activer les modèles basés sur le protocole codesh -c '...' pour éviter les problèmes de conversion de chemins Windows avec MSYS2/Git Bash[INF] Executing 1 signed templates from <your-username>Windows PowerShell/CMD :
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Alternative (fonctionne sur toutes les plateformes) :
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Remarques :
-code est requis pour activer les modèles basés sur le protocole code"..." ou la commande alternative sans sh -c[INF] Executing 1 signed templates from <your-username>Si vous souhaitez vérifier la vulnérabilité sans signer le modèle Nuclei, vous pouvez exécuter le script d'exploit directement :
Copiez et exécutez le script d'exploit.
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
Sortie attendue : woot! suivi d'un shell root (en mode interactif).
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
Détection confirmée : UID=1000 EUID=0 prouve que le code de testuser (1000) s'est exécuté avec les privilèges root (0).
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
Aucune vulnérabilité détectée - La version corrigée de sudo empêche le chargement de la bibliothèque.
Pour une explication technique détaillée de la vulnérabilité, des vecteurs d'attaque et de la méthodologie de détection, consultez le document Notes techniques.