¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
nhi-zero-trust-bypass — Demuestra una evasión de confianza cero del mundo real explotando BIND CVE-2025-40775 para interrumpir DNS, romper la rotación de secretos y exponer credenciales estáticas en un laboratorio nativo de la nube. | Kitploit
Demuestra una evasión de confianza cero del mundo real explotando BIND CVE-2025-40775 para interrumpir DNS, romper la rotación de secretos y exponer credenciales estáticas en un laboratorio nativo de la nube.
Proyecto: Explotación de Vulnerabilidades de Protocolo para Manipular Secretos NHI y Bypass de Políticas de Confianza Cero
Capturas de Pantalla
A continuación se muestran capturas de pantalla reales de la demostración. Para más, consulte screenshots/README.md.
1. Exploit DNS (Caída de BIND)
A. Paquete Exploit Enviado
Scapy envía un paquete DNS TSIG malformado a BIND (ver dns_exploit.py).
B. Caída del Contenedor Confirmada
docker ps -a muestra que el contenedor de BIND ha finalizado tras el exploit.
C. Evidencia de Registro de Caída
Fallo de aserción relevante y registro de caída de docker logs vulnerable_bind.
2. Falla en Rotación de Secretos NHI
El cliente NHI (client_nhi_rotation.py) falla al rotar secreto debido a la interrupción de DNS, y recurre a una credencial estática.
3. Bypass de Confianza Cero
Demostración de bypass (bypass_demo.py): la credencial estática es aceptada por la API protegida, evadiendo los controles de Confianza Cero.
Objetivo
Demostrar cómo un atacante podría explotar una vulnerabilidad crítica de DNS (CVE-2025-40775) para bloquear servidores DNS, interrumpir los flujos de rotación de secretos de Identidades No Humanas (NHI) y secuestrar identidades de máquina, evadiendo así los marcos de seguridad de Confianza Cero. Este proyecto se centra en vulnerabilidades a nivel de protocolo y brechas en el ciclo de vida de NHI, evitando dependencias de IA/ML.
Antecedentes y Relevancia
Vulnerabilidades de DNS: Exploración de vulnerabilidades críticas de DNS (p. ej., DoS de BIND mediante registros TSIG malformados).
Gestión de NHI: Análisis de debilidades comunes en la gestión y el ciclo de vida de identidades no humanas (claves API, cuentas de servicio, identidades de máquina) en entornos cloud.
Marcos de Confianza Cero: Comprensión de cómo los principios de Confianza Cero dependen de la autenticación continua y la rotación de secretos, y cómo la interrupción puede invalidar estos supuestos.
Flujo de la Cadena de Ataque
Fase 1: Provocar Caída del Servidor DNS
Objetivo: Interrumpir la resolución DNS de los servicios cloud objetivo.
Método: Crear consultas DNS malformadas explotando una vulnerabilidad conocida de BIND relacionada con registros TSIG (CVE-2025-40775).
Herramienta:Scapy para la generación de paquetes.
Fase 2: Explotar Fallas en Rotación de Secretos NHI
Objetivo: Forzar a los sistemas a depender de NHI estáticas/de respaldo y capturarlas.
Método: Interrumpir la comunicación con gestores de secretos (p. ej., HashiCorp Vault) mediante DoS de DNS, provocando reintentos de rotación de secretos. Investigar si durante estos reintentos se transmiten secretos de respaldo en texto plano, o si la dependencia de secretos obsoletos crea una oportunidad.
Herramienta:tcpdump para captura de red, simulación de cliente Python.
Fase 3: Bypass de Políticas de Confianza Cero
Objetivo: Usar NHI robadas/expuestas para suplantar servicios y extraer datos.
Método: Forjar tokens de autenticación (p. ej., JWTs) o usar directamente claves API para acceder a recursos restringidos.
Herramienta: Script de Python para acceder al endpoint de la API protegida.
Resumen de la Demostración
Explotar BIND 9.20.8 con un paquete DNS TSIG malformado (usando dns_exploit.py y Scapy) para bloquear el servidor DNS.
Observar fallas en la rotación de secretos NHI en el cliente (client_nhi_rotation.py) debido a la interrupción de DNS, lo que lleva a usar una credencial estática/de emergencia.
Demostrar el bypass de Confianza Cero usando la credencial estática (STATIC_BREAK_GLASS_KEY_XYZABC) para acceder a la API protegida (bypass_demo.py), que concede acceso y evade la política.
Archivos Clave
dns_exploit.py: Script de Scapy para desencadenar DoS en BIND.
client_nhi_rotation.py: Simula la rotación de secretos NHI y el respaldo.
bypass_demo.py: Demuestra el bypass usando NHI estática.
api-service-mock/app.py: Endpoint de API protegida.
secrets-manager-mock/app.py: Gestor de secretos simulado.
docker-compose.yml: Orquesta el entorno.
Cómo Ejecutar
Construir e iniciar el entorno:
root@kitploit:~
docker-compose up -d --build
Ejecutar el exploit DNS:
root@kitploit:~
python .\dns_exploit.py
Ejecutar la simulación del cliente NHI:
root@kitploit:~
python .\client_nhi_rotation.py
Ejecutar la demostración de bypass:
root@kitploit:~
python .\bypass_demo.py
Impacto
Cadena de exploit de extremo a extremo: DoS de DNS → falla en rotación NHI → exposición de credencial estática → bypass de Confianza Cero.
Escenario realista nativo de la nube: Demuestra cómo los ataques a nivel de protocolo pueden socavar los marcos de seguridad modernos.
Recomendaciones
Eliminar credenciales estáticas/de emergencia siempre que sea posible.
Endurecer la infraestructura DNS y monitorear anomalías de protocolo.
Asegurar que los gestores de secretos y los clientes degraden de forma segura bajo fallos de infraestructura.
Divulgación de Vulnerabilidad
Este proyecto demuestra el impacto de CVE-2025-40775, una vulnerabilidad de denegación de servicio en BIND 9.20.0–9.20.8. El laboratorio construye y ejecuta intencionalmente BIND 9.20.8 para simular este escenario. Todas las pruebas se realizaron en un entorno controlado solo con fines de investigación y educación.
Descripción: Cuando un mensaje de protocolo DNS entrante incluye una Firma de Transacción (TSIG), BIND siempre lo verifica. Si el TSIG contiene un valor inválido en el campo de algoritmo, BIND se aborta inmediatamente con un fallo de aserción.
Versiones Afectadas: 9.20.0–9.20.8, 9.21.0–9.21.7
Impacto: DoS remoto no autenticado (CVSS 7.5 ALTO)
Solución Alternativa: Ninguna. Parchear a 9.20.9 o posterior.
El servicio vulnerable_bind se construye desde el código fuente usando el tarball oficial 9.20.8, como se muestra en el Dockerfile. Esto es solo para demostración—no use esta versión en producción.
Aviso Legal
Este repositorio es solo para fines educativos y de investigación. No utilice estas técnicas o código para actividades no autorizadas o maliciosas. Consulte DISCLAIMER.md.