# GCP - Énumération non authentifiée des clés API

{{#include ../../../banners/hacktricks-training.md}}

## Clés API

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

{{#ref}}
../gcp-services/gcp-api-keys-enum.md
{{#endref}}

### 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 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](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 - `apikeys.keys.lookup`

Ceci est extrêmement utile pour vérifier **à quel projet GCP appartient une clé API que vous avez trouvée** :
```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 APIs sont activées dans le projet, il serait intéressant d'exécuter l'outil [https://github.com/ozguralp/gmapsapiscanner](https://github.com/ozguralp/gmapsapiscanner) et de vérifier **ce à quoi vous pouvez accéder avec la clé API.**

{{#include ../../../banners/hacktricks-training.md}}
