# GCP - Cloud Build Unauthenticated Enum

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

## Cloud Build

Per ulteriori informazioni su Cloud Build, controlla:

{{#ref}}
../gcp-services/gcp-cloud-build-enum.md
{{#endref}}

### cloudbuild.yml

Se comprometti l'accesso in scrittura su un repository contenente un file chiamato **`cloudbuild.yml`**, potresti **backdoor** questo file, che specifica i **comandi che verranno eseguiti** all'interno di un Cloud Build ed esfiltrare i segreti, compromettere ciò che viene fatto e anche compromettere il **service account di Cloud Build.**

> [!NOTE]
> Nota che GCP ha l'opzione di consentire agli amministratori di controllare l'esecuzione dei sistemi di build da PR esterni tramite "Comment Control". Comment Control è una funzionalità in cui i collaboratori/proprietari del progetto **devono commentare “/gcbrun” per attivare il build** contro il PR e utilizzare questa funzionalità impedisce intrinsecamente a chiunque su Internet di attivare i tuoi sistemi di build.

Per alcune informazioni correlate, puoi controllare la pagina su come attaccare Github Actions (simile a questo):

{{#ref}}
../../../pentesting-ci-cd/github-security/abusing-github-actions/
{{#endref}}

### PR Approvals

Quando il trigger è PR perché **chiunque può eseguire PR su repository pubblici**, sarebbe molto pericoloso **consentire l'esecuzione del trigger con qualsiasi PR**. Pertanto, per impostazione predefinita, l'esecuzione sarà **automatica solo per i proprietari e i collaboratori**, e per eseguire il trigger con PR di altri utenti, un proprietario o un collaboratore deve commentare `/gcbrun`.

<figure><img src="../../../images/image (339).png" alt="" width="563"><figcaption></figcaption></figure>

> [!CAUTION]
> Pertanto, se questo è impostato su **`Not required`**, un attaccante potrebbe eseguire un **PR sul branch** che attiverà l'esecuzione aggiungendo l'esecuzione di codice malevolo al file **`cloudbuild.yml`** e compromettere l'esecuzione di cloudbuild (nota che cloudbuild scaricherà il codice DAL PR, quindi eseguirà il malevolo **`cloudbuild.yml`**).

Inoltre, è facile vedere se è necessario eseguire qualche esecuzione di cloudbuild quando invii un PR perché appare in Github:

<figure><img src="../../../images/image (340).png" alt=""><figcaption></figcaption></figure>

> [!WARNING]
> Quindi, anche se il cloudbuild non viene eseguito, l'attaccante sarà in grado di vedere il **nome del progetto di un progetto GCP** che appartiene all'azienda.

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