From 420929d30a802f47219e20176e706c5d57a8e92d Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 15 Nov 2025 11:48:07 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat --- .../gcp-misc-perms-privesc.md | 23 ++++++++++------ .../gcp-orgpolicy-privesc.md | 27 +++++++++++++++++-- 2 files changed, 40 insertions(+), 10 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 199a94eb6..56ea05b43 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 - Privilegi Generici Privesc +# GCP - Generic Permissions Privesc {{#include ../../../banners/hacktricks-training.md}} -## Permessi Interessanti Generici +## Permessi generici interessanti ### \*.setIamPolicy -Se possiedi un utente che ha il permesso **`setIamPolicy`** in una risorsa, puoi **escalare i privilegi in quella risorsa** perché sarai in grado di modificare la policy IAM di quella risorsa e darti più privilegi su di essa.\ -Questo permesso può anche consentire di **escalare ad altri principi** se la risorsa consente di eseguire codice e il iam.ServiceAccounts.actAs non è necessario. +Se possiedi un utente che ha il permesso **`setIamPolicy`** su una risorsa puoi **escalare i privilegi in quella risorsa** perché potrai modificare la policy IAM della risorsa e concederti più privilegi su di essa.\ +Questo permesso può anche permettere di **escalare ad altri principal** se la risorsa permette di eseguire codice e `iam.ServiceAccounts.actAs` non è necessario. - _cloudfunctions.functions.setIamPolicy_ -- Modifica la policy di una Cloud Function per consentire a te stesso di invocarla. +- Modify the policy of a Cloud Function to allow yourself to invoke it. -Ci sono decine di tipi di risorse con questo tipo di permesso, puoi trovarli tutti in [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) cercando setIamPolicy. +Ci sono decine di tipi di risorsa con questo tipo di permesso; puoi trovarli tutti su [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) cercando setIamPolicy. ### \*.create, \*.update -Questi permessi possono essere molto utili per cercare di escalare i privilegi nelle risorse **creando una nuova o aggiornando una esistente**. Questi tipi di permessi sono particolarmente utili se hai anche il permesso **iam.serviceAccounts.actAs** su un Service Account e la risorsa su cui hai .create/.update può allegare un service account. +Questi permessi possono essere molto utili per tentare di escalare i privilegi sulle risorse creando una nuova risorsa o aggiornandone una esistente. Questi tipi di permessi sono particolarmente utili se hai anche il permesso **iam.serviceAccounts.actAs** su una Service Account e la risorsa su cui hai .create/.update può collegare una service account. ### \*ServiceAccount\* -Questo permesso ti permetterà solitamente di **accedere o modificare un Service Account in qualche risorsa** (es.: compute.instances.setServiceAccount). Questo **potrebbe portare a un vettore di escalation dei privilegi**, ma dipenderà da ciascun caso. +Questo permesso di solito ti permetterà di **accedere o modificare una Service Account in una risorsa** (es.: compute.instances.setServiceAccount). Questo **potrebbe portare a un vettore di escalation di privilegi**, ma dipenderà da ciascun caso. + +### iam.ServiceAccounts.actAs + +Questo permesso ti permette di collegare una Service Account a una risorsa che lo supporta (es.: Compute Engine VM, Cloud Function, Cloud Run, etc).\ +Se puoi collegare una Service Account che ha più privilegi del tuo utente a una risorsa che può eseguire codice, potrai escalare i tuoi privilegi eseguendo codice con quella Service Account. + +Search in Cloud Hacktricks for `iam.ServiceAccounts.actAs` to find several examples of how to escalate privileges with this permission. {{#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 f812502ed..4b720dfea 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` -Un attaccante che sfrutta **orgpolicy.policy.set** può manipolare le politiche organizzative, il che gli permetterà di rimuovere alcune restrizioni che ostacolano operazioni specifiche. Ad esempio, il vincolo **appengine.disableCodeDownload** di solito blocca il download del codice sorgente di App Engine. Tuttavia, utilizzando **orgpolicy.policy.set**, un attaccante può disattivare questo vincolo, ottenendo così accesso per scaricare il codice sorgente, nonostante fosse inizialmente protetto. +Un attaccante che sfrutta **orgpolicy.policy.set** può manipolare le policy organizzative, permettendogli di rimuovere determinate restrizioni che ostacolano operazioni specifiche. Per esempio, il vincolo **appengine.disableCodeDownload** di solito impedisce il download del codice sorgente di App Engine. Tuttavia, utilizzando **orgpolicy.policy.set**, un attaccante può disattivare questo vincolo, ottenendo così l'accesso per scaricare il codice sorgente, nonostante inizialmente fosse protetto. ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ] @@ -14,8 +14,31 @@ gcloud resource-manager org-policies describe [--folder | --or # Disable gcloud resource-manager org-policies disable-enforce [--folder | --organization | --project ] ``` -Un script Python per questo metodo può essere trovato [qui](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py). +Uno script Python per questo metodo è disponibile [qui](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py). +### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs` + +Di solito non è possibile associare un service account di un progetto diverso a una risorsa perché è applicato un vincolo di policy chiamato **`iam.disableCrossProjectServiceAccountUsage`** che impedisce questa azione. + +È possibile verificare se questo vincolo è applicato eseguendo il comando seguente: +```bash +gcloud resource-manager org-policies describe \ +constraints/iam.disableCrossProjectServiceAccountUsage \ +--project= \ +--effective + +booleanPolicy: +enforced: true +constraint: constraints/iam.disableCrossProjectServiceAccountUsage +``` +Questo impedisce a un attaccante di abusare del permesso **`iam.serviceAccounts.actAs`** per impersonare un service account di un altro progetto senza i necessari permessi infrastrutturali aggiuntivi per avviare, ad esempio, una nuova VM, il che potrebbe portare a privilege escalation. + +Tuttavia, un attaccante con il permesso **`orgpolicy.policy.set`** può aggirare questa restrizione disabilitando il vincolo **`iam.disableServiceAccountProjectWideAccess`**. Questo permette all'attaccante di associare un service account di un altro progetto a una risorsa nel proprio progetto, incrementando di fatto i suoi privilegi. +```bash +gcloud resource-manager org-policies disable-enforce \ +iam.disableCrossProjectServiceAccountUsage \ +--project= +``` ## Riferimenti - [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)