GCP - Apikeys Privesc

Apoya a 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 cifrada 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 las solicitudes de API con tu proyecto para cuotas y facturación.

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

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

GCP - API Keys Enum

Para otras formas de crear claves API, consulta:

GCP - Serviceusage Privesc

Fuerza bruta para acceder a la clave API

Dado que es posible 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 Propietario sobre el nuevo proyecto. Por lo tanto, 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 claves API 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 API eliminadas. La clave API se muestra en la salida después de que se haya realizado el undelete:

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

Crear una aplicación de OAuth interna para pescar a otros trabajadores

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

GWS - Google Platforms Phishing
Apoya a HackTricks

Last updated