GCP - Orgpolicy Privesc

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

orgpolicy

orgpolicy.policy.set

Atakujący wykorzystujący orgpolicy.policy.set może manipulować politykami organizacji, co pozwoli mu usunąć pewne ograniczenia utrudniające wykonywanie określonych operacji. Na przykład ograniczenie appengine.disableCodeDownload zwykle blokuje pobieranie kodu źródłowego App Engine. Jednak używając orgpolicy.policy.set, atakujący może dezaktywować to ograniczenie, uzyskując w ten sposób dostęp do pobrania kodu źródłowego, mimo że początkowo był on chroniony.

Pobierz informacje o org policy i wyłącz egzekwowanie ```bash # Get info gcloud resource-manager org-policies describe [--folder | --organization | --project ]

Disable

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

</details>

Skrypt python dla tej metody znajduje się [tutaj](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py).

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

Zazwyczaj nie można przypisać service account z innego projektu do zasobu, ponieważ obowiązuje ograniczenie polityki o nazwie **`iam.disableCrossProjectServiceAccountUsage`**, które zapobiega tej akcji.

Można sprawdzić, czy to ograniczenie jest egzekwowane, wykonując następujące polecenie:

<details>
<summary>Weryfikacja ograniczenia użycia service account między projektami</summary>
```bash
gcloud resource-manager org-policies describe \
constraints/iam.disableCrossProjectServiceAccountUsage \
--project=<project-id> \
--effective

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

To uniemożliwia atakującemu nadużycie uprawnienia iam.serviceAccounts.actAs w celu podszycia się pod service account z innego projektu bez koniecznych dodatkowych uprawnień infra — np. do uruchomienia nowej VM — co mogłoby prowadzić do eskalacji uprawnień.

Jednak atakujący posiadający uprawnienia orgpolicy.policy.set może obejść to ograniczenie, wyłączając constraint `iam.disableServiceAccountProjectWideAccess``. Pozwala to atakującemu przypisać service account z innego projektu do zasobu w swoim własnym projekcie, skutecznie eskalując swoje uprawnienia.

Wyłącz ograniczenie przypisywania service account między projektami ```bash gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project= ```

Źródła

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks