GCP - Cloud Run Enum
Cloud Run
Cloud Run 是一个无服务器托管计算平台,允许您直接在 Google 的可扩展基础设施上运行容器。
您可以运行您的容器,或者如果您使用 Go、Node.js、Python、Java、.NET Core 或 Ruby,您可以使用基于源代码部署选项,该选项会为您构建容器。
Google 已经构建了 Cloud Run,以便与 Google Cloud 上的其他服务良好配合,因此您可以构建功能齐全的应用程序。
服务和作业
在 Cloud Run 上,您的代码可以作为一个_服务或一个作业_连续运行。服务和作业都在相同的环境中运行,并且可以与 Google Cloud 上的其他服务进行相同的集成。
Cloud Run 服务。 用于运行响应 web 请求或事件的代码。
Cloud Run 作业。 用于运行执行工作(作业)并在工作完成后退出的代码。
Cloud Run 服务
Google Cloud Run 是另一个无服务器提供,您可以在其中搜索环境变量。Cloud Run 创建一个小型的 Web 服务器,默认在容器内部的端口 8080 上运行,等待 HTTP GET 请求。当收到请求时,会执行作业,并通过 HTTP 响应输出作业日志。
相关细节
默认情况下,对 Web 服务器的访问是公开的,但也可以限制为内部流量(VPC...) 此外,联系 Web 服务器的身份验证可以是允许所有或通过 IAM 要求身份验证。
默认情况下,加密使用Google 管理的密钥,但也可以选择来自KMS的CMEK(客户管理的加密密钥)。
默认情况下,使用的服务帐号是具有对项目的编辑器访问权限并具有**
cloud-platform
范围的Compute Engine 默认帐号**。可以为执行定义明文环境变量,甚至挂载云密钥或将云密钥添加到环境变量。
还可以与 Cloud SQL 建立连接和挂载文件系统。
部署的服务的URL类似于**
https://<svc-name>-<random>.a.run.app
**Run 服务可以有多个版本或修订版,并且可以在多个修订版之间分配流量。
枚举
Cloud Run 作业
Cloud Run 作业更适合于运行完成且不提供请求服务的容器。作业无法提供请求服务或监听端口。这意味着与 Cloud Run 服务不同,作业不应捆绑 Web 服务器。相反,作业容器应在完成任务后退出。
枚举
提权
在以下页面中,您可以查看如何滥用云运行权限以提升特权:
GCP - Run Privesc未经身份验证访问
GCP - Cloud Run Unauthenticated Enum后渗透
GCP - Cloud Run Post Exploitation持久性
GCP - Cloud Run Persistence参考
Last updated