Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat

This commit is contained in:
Translator
2025-11-15 11:48:46 +00:00
parent ce3b9aa888
commit 80a672f70b
2 changed files with 36 additions and 8 deletions
@@ -1,25 +1,30 @@
# GCP - Generic Permissions Privesc
# GCP - Ruhusa za Kawaida Privesc
{{#include ../../../banners/hacktricks-training.md}}
## Generic Interesting Permissions
## Ruhusa za Kawaida Zinazovutia
### \*.setIamPolicy
Ikiwa unamiliki mtumiaji ambaye ana ruhusa ya **`setIamPolicy`** katika rasilimali, unaweza **kuinua mamlaka katika rasilimali hiyo** kwa sababu utaweza kubadilisha sera ya IAM ya rasilimali hiyo na kukupa mamlaka zaidi juu yake.\
Ruhusa hii pia inaweza kuruhusu **kuinuka kwa wakuu wengine** ikiwa rasilimali inaruhusu kutekeleza msimbo na iam.ServiceAccounts.actAs si muhimu.
Ikiwa una mtumiaji aliye na ruhusa ya **`setIamPolicy`** kwenye rasilimali, unaweza **escalate privileges in that resource** kwa sababu utaweza kubadilisha sera ya IAM ya rasilimali hiyo na kujipa ruhusa zaidi juu yake.\
Ruhusa hii pia inaweza kuruhusu **escalate to other principals** ikiwa rasilimali inaruhusu kutekeleza code na `iam.ServiceAccounts.actAs` si lazima.
- _cloudfunctions.functions.setIamPolicy_
- Badilisha sera ya Cloud Function ili kujiruhusu kuitisha.
Kuna aina kumi za rasilimali zenye aina hii ya ruhusa, unaweza kuziona zote katika [https://cloud.google.com/iam/docs/permissions-reference](https://cloud.google.com/iam/docs/permissions-reference) ukitafuta setIamPolicy.
Kuna aina nyingi za rasilimali zenye ruhusa ya aina hii; unaweza kuzipata zote kwenye [https://cloud.google.com/iam/docs/permissions-reference] ukitafuta setIamPolicy.
### \*.create, \*.update
Ruhusa hizi zinaweza kuwa muhimu sana kujaribu kuinua mamlaka katika rasilimali kwa **kuunda mpya au kuboresha mpya**. Aina hizi za ruhusa ni muhimu hasa ikiwa pia una ruhusa ya **iam.serviceAccounts.actAs** juu ya Akaunti ya Huduma na rasilimali unayo .create/.update juu yake inaweza kuambatisha akaunti ya huduma.
Ruhusa hizi zinaweza kuwa muhimu sana kujaribu kupandisha ruhusa katika rasilimali kwa **kuunda rasilimali mpya au kusasisha rasilimali mpya**. Aina hizi za ruhusa zinakuwa muhimu hasa ikiwa pia una ruhusa **iam.serviceAccounts.actAs** juu ya Service Account na rasilimali unayo .create/.update juu yake inaweza kuambatanisha Service Account.
### \*ServiceAccount\*
Ruhusa hii kwa kawaida itakuruhusu **kufikia au kubadilisha Akaunti ya Huduma katika rasilimali fulani** (e.g.: compute.instances.setServiceAccount). Hii **inaweza kupelekea njia ya kuinua mamlaka**, lakini itategemea kila kesi.
Ruhusa hii kwa kawaida itakuwezesha **kupata au kubadilisha Service Account katika rasilimali fulani** (mfano: compute.instances.setServiceAccount). Hii **could lead to a privilege escalation** vector, lakini itategemea kila kesi.
### iam.ServiceAccounts.actAs
Ruhusa hii itakuwezesha kuambatanisha Service Account kwa rasilimali inayoiunga mkono (mfano: Compute Engine VM, Cloud Function, Cloud Run, n.k.).\
Ikiwa unaweza kuambatanisha Service Account ambayo ina ruhusa zaidi kuliko mtumiaji wako kwenye rasilimali inayoweza kutekeleza code, utaweza **escalate your privileges** kwa kutekeleza code ukiitumia Service Account hiyo.
{{#include ../../../banners/hacktricks-training.md}}
@@ -6,7 +6,7 @@
### `orgpolicy.policy.set`
Mshambuliaji anayenufaika na **orgpolicy.policy.set** anaweza kubadilisha sera za shirika, ambayo itamruhusu kuondoa vizuizi fulani vinavyokwamisha operesheni maalum. Kwa mfano, kizuizi **appengine.disableCodeDownload** kawaida huzuia upakuaji wa msimbo wa chanzo wa App Engine. Hata hivyo, kwa kutumia **orgpolicy.policy.set**, mshambuliaji anaweza kuzima kizuizi hiki, hivyo kupata ufikiaji wa kupakua msimbo wa chanzo, licha ya kuwa awali umeprotected.
Mshambuliaji anayevutia/akitumia `orgpolicy.policy.set` anaweza kubadilisha sera za shirika, ambazo zitamruhusu kuondoa vikwazo fulani vinavyozuia shughuli maalum. Kwa mfano, kizuizi `appengine.disableCodeDownload` kwa kawaida kinazuia kupakuliwa kwa source code ya App Engine. Hata hivyo, kwa kutumia `orgpolicy.policy.set`, mshambuliaji anaweza kuzimisha kizuizi hiki, na hivyo kupata uwezo wa kupakua source code, ingawa ilikuwa imehifadhiwa hapo awali.
```bash
# Get info
gcloud resource-manager org-policies describe <org-policy> [--folder <id> | --organization <id> | --project <id>]
@@ -16,6 +16,29 @@ gcloud resource-manager org-policies disable-enforce <org-policy> [--folder <id>
```
A python script for this method can be found [here](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/orgpolicy.policy.set.py).
### `orgpolicy.policy.set`, `iam.serviceAccounts.actAs`
Kwa kawaida haiwezekani kuambatisha service account kutoka project tofauti kwenye resource kwa sababu kuna kikomo cha sera kinachotekelezwa kinachoitwa **`iam.disableCrossProjectServiceAccountUsage`** ambacho kinazuia kitendo hiki.
Inawezekana kuthibitisha kama kikomo hiki kinatekelezwa kwa kuendesha amri ifuatayo:
```bash
gcloud resource-manager org-policies describe \
constraints/iam.disableCrossProjectServiceAccountUsage \
--project=<project-id> \
--effective
booleanPolicy:
enforced: true
constraint: constraints/iam.disableCrossProjectServiceAccountUsage
```
Hii inazuia mshambuliaji kutumia vibaya ruhusa **`iam.serviceAccounts.actAs`** kujifanya akaunti ya huduma kutoka kwenye mradi mwingine bila ruhusa za ziada za miundombinu, kama kuanzisha VM mpya kwa mfano, jambo ambalo lingeweza kusababisha kupandishwa kwa ruhusa.
Hata hivyo, mshambuliaji aliye na ruhusa **`orgpolicy.policy.set`** anaweza kupita kizuizi hiki kwa kuzima constraint **`iam.disableServiceAccountProjectWideAccess`**. Hii inamwezesha mshambuliaji kuambatisha akaunti ya huduma kutoka kwenye mradi mwingine kwa rasilimali katika mradi wake mwenyewe, na kwa ufanisi kupandisha ruhusa zake.
```bash
gcloud resource-manager org-policies disable-enforce \
iam.disableCrossProjectServiceAccountUsage \
--project=<project-id>
```
## Marejeo
- [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)