GCP - Workflows Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Workflows
Temel Bilgiler:
workflows.workflows.create, iam.serviceAccounts.ActAs, workflows.executions.create, (workflows.workflows.get, workflows.operations.get)
Bildiğim kadarıyla, bir Workflow’a bağlı SA kimlik bilgilerini içeren metadata uç noktasına erişimi olan bir shell elde etmek mümkün değil. Bununla birlikte, Workflow içinde çalıştırılacak eylemleri ekleyerek SA’nın izinleri kötüye kullanılabilir.
Bağlayıcıların dokümantasyonunu bulmak mümkün. Örneğin, bu Secretmanager connector sayfası. Yan tarafta birkaç diğer connector bulunabilir.
Ve burada bir secret yazdıran connector örneğini bulabilirsiniz:
secrets'e erişmek için Workflow YAML yapılandırması
```yaml main: params: [input] steps: - access_string_secret: call: googleapis.secretmanager.v1.projects.secrets.versions.accessString args: secret_id: secret_name version: 1 project_id: project-id result: str_secret - returnOutput: return: "${str_secret}" ```CLI üzerinden güncelleme:
CLI'den iş akışlarını dağıtma ve yürütme
```bash gcloud workflows deployWeb erişiminiz yoksa bir Workflow’un yürütülmesini tetiklemek ve yürütmeyi görmek mümkündür:
# Run execution with output
gcloud workflows run <workflow-name> --location us-central1
# Run execution without output
gcloud workflows execute <workflow-name> --location us-central1
# List executions
gcloud workflows executions list <workflow-name>
# Get execution info and output
gcloud workflows executions describe projects/<proj-number>/locations/<location>/workflows/<workflow-name>/executions/<execution-id>
Caution
Ayrıca önceki yürütmelerin çıktısını hassas bilgi aramak için kontrol edebilirsiniz
Note that even if you get an error like PERMISSION_DENIED: Permission 'workflows.operations.get' denied on... because you don’t have that permission, the workflow has been generated.
Leak OIDC token (and OAuth?)
Belgelere to the docs göre OAuth veya OIDC token’ı ile bir HTTP isteği gönderecek workflow adımlarını kullanmak mümkündür. Ancak, tıpkı Cloud Scheduler durumunda olduğu gibi, OAuth token’lı HTTP isteği hedef host .googleapis.com olmalıdır.
Caution
Bu nedenle, kullanıcı tarafından kontrol edilen bir HTTP endpoint belirterek OIDC token’ı leak etmek mümkün olsa da, OAuth token’ı leak etmek için bu korumayı atlatacak bir bypass gerekir. Yine de, OAuth token ile connector’lar veya HTTP istekleri kullanarak herhangi bir GCP api üzerinde SA adına işlem gerçekleştirebilirsiniz.
Oauth
Workflow HTTP request with OAuth token
```yaml - step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE ```Workflow HTTP isteği (OIDC token ile)
```yaml - step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE ```Bu izin ile workflows.workflows.create yerine zaten var olan bir workflow’u güncelleyerek aynı saldırıları gerçekleştirmek mümkündür.
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

