E-KUB
kubectl
El CLI oficial de Kubernetes para consultar y, cuando está autorizado, controlar recursos del clúster durante una evaluación.
Sitio oficialVolver al catálogo
RESUMEN
kubectl es el cliente de línea de comandos estándar que trae cada distribución de Kubernetes, y habla con el API server sobre la misma interfaz REST que usa cualquier otro cliente. En una evaluación rara vez es la herramienta que encuentra una vulnerabilidad por sí sola — es el tejido conector: lee lo que el RBAC permite (`kubectl auth can-i`, `get`, `describe`), pivota hacia workloads (`exec`, `port-forward`, `cp`) y confirma si una desconfiguración señalada por un escáner es realmente alcanzable y explotable con las credenciales en mano.
Como su comportamiento depende por completo del kubeconfig o el token de service account con el que se ejecuta, el mismo binario sirve tanto de herramienta de enumeración para "qué puedo hacer con esta credencial" como de herramienta de explotación para efectivamente hacerlo — por eso casi cualquier otra herramienta centrada en Kubernetes de este directorio (kubectl-who-can, rakkess, kube-hunter) es o bien un plugin de kubectl o bien asume que kubectl ya está configurado contra el objetivo.
CASOS DE USO
Casos de uso en un engagement
- 01
Enumerar namespaces, workloads, secrets y bindings RBAC alcanzables con una credencial dada (`kubectl get`, `describe`, `auth can-i`).
- 02
Probar si un token de service account o un kubeconfig descubierto realmente autentica, y a qué tiene alcance.
- 03
Pivotar hacia un pod en ejecución vía `exec` o exfiltrar datos vía `cp`/`port-forward` una vez confirmado el acceso.
- 04
Confirmar, en el propio entorno del cliente, si una desconfiguración señalada por un escáner (kube-hunter, rbac-police, Trivy) es realmente alcanzable y explotable.
PRIMEROS PASOS
Como herramienta base de cualquier evaluación Kubernetes — para ver qué alcanza una credencial y, después, probar qué puede hacer con ello.
- Confirma que el kubeconfig o token en mano está dentro del alcance, y anota si pertenece a un usuario humano o a un service account.
- Ejecuta `kubectl auth can-i --list` para ver el conjunto completo de permisos antes de tocar nada más.
- Enumera los namespaces, workloads y secrets que la credencial puede leer, anotando cualquier permiso inesperadamente amplio.
- Donde el alcance lo permita, prueba los límites encontrados — haz `exec` en un pod, lee un token de service account montado, o usa `port-forward` hacia un servicio interno.
kubectl auth can-i --list --as=system:serviceaccount:default:defaultANTES DE USARLA
Qué revisar antes de lanzarla
Cada comando se ejecuta con la autoridad completa de la credencial cargada en KUBECONFIG — verifica el contexto activo antes de correr algo destructivo, especialmente `delete`, `edit`, `exec` o `apply` contra el clúster de un cliente.
`kubectl auth can-i` solo evalúa RBAC; un namespace o recurso puede estar permitido por RBAC y aun así ser bloqueado por un admission controller (OPA/Gatekeeper, Kyverno, Pod Security Admission) — verifica el acceso real en vez de inferirlo solo del resultado de RBAC.
El historial de comandos, los alias de shell y el propio `~/.kube/config` del tester pueden filtrar endpoints y credenciales del clúster — trata la estación de trabajo del operador como parte del alcance de OPSEC durante el engagement.