GCP - Apikeys Privesc

Aprende a hackear AWS de cero a héroe con htARTE (Experto en Equipos Rojos de HackTricks AWS)!

Otras formas de apoyar a HackTricks:

Apikeys

Los siguientes permisos son útiles para crear y robar claves de API, no esto de la documentación: Una clave de 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 las solicitudes de API con tu proyecto para cuotas y facturación.

Por lo tanto, con una clave de 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 de API, consulta:

pageGCP - API Keys Enum

Para otras formas de crear claves de API, consulta:

pageGCP - Serviceusage Privesc

Fuerza bruta para acceder a la clave de API

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

apikeys.keys.create

Este permiso permite crear una clave de 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 de API eliminadas. La clave de 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

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

pageGWS - Google Platforms Phishing

Última actualización