GCP - Apikeys Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Clés API

Les autorisations suivantes sont utiles pour créer et voler des clés API, pas celles des documents : Une clé API est une chaîne chiffrée simple qui identifie une application sans aucun principe. Elles sont utiles pour accéder à des données publiques de manière anonyme, et sont utilisées pour associer les demandes d'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 les privilèges.

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

pageGCP - API Keys Enum

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

pageGCP - Serviceusage Privesc

Force brute pour accéder à la clé API

Comme vous pourriez ne pas savoir 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 que par défaut, les utilisateurs ont des autorisations pour créer de nouveaux projets et ils se voient accorder le rôle 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 autorisations permettent de list et obtenir toutes les clés API 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 autorisations vous permettent de list et régénérer les clés API supprimées. La clé API est donnée en sortie après l'exécution de undelete:

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:

pageGWS - Google Platforms Phishing

Dernière mise à jour