# GCP - API Ključevi Neautentifikovana Enumeracija

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

## API Ključevi

Za više informacija o API ključevima pogledajte:

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

### OSINT tehnike

**Google API ključevi se široko koriste od strane svih vrsta aplikacija** koje koriste sa klijentske strane. Uobičajeno je pronaći ih u izvor kodu veb sajtova ili mrežnim zahtevima, u mobilnim aplikacijama ili jednostavno pretražujući regex-e na platformama poput Github-a.

Regex je: **`AIza[0-9A-Za-z_-]{35}`**

Pretražujte ga, na primer, na Github-u sledećim putem: [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)

### Proverite poreklo GCP projekta

Ovo je izuzetno korisno za proveru **kojim GCP projektu pripada API ključ koji ste pronašli**. Imamo različite opcije:

- Kontaktirajte `https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=<api-key`

Zbog sažetosti, izlaz je skraćen, ali u kompletnom izlazu ID projekta se pojavljuje više od 5 puta.
```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.",
[...]
```
- Kontaktirajte `https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=<api-key>`

Zbog sažetosti, izlaz je skraćen, ali se u kompletnom izlazu ID projekta pojavljuje više od 5 puta.
```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.",
[...]
```
- [Ovo više ne funkcioniše!] `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

Kao što možda ne znate koje API-je su omogućeni u projektu, bilo bi zanimljivo pokrenuti alat [https://github.com/ozguralp/gmapsapiscanner](https://github.com/ozguralp/gmapsapiscanner) i proveriti **šta možete da pristupite sa API ključem.**

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