GCP - Cloud Scheduler Enum

Support HackTricks

Basic Information

Google Cloud Scheduler는 임의의 작업—예: 배치, 빅 데이터 작업, 클라우드 인프라 운영—을 고정된 시간, 날짜 또는 간격에 따라 실행할 수 있는 완전 관리형 크론 작업 서비스입니다. 이는 Google Cloud 서비스와 통합되어 정기적으로 업데이트 또는 배치 처리를 자동화하는 다양한 작업을 수행하는 방법을 제공합니다.

공격적인 관점에서 보면 이것은 놀랍게 들리지만, 실제로는 특정 시간에 특정 간단한 작업을 예약할 수 있을 뿐 임의의 코드를 실행할 수는 없기 때문에 그렇게 흥미롭지 않습니다.

이 글을 작성하는 시점에서 이 서비스가 예약할 수 있는 작업은 다음과 같습니다:

  • HTTP: 요청의 헤더와 본문을 정의하여 HTTP 요청을 보냅니다.

  • Pub/Sub: 특정 주제로 메시지를 보냅니다.

  • App Engine HTTP: App Engine에 구축된 앱에 HTTP 요청을 보냅니다.

  • Workflows: GCP 워크플로를 호출합니다.

Service Accounts

서비스 계정은 각 스케줄러에 항상 필요하지 않습니다. Pub/SubApp Engine HTTP 유형은 서비스 계정이 필요하지 않습니다. Workflow는 서비스 계정이 필요하지만, 단순히 워크플로를 호출할 것입니다. 마지막으로, 일반 HTTP 유형은 서비스 계정이 필요하지 않지만, 워크플로에 의해 어떤 종류의 인증이 필요하다고 지정하고 전송된 HTTP 요청에 OAuth 토큰 또는 OIDC 토큰을 추가할 수 있습니다.

따라서, HTTP 유형을 악용하여 서비스 계정의 OIDC 토큰을 훔치고 OAuth 토큰을 남용할 수 있습니다. 권한 상승 페이지에서 이에 대한 더 많은 내용을 확인하세요.

OAuth 토큰의 범위를 제한할 수 있지만, 기본적으로는 cloud-platform이 됩니다.

Enumeration

# Get schedulers in a location
gcloud scheduler jobs list --location us-central1

# Get information of an specific scheduler
gcloud scheduler jobs describe --location us-central1 <scheduler-name>

권한 상승

GCP - Cloud Scheduler Privesc
HackTricks 지원하기

Last updated