GCP - Cloud Run Enum
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
Cloud Run
Cloud Run 是一个无服务器的托管计算平台,允许您直接在 Google 的可扩展基础设施上运行容器。
您可以运行您的容器,或者如果您使用 Go、Node.js、Python、Java、.NET Core 或 Ruby,您可以使用 source-based deployment 选项,该选项为您构建容器。
Google 构建了 Cloud Run,以与 Google Cloud 上的其他服务良好协作,因此您可以构建功能齐全的应用程序。
Services and jobs
在 Cloud Run 上,您的代码可以作为 服务 持续运行,或作为 作业 运行。服务和作业都在相同的环境中运行,并可以使用与 Google Cloud 上其他服务的相同集成。
- Cloud Run services. 用于运行响应 web 请求或事件的代码。
- Cloud Run jobs. 用于运行执行工作(作业)的代码,并在工作完成时退出。
Cloud Run Service
Google Cloud Run 是另一个无服务器的服务,您也可以在其中搜索环境变量。Cloud Run 默认创建一个小型 web 服务器,运行在容器内的 8080 端口,等待 HTTP GET 请求。当请求被接收时,将执行一个作业,并通过 HTTP 响应输出作业日志。
Relevant details
- 默认情况下,web 服务器的访问是公开的,但也可以限制为内部流量(VPC…)
此外,联系 web 服务器的身份验证可以是允许所有或通过 IAM 进行身份验证。 - 默认情况下,加密使用Google 管理的密钥,但也可以选择来自KMS的CMEK(客户管理的加密密钥)。
- 默认情况下,使用的服务账户是计算引擎默认账户,该账户对项目具有编辑者访问权限,并且具有范围
cloud-platform。 - 可以为执行定义明文环境变量,甚至可以挂载云密钥或将云密钥添加到环境变量。
- 还可以添加与 Cloud SQL 的连接并挂载文件系统。
- 部署的服务的URLs 类似于
https://<svc-name>-<random>.a.run.app - 一个 Run Service 可以有多个版本或修订版,并且可以在多个修订版之间分流流量。
Enumeration
# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke
# Get info of a service
gcloud run services describe --region <region> <svc-name>
# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json
# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>
# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>
# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>
# Attempt to trigger a job unauthenticated
curl <url>
# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>
Cloud Run Jobs
Cloud Run 作业更适合 运行到完成并且不提供请求的容器。作业没有提供请求或监听端口的能力。这意味着与 Cloud Run 服务不同,作业不应捆绑 Web 服务器。相反,作业容器在完成时应退出。
Enumeration
gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>
权限提升
在以下页面中,您可以查看如何滥用 cloud run 权限以提升权限:
未经身份验证的访问
GCP - Cloud Run Unauthenticated Enum
后期利用
GCP - Cloud Run Post Exploitation
持久性
参考
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

