GCP - Orgpolicy Privesc

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

orgpolicy

orgpolicy.policy.set

Un attaquant disposant de orgpolicy.policy.set peut manipuler les policies organisationnelles, ce qui lui permettra de supprimer certaines restrictions empêchant certaines opérations. Par exemple, la contrainte appengine.disableCodeDownload bloque généralement le téléchargement du code source App Engine. Cependant, en utilisant orgpolicy.policy.set, un attaquant peut désactiver cette contrainte, obtenant ainsi l’accès au téléchargement du code source, malgré sa protection initiale.

Récupérer les informations d'orgpolicy et désactiver l'application des contraintes ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ]

Disable

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

</details>

Un script python pour cette méthode peut être trouvé [ici](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py).

### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs`

Habituellement, il n'est pas possible d'attacher un service account provenant d'un projet différent à une ressource parce qu'une contrainte de politique est appliquée nommée **`iam.disableCrossProjectServiceAccountUsage`** qui empêche cette action.

Il est possible de vérifier si cette contrainte est appliquée en exécutant la commande suivante :

<details>
<summary>Vérifier la contrainte de service account inter-projets</summary>
```bash
gcloud resource-manager org-policies describe \
constraints/iam.disableCrossProjectServiceAccountUsage \
--project=<project-id> \
--effective

booleanPolicy:
enforced: true
constraint: constraints/iam.disableCrossProjectServiceAccountUsage

Cela empêche un attaquant d’abuser de la permission iam.serviceAccounts.actAs pour usurper un compte de service d’un autre projet sans disposer des permissions d’infrastructure nécessaires pour, par exemple, démarrer une nouvelle VM, ce qui pourrait conduire à une élévation de privilèges.

Cependant, un attaquant disposant de la permission orgpolicy.policy.set peut contourner cette restriction en désactivant la contrainte iam.disableServiceAccountProjectWideAccess. Cela permet à l’attaquant d’attacher un compte de service d’un autre projet à une ressource dans son propre projet, augmentant ainsi effectivement ses privilèges.

Disable cross-project service account constraint ```bash gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project= ```

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks