mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat
This commit is contained in:
+12
-7
@@ -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}}
|
||||
|
||||
+24
-1
@@ -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/)
|
||||
|
||||
Reference in New Issue
Block a user