GCP - API Keys Unauthenticated Enum

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

API Keys

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

GCP - API Keys Enum

Techniques OSINT

Les clés API Google sont largement utilisées par tout type d'applications qui les utilisent côté client. Il est courant de les trouver dans le code source des sites web ou dans les requêtes réseau, dans les applications mobiles ou simplement en recherchant des regex sur des plateformes comme Github.

La regex est : AIza[0-9A-Za-z_-]{35}

Recherchez-la par exemple sur Github en suivant : https://github.com/search?q=%2FAIza%5B0-9A-Za-z_-%5D%7B35%7D%2F&type=code&ref=advsearch

Vérifier le projet GCP d'origine

Ceci est extrêmement utile pour vérifier à quel projet GCP appartient une clé API que vous avez trouvée. Nous avons différentes options :

  • Contacter https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=<api-key>

Pour des raisons de concision, la sortie a été tronquée, mais dans la sortie complète, l'ID du projet apparaît plus de 5 fois.

bash
curl -s "https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=AIzaSyD[...]uE8Y"

{
"error": {
"code": 403,
"message": "Identity Toolkit API has not been used in project 943955951114 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/identitytoolkit.googleapis.com/overview?project=943955951114 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
[...]
  • Contact https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=<api-key>

Pour des raisons de concision, la sortie a été tronquée, mais dans la sortie complète, l'ID du projet apparaît plus de 5 fois.

bash
curl -s "https://identitytoolkit.googleapis.com/v1/projects?key=AIzaSyD[...]uE8Y"

{
"error": {
"code": 403,
"message": "Identity Toolkit API has not been used in project 943955951114 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/identitytoolkit.googleapis.com/overview?project=943955951114 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
[...]
  • [Celle-ci ne fonctionne plus !] apikeys.keys.lookup
bash
# If you have permissions
gcloud services api-keys lookup AIzaSyD[...]uE8Y
name: projects/5[...]6/locations/global/keys/28d[...]e0e
parent: projects/5[...]6/locations/global

# If you don't, you can still see the project ID in the error msg
gcloud services api-keys lookup AIzaSy[...]Qbkd_oYE
ERROR: (gcloud.services.api-keys.lookup) PERMISSION_DENIED: Permission 'apikeys.keys.lookup' denied on resource project.
Help Token: ARD_zUaNgNilGTg9oYUnMhfa3foMvL7qspRpBJ-YZog8RLbTjCTBolt_WjQQ3myTaOqu4VnPc5IbA6JrQN83CkGH6nNLum6wS4j1HF_7HiCUBHVN
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
violations:
- subject: ?error_code=110002&service=cloudresourcemanager.googleapis.com&permission=serviceusage.apiKeys.getProjectForKey&resource=projects/89123452509
type: googleapis.com
- '@type': type.googleapis.com/google.rpc.ErrorInfo
domain: apikeys.googleapis.com
metadata:
permission: serviceusage.apiKeys.getProjectForKey
resource: projects/89123452509
service: cloudresourcemanager.googleapis.com
reason: AUTH_PERMISSION_DENIED

Brute Force API endspoints

Comme vous ne savez peut-être pas quelles API sont activées dans le projet, 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.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks