GCP - Orgpolicy Privesc

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

orgpolicy

orgpolicy.policy.set

Un attaccante che sfrutta orgpolicy.policy.set può manipolare le organizational policies, permettendogli di rimuovere certe restrizioni che impediscono operazioni specifiche. Per esempio, il vincolo appengine.disableCodeDownload solitamente blocca il download del source code di App Engine. Tuttavia, usando orgpolicy.policy.set, un attaccante può disattivare questo vincolo, ottenendo così l’accesso per scaricare il codice sorgente, nonostante fosse inizialmente protetto.

Ottieni informazioni su orgpolicy e disabilita l'applicazione della policy ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ]

Disable

gcloud resource-manager org-policies disable-enforce [–folder | –organization | –project ]

</details>

Uno script Python per questo metodo è disponibile [here](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 proveniente da un progetto diverso a una risorsa perché esiste un vincolo di policy applicato chiamato **`iam.disableCrossProjectServiceAccountUsage`** che impedisce questa azione.

È possibile verificare se questo vincolo è applicato eseguendo il seguente comando:

<details>
<summary>Verifica vincolo cross-project per service account</summary>
```bash
gcloud resource-manager org-policies describe \
constraints/iam.disableCrossProjectServiceAccountUsage \
--project=<project-id> \
--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 le ulteriori autorizzazioni infrastrutturali necessarie per avviare, ad esempio, una nuova VM, il che potrebbe portare a un escalation di privilegi.

Tuttavia, un attaccante con i permessi orgpolicy.policy.set può aggirare questa restrizione disabilitando il vincolo iam.disableServiceAccountProjectWideAccess. Questo permette all’attaccante di associare un service account proveniente da un altro progetto a una risorsa nel proprio progetto, aumentando effettivamente i suoi privilegi.

Disabilita il vincolo per i service account tra progetti ```bash gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project= ```

Riferimenti

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks