From a23a258685dc78e63bb9f57f87c277adc64babe6 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Nov 2025 11:49:17 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat --- .../gcp-misc-perms-privesc.md | 23 ++++++++++----- .../gcp-orgpolicy-privesc.md | 29 +++++++++++++++++-- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md index baeb200ec..c85325759 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-misc-perms-privesc.md @@ -1,25 +1,32 @@ -# GCP - Generičke Dozvole Privesc +# GCP - Generic Permissions Privesc {{#include ../../../banners/hacktricks-training.md}} -## Generičke Zanimljive Dozvole +## Generic Interesting Permissions ### \*.setIamPolicy -Ako posedujete korisnika koji ima **`setIamPolicy`** dozvolu u resursu, možete **povećati privilegije u tom resursu** jer ćete moći da promenite IAM politiku tog resursa i date sebi više privilegija nad njim.\ -Ova dozvola takođe može omogućiti **povećanje privilegija za druge subjekte** ako resurs dozvoljava izvršavanje koda i iam.ServiceAccounts.actAs nije neophodan. +Ako imate korisnika koji poseduje dozvolu **`setIamPolicy`** nad nekim resursom, možete **escalate privileges in that resource** zato što ćete moći da promenite IAM politiku tog resursa i dodelite sebi više privilegija nad njim.\ +Ova dozvola takođe može omogućiti **escalate to other principals** ako resurs dozvoljava izvršavanje koda i `iam.ServiceAccounts.actAs` nije neophodan. - _cloudfunctions.functions.setIamPolicy_ -- Izmenite politiku Cloud Funkcije da biste sebi omogućili da je pozivate. +- Modify the policy of a Cloud Function to allow yourself to invoke it. -Postoji desetine tipova resursa sa ovom vrstom dozvole, možete ih pronaći na [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) pretražujući za setIamPolicy. +Postoji na desetine tipova resursa sa ovom vrstom dozvole; sve ih možete pronaći na [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) pretraživanjem za setIamPolicy. ### \*.create, \*.update -Ove dozvole mogu biti veoma korisne za pokušaj povećanja privilegija u resursima **kreiranjem novog ili ažuriranjem postojećeg**. Ove vrste dozvola su posebno korisne ako takođe imate dozvolu **iam.serviceAccounts.actAs** nad Servisnim Nalogom i resurs na koji imate .create/.update može da poveže servisni nalog. +Ove dozvole mogu biti vrlo korisne za pokušaj da se escalatе privileges u resursima kreiranjem novog resursa ili ažuriranjem postojećeg. Ove vrste dozvola su posebno korisne ako takođe imate dozvolu **iam.serviceAccounts.actAs** nad Service Account-om i resurs nad kojim imate .create/.update može da prikači Service Account. ### \*ServiceAccount\* -Ova dozvola obično će vam omogućiti **pristup ili izmenu Servisnog Naloga u nekom resursu** (npr.: compute.instances.setServiceAccount). Ovo **može dovesti do vektora povećanja privilegija**, ali će zavisiti od svakog pojedinačnog slučaja. +Ova dozvola će obično omogućiti da **access or modify a Service Account in some resource** (npr.: compute.instances.setServiceAccount). Ovo **could lead to a privilege escalation** vektor, ali će zavisiti od konkretnog slučaja. + +### iam.ServiceAccounts.actAs + +Ova dozvola vam omogućava da prikačite Service Account na resurs koji to podržava (npr.: Compute Engine VM, Cloud Function, Cloud Run, itd).\ +Ako možete da prikačite Service Account koji ima više privilegija od vašeg korisnika na resurs koji može izvršavati kod, bićete u mogućnosti da escalate your privileges izvršavanjem koda sa tim Service Account-om. + +Pretražite Cloud Hacktricks za `iam.ServiceAccounts.actAs` da biste našli nekoliko primera kako da escalate privileges koristeći ovu dozvolu. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md index df0c93fb1..b5b3b7380 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-orgpolicy-privesc.md @@ -6,7 +6,7 @@ ### `orgpolicy.policy.set` -Napadač koji koristi **orgpolicy.policy.set** može manipulisati organizacionim politikama, što će mu omogućiti da ukloni određena ograničenja koja ometaju specifične operacije. Na primer, ograničenje **appengine.disableCodeDownload** obično blokira preuzimanje izvornog koda App Engine-a. Međutim, korišćenjem **orgpolicy.policy.set**, napadač može deaktivirati ovo ograničenje, čime dobija pristup za preuzimanje izvornog koda, uprkos tome što je prvobitno bio zaštićen. +Napadač koji koristi **orgpolicy.policy.set** može manipulisati organizacionim politikama, što mu omogućava da ukloni određena ograničenja koja sprečavaju određene operacije. Na primer, ograničenje **appengine.disableCodeDownload** obično blokira preuzimanje izvornog koda App Engine-a. Međutim, korišćenjem **orgpolicy.policy.set**, napadač može deaktivirati ovo ograničenje, čime dobija pristup za preuzimanje izvornog koda, iako je on prvobitno bio zaštićen. ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ] @@ -14,9 +14,32 @@ gcloud resource-manager org-policies describe [--folder | --or # Disable gcloud resource-manager org-policies disable-enforce [--folder | --organization | --project ] ``` -Python skripta za ovu metodu može se naći [ovde](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py). +A python skripta za ovu metodu može se pronaći [here](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py). -## Reference +### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs` + +Obično nije moguće prikačiti service account iz drugog projekta na resource zato što postoji policy constraint koji se primenjuje i zove se **`iam.disableCrossProjectServiceAccountUsage`** i koji sprečava ovu akciju. + +Moguće je proveriti da li se ovo ograničenje primenjuje pokretanjem sledeće komande: +```bash +gcloud resource-manager org-policies describe \ +constraints/iam.disableCrossProjectServiceAccountUsage \ +--project= \ +--effective + +booleanPolicy: +enforced: true +constraint: constraints/iam.disableCrossProjectServiceAccountUsage +``` +Ovo sprečava napadača da zloupotrebi dozvolu **`iam.serviceAccounts.actAs`** da se predstavlja kao service account iz drugog projekta bez potrebnih daljih infra permissions da, na primer, pokrene novu VM, što bi moglo dovesti do privilege escalation. + +Međutim, napadač sa dozvolama **`orgpolicy.policy.set`** može zaobići ovo ograničenje onemogućavanjem ograničenja **`iam.disableServiceAccountProjectWideAccess`**. Ovo omogućava napadaču da prikači service account iz drugog projekta na resurs u svom projektu, effectively escalating his privileges. +```bash +gcloud resource-manager org-policies disable-enforce \ +iam.disableCrossProjectServiceAccountUsage \ +--project= +``` +## Literatura - [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)