Kubernetes Namespace Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
En Kubernetes, es bastante común que de alguna manera logres entrar en un namespace (robando algunas credenciales de usuario o comprometiendo un pod). Sin embargo, generalmente estarás interesado en escalar a un namespace diferente, ya que allí se pueden encontrar cosas más interesantes.
Aquí hay algunas técnicas que puedes intentar para escapar a un namespace diferente:
Obviamente, si la cuenta que has robado tiene privilegios sensibles sobre el namespace al que puedes escalar, puedes abusar de acciones como crear pods con cuentas de servicio en el NS, ejecutar un shell en un pod ya existente dentro del ns, o leer los secretos de los tokens de SA.
Para más información sobre qué privilegios puedes abusar, lee:
Abusing Roles/ClusterRoles in KubernetesSi puedes escapar al nodo, ya sea porque has comprometido un pod y puedes escapar o porque puedes crear un pod privilegiado y escapar, podrías hacer varias cosas para robar otros tokens de SAs:
Verifica los tokens de SAs montados en otros contenedores de docker que se estén ejecutando en el nodo.
Verifica si hay nuevos archivos kubeconfig en el nodo con permisos adicionales otorgados al nodo.
Si está habilitado (o habilítalo tú mismo), intenta crear pods espejados de otros namespaces, ya que podrías obtener acceso a las cuentas de tokens predeterminadas de esos namespaces (aún no he probado esto).
Todas estas técnicas se explican en:
Attacking Kubernetes from inside a PodLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)