Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !
nhi-zero-trust-bypass — Démontre un contournement de la confiance zéro dans le monde réel en exploitant BIND CVE-2025-40775 pour perturber le DNS, briser la rotation des secrets et exposer des identifiants statiques dans un laboratoire cloud-native. | Kitploit
Démontre un contournement de la confiance zéro dans le monde réel en exploitant BIND CVE-2025-40775 pour perturber le DNS, briser la rotation des secrets et exposer des identifiants statiques dans un laboratoire cloud-native.
Projet : Exploitation de vulnérabilités de protocole pour manipuler les secrets NHI et contourner les politiques Zero-Trust
Captures d'écran
Vous trouverez ci-dessous des captures d'écran réelles de la démonstration. Pour en voir plus, consultez screenshots/README.md.
1. Exploit DNS (Crash de BIND)
A. Paquet d'exploit envoyé
Scapy envoie un paquet DNS TSIG malformé à BIND (voir dns_exploit.py).
B. Crash du conteneur confirmé
docker ps -a montre que le conteneur BIND a quitté après l'exploit.
C. Preuve dans les logs de crash
Échec d'assertion pertinent et log de crash de docker logs vulnerable_bind.
2. Échec de la rotation des secrets NHI
Le client NHI (client_nhi_rotation.py) échoue à faire la rotation du secret en raison de la panne DNS, et utilise un identifiant statique comme solution de repli.
3. Contournement Zero-Trust
Démonstration de contournement (bypass_demo.py) : l'identifiant statique est accepté par l'API protégée, contournant les contrôles Zero-Trust.
Objectif
Démontrer comment un attaquant pourrait exploiter une vulnérabilité DNS critique (CVE-2025-40775) pour faire planter les serveurs DNS, perturber les workflows de rotation des secrets des identités non humaines (NHI) et détourner les identités machines, contournant ainsi les cadres de sécurité Zero-Trust. Ce projet se concentre sur les vulnérabilités au niveau des protocoles et les lacunes du cycle de vie des NHI, en évitant les dépendances IA/ML.
Contexte et pertinence
Vulnérabilités DNS : Exploration de vulnérabilités DNS critiques (par ex., déni de service BIND via des enregistrements TSIG malformés).
Gestion des NHI : Analyse des faiblesses courantes dans la gestion et le cycle de vie des identités non humaines (clés API, comptes de service, identités machines) dans les environnements cloud.
Cadres Zero-Trust : Comprendre comment les principes Zero-Trust reposent sur l'authentification continue et la rotation des secrets, et comment une perturbation peut invalider ces hypothèses.
Workflow de la chaîne d'attaque
Phase 1 : Déclencher le crash du serveur DNS
Objectif : Perturber la résolution DNS pour les services cloud cibles.
Méthode : Fabriquer des requêtes DNS malformées exploitant une vulnérabilité BIND connue liée aux enregistrements TSIG (CVE-2025-40775).
Outil :Scapy pour la génération de paquets.
Phase 2 : Exploiter les échecs de rotation des secrets NHI
Objectif : Forcer les systèmes à utiliser des NHI statiques/de repli et les capturer.
Méthode : Perturber la communication avec les gestionnaires de secrets (par ex., HashiCorp Vault) via un déni de service DNS, provoquant des tentatives de rotation des secrets. Examiner si des secrets de repli en texte clair sont transmis lors de ces tentatives, ou si le recours à des secrets obsolètes crée une opportunité.
Outil :tcpdump pour la capture réseau, simulation de client Python.
Phase 3 : Contourner les politiques Zero-Trust
Objectif : Utiliser des NHI volées/exposées pour usurper l'identité des services et exfiltrer des données.
Méthode : Forger des jetons d'authentification (par ex., JWT) ou utiliser directement des clés API pour accéder à des ressources restreintes.
Outil : Script Python pour accéder au point de terminaison API protégé.
Résumé de la démonstration
Exploiter BIND 9.20.8 avec un paquet DNS TSIG malformé (en utilisant dns_exploit.py et Scapy) pour faire planter le serveur DNS.
Observer les échecs de rotation des secrets NHI dans le client (client_nhi_rotation.py) en raison de la panne DNS, conduisant à un repli sur un identifiant statique/break-glass.
Démontrer le contournement Zero-Trust en utilisant l'identifiant statique (STATIC_BREAK_GLASS_KEY_XYZABC) pour accéder à l'API protégée (bypass_demo.py), qui accorde l'accès et contourne la politique.
Fichiers clés
dns_exploit.py : Script Scapy pour déclencher le déni de service BIND.
client_nhi_rotation.py : Simule la rotation des secrets NHI et le repli.
bypass_demo.py : Démontre le contournement à l'aide d'un NHI statique.
api-service-mock/app.py : Point de terminaison API protégé.
secrets-manager-mock/app.py : Gestionnaire de secrets simulé.
docker-compose.yml : Orchestre l'environnement.
Comment exécuter
Construire et démarrer l'environnement :
root@kitploit:~
docker-compose up -d --build
Exécuter l'exploit DNS :
root@kitploit:~
python .\dns_exploit.py
Exécuter la simulation du client NHI :
root@kitploit:~
python .\client_nhi_rotation.py
Exécuter la démonstration de contournement :
root@kitploit:~
python .\bypass_demo.py
Impact
Chaîne d'exploit de bout en bout : Déni de service DNS → Échec de rotation NHI → Exposition d'identifiant statique → Contournement Zero-Trust.
Scénario cloud-native réaliste : Démontre comment les attaques au niveau protocole peuvent saper les cadres de sécurité modernes.
Recommandations
Éliminer les identifiants statiques/break-glass dans la mesure du possible.
Durcir l'infrastructure DNS et surveiller les anomalies de protocole.
S'assurer que les gestionnaires de secrets et les clients se dégradent de manière sécurisée en cas de défaillance de l'infrastructure.
Divulgation de vulnérabilité
Ce projet démontre l'impact de CVE-2025-40775, une vulnérabilité de déni de service dans BIND 9.20.0–9.20.8. Le laboratoire construit et exécute intentionnellement BIND 9.20.8 pour simuler ce scénario. Tous les tests ont été effectués dans un environnement contrôlé à des fins de recherche et d'éducation uniquement.
Description : Lorsqu'un message de protocole DNS entrant inclut une signature de transaction (TSIG), BIND la vérifie toujours. Si la TSIG contient une valeur invalide dans le champ d'algorithme, BIND s'arrête immédiatement avec un échec d'assertion.
Versions affectées : 9.20.0–9.20.8, 9.21.0–9.21.7
Impact : Déni de service distant non authentifié (CVSS 7.5 ÉLEVÉ)
Contournement : Aucun. Mettre à jour vers 9.20.9 ou version ultérieure.
Le service vulnerable_bind est compilé à partir des sources en utilisant l'archive officielle 9.20.8, comme indiqué dans le Dockerfile. Ceci est uniquement pour la démonstration — n'utilisez pas cette version en production.
Avertissement
Ce dépôt est à des fins éducatives et de recherche uniquement. N'utilisez pas ces techniques ou ce code pour des activités non autorisées ou malveillantes. Voir DISCLAIMER.md.