X-KUB
kube-dnsspoof
Prueba de concepto que secuestra la resolución de CoreDNS desde un pod comprometido para demostrar spoofing de DNS interno y MITM.
Sitio oficialVolver al catálogo
RESUMEN
kube-dnsspoof (danielsagi/kube-dnsspoof) es una prueba de concepto, publicada junto a la investigación de Aqua Security sobre spoofing de DNS dentro de clústeres Kubernetes, que muestra cuán poco privilegio hace falta para secuestrar la resolución de nombres interna: ejecutada desde un pod en el mismo nodo que el pod CoreDNS/kube-dns del clúster, levanta un proxy que reenvía cada consulta DNS al pod DNS real, excepto los dominios listados en su propio archivo hosts, a los que responde con respuestas falsificadas controladas por el atacante.
Como no necesita RBAC de Kubernetes elevado ni capacidades especiales de Linux más allá de las que ya trae un pod por defecto, se usa menos como herramienta de producción y más como demostración: en cuanto un atacante logra ejecución de código dentro de un clúster, puede redirigir el tráfico interno de otros workloads hacia un listener que controla, simplemente ganando la carrera de DNS local al nodo.
CASOS DE USO
Casos de uso en un engagement
- 01
Demostrar, en un engagement acotado, que un pod comprometido puede secuestrar el DNS interno del clúster para otros workloads que comparten su nodo — una primitiva de MITM, no el ataque al endpoint en sí.
- 02
Probar si la política de red realmente restringe la capacidad de un pod para alcanzar otros pods en el mismo nodo a nivel de DNS/UDP.
- 03
Ilustrar el impacto de un hallazgo de ejecución de código en otro lugar (un kubelet expuesto, una app vulnerable) encadenándolo hacia la interceptación de tráfico interno del clúster.
- 04
Validar que el plugin CNI o la política de red de un cliente mitigan el secuestro de DNS local al nodo como afirma su documentación.
PRIMEROS PASOS
Para demostrar el impacto real de un punto de apoyo con ejecución de código, encadenándolo hacia la interceptación de tráfico interno del clúster, con autorización explícita.
- Obtén autorización explícita: esta es una técnica activa de MITM contra tráfico interno del clúster y debe acotarse a un nodo/namespace y ventana de tiempo específicos.
- Despliega los manifiestos de pods incluidos (`kubectl create -f pods/`) para colocar un pod controlado por el atacante en el nodo objetivo.
- Haz exec en ese pod, edita el archivo hosts con los dominios a falsificar y ejecuta el script de explotación.
- Confirma el impacto observando si otro workload del nodo resuelve el dominio falsificado a la dirección controlada por el atacante, y elimina los pods de inmediato después.
kubectl exec -it hacker -- ./exploit.py --forward-timeout 5ANTES DE USARLA
Qué revisar antes de lanzarla
Es una prueba de concepto sin mantenimiento (sin archivo de licencia, sin releases) y no una herramienta soportada — lee exploit.py antes de ejecutarlo, y espera tener que adaptarlo a la versión de CNI/CoreDNS del clúster objetivo.
La técnica solo funciona contra workloads que comparten el mismo nodo que el pod que la ejecuta, y se vuelve poco fiable si CoreDNS está escalado a varias réplicas porque solo se falsifica una — planea la demostración según la topología de DNS real.
Falsificar el DNS de otros workloads en un nodo compartido es muy disruptivo y fácil de confundir con un incidente real — coordina el momento exacto con el equipo de monitoreo del cliente antes de ejecutarlo.