Kubernetes Namespace Escalation

Apoya a HackTricks

En Kubernetes es bastante común que de alguna manera logres ingresar a un namespace (ya sea robando algunas credenciales de usuario o comprometiendo un pod). Sin embargo, por lo general te interesará escalar a un namespace diferente ya que allí se pueden encontrar cosas más interesantes.

Aquí tienes algunas técnicas que puedes probar para escapar a un namespace diferente:

Abuso de privilegios de K8s

Obviamente, si la cuenta que has robado tiene privilegios sensibles sobre el namespace al que quieres escalar, puedes abusar de acciones como crear pods con cuentas de servicio en el NS, ejecutar una shell en un pod ya existente dentro del ns, o leer los secretos de los tokens de SA.

Para obtener más información sobre qué privilegios puedes abusar, lee:

Abusing Roles/ClusterRoles in Kubernetes

Escapar al nodo

Si 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 SA:

  • Verifica los tokens de SA montados en otros contenedores de Docker que se ejecutan en el nodo

  • Busca nuevos archivos kubeconfig en el nodo con permisos adicionales otorgados al nodo

  • Si está habilitado (o habilítalo tú mismo) intenta crear pods espejo de otros namespaces ya que podrías obtener acceso a las cuentas de token predeterminadas de esos namespaces (aún no he probado esto)

Todas estas técnicas se explican en:

Attacking Kubernetes from inside a Pod
Apoya a HackTricks

Last updated