Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!
nhi-zero-trust-bypass — Dimostra un bypass zero-trust reale sfruttando BIND CVE-2025-40775 per interrompere il DNS, rompere la rotazione dei segreti ed esporre credenziali statiche in un laboratorio cloud-native. | Kitploit
Dimostra un bypass zero-trust reale sfruttando BIND CVE-2025-40775 per interrompere il DNS, rompere la rotazione dei segreti ed esporre credenziali statiche in un laboratorio cloud-native.
Progetto: Sfruttare le vulnerabilità di protocollo per manipolare i segreti NHI e bypassare le politiche Zero-Trust
Schermate
Di seguito sono riportati screenshot reali della dimostrazione. Per altri, vedere screenshots/README.md.
1. Exploit DNS (Crash di BIND)
A. Pacchetto exploit inviato
Scapy invia un pacchetto DNS TSIG malformato a BIND (vedi dns_exploit.py).
B. Crash del container confermato
docker ps -a mostra che il container BIND è uscito dopo l'exploit.
C. Evidenza del log di crash
Fallimento di asserzione e log di crash rilevanti da docker logs vulnerable_bind.
2. Fallimento della rotazione del segreto NHI
Il client NHI (client_nhi_rotation.py) non riesce a ruotare il segreto a causa di un'interruzione DNS, ripiega su una credenziale statica.
3. Bypass Zero-Trust
Dimostrazione del bypass (bypass_demo.py): la credenziale statica viene accettata dall'API protetta, bypassando i controlli zero-trust.
Obiettivo
Dimostrare come un attaccante potrebbe sfruttare una vulnerabilità critica DNS (CVE-2025-40775) per mandare in crash i server DNS, interrompere i flussi di lavoro di rotazione dei segreti delle Identità Non Umane (NHI) e dirottare le identità delle macchine—bypassando così i framework di sicurezza zero-trust. Questo progetto si concentra sulle vulnerabilità a livello di protocollo e sulle lacune del ciclo di vita delle NHI, evitando dipendenze da AI/ML.
Contesto e rilevanza
Vulnerabilità DNS: Esplorazione di vulnerabilità DNS critiche (es., DoS di BIND tramite record TSIG malformati).
Gestione NHI: Analisi delle debolezze comuni nella gestione e nel ciclo di vita delle identità non umane (chiavi API, account di servizio, identità delle macchine) negli ambienti cloud.
Framework Zero-Trust: Comprendere come i principi zero-trust si basano sull'autenticazione continua e sulla rotazione dei segreti, e come un'interruzione può invalidare questi presupposti.
Flusso di lavoro della catena di attacco
Fase 1: Innescare il crash del server DNS
Obiettivo: Interrompere la risoluzione DNS per i servizi cloud target.
Metodo: Creare query DNS malformate sfruttando una vulnerabilità nota di BIND relativa ai record TSIG (CVE-2025-40775).
Strumento:Scapy per la generazione di pacchetti.
Fase 2: Sfruttare i fallimenti della rotazione dei segreti NHI
Obiettivo: Forzare i sistemi a fare affidamento su NHI statiche/di fallback e catturarle.
Metodo: Interrompere la comunicazione con i gestori di segreti (es., HashiCorp Vault) tramite DoS DNS, causando tentativi di rotazione dei segreti. Investigare se i segreti di fallback in chiaro vengono trasmessi durante questi tentativi, o se l'affidamento su segreti obsoleti crea un'opportunità.
Strumento:tcpdump per la cattura di rete, simulazione client Python.
Fase 3: Bypassare le politiche Zero-Trust
Obiettivo: Utilizzare NHI rubate/esposte per impersonare servizi ed esfiltrare dati.
Metodo: Forgiare token di autenticazione (es., JWT) o utilizzare direttamente chiavi API per accedere a risorse riservate.
Strumento: Script Python per accedere all'endpoint API protetto.
Riepilogo della dimostrazione
Sfruttare BIND 9.20.8 con un pacchetto DNS TSIG malformato (usando dns_exploit.py e Scapy) per mandare in crash il server DNS.
Osservare i fallimenti della rotazione dei segreti NHI nel client (client_nhi_rotation.py) a causa dell'interruzione DNS, che porta a un fallback su una credenziale statica/di emergenza.
Dimostrare il bypass zero-trust utilizzando la credenziale statica (STATIC_BREAK_GLASS_KEY_XYZABC) per accedere all'API protetta (bypass_demo.py), che concede l'accesso e bypassa la policy.
File chiave
dns_exploit.py: Script Scapy per innescare il DoS di BIND.
client_nhi_rotation.py: Simula la rotazione dei segreti NHI e il fallback.
bypass_demo.py: Dimostra il bypass utilizzando NHI statica.
api-service-mock/app.py: Endpoint API protetto.
secrets-manager-mock/app.py: Gestore di segreti simulato.
docker-compose.yml: Orchestra l'ambiente.
Come eseguire
Costruire e avviare l'ambiente:
root@kitploit:~
docker-compose up -d --build
Eseguire l'exploit DNS:
root@kitploit:~
python .\dns_exploit.py
Eseguire la simulazione del client NHI:
root@kitploit:~
python .\client_nhi_rotation.py
Eseguire la dimostrazione del bypass:
root@kitploit:~
python .\bypass_demo.py
Impatto
Catena di exploit end-to-end: DoS DNS → fallimento rotazione NHI → esposizione credenziale statica → bypass zero-trust.
Scenario cloud-native realistico: Dimostra come gli attacchi a livello di protocollo possano minare i framework di sicurezza moderni.
Raccomandazioni
Eliminare le credenziali statiche/di emergenza ove possibile.
Rafforzare l'infrastruttura DNS e monitorare le anomalie di protocollo.
Assicurarsi che i gestori di segreti e i client degradino in modo sicuro in caso di guasti dell'infrastruttura.
Divulgazione della vulnerabilità
Questo progetto dimostra l'impatto di CVE-2025-40775, una vulnerabilità denial-of-service in BIND 9.20.0–9.20.8. Il laboratorio costruisce ed esegue intenzionalmente BIND 9.20.8 per simulare questo scenario. Tutti i test sono stati eseguiti in un ambiente controllato solo per scopi di ricerca e didattici.
Descrizione: Quando un messaggio di protocollo DNS in arrivo include una Transaction Signature (TSIG), BIND lo controlla sempre. Se il TSIG contiene un valore non valido nel campo algoritmo, BIND abortisce immediatamente con un fallimento di asserzione.
Versioni Affette: 9.20.0–9.20.8, 9.21.0–9.21.7
Impatto: DoS remoto non autenticato (CVSS 7.5 ALTO)
Contromisura: Nessuna. Aggiornare alla 9.20.9 o successiva.
Il servizio vulnerable_bind è compilato dal codice sorgente utilizzando il tarball ufficiale 9.20.8, come mostrato nel Dockerfile. Questo è solo a scopo dimostrativo—non utilizzare questa versione in produzione.
Dichiarazione di esclusione di responsabilità
Questo repository è solo per scopi educativi e di ricerca. Non utilizzare queste tecniche o codice per attività non autorizzate o dannose. Vedi DISCLAIMER.md.