GCP - local privilege escalation ssh pivoting
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
在这个场景中,我们假设你已经在 Compute Engine 项目中的虚拟机内入侵了一个非特权账户。
令人惊讶的是,你所入侵的计算引擎的 GCP 权限可能帮助你在机器内部提升本地权限。即使在云环境中这并不总是非常有用,但知道这是可能的还是很好的。
计算实例可能用于执行一些脚本以使用其服务账户执行操作。
由于 IAM 权限非常细粒度,一个账户可能对某个资源具有读/写权限,但没有列出权限。
一个很好的假设例子是一个计算实例,它有权限读取/写入名为 instance82736-long-term-xyz-archive-0332893
的存储桶的备份。
从命令行运行 gsutil ls
不会返回任何内容,因为服务账户缺少 storage.buckets.list
IAM 权限。然而,如果你运行 gsutil ls gs://instance82736-long-term-xyz-archive-0332893
,你可能会找到一个完整的文件系统备份,从而获得你本地 Linux 账户所缺乏的明文数据访问。
你可能能够在脚本中找到这个存储桶的名称(在 bash、Python、Ruby 等中)。
管理员可以在实例和项目级别添加 自定义元数据。这只是将任意键/值对传递到实例的一种方式,通常用于环境变量和启动/关闭脚本。
此外,可以添加用户数据,这是一个将在每次机器启动或重启时执行的脚本,并且可以从元数据端点访问。
更多信息请查看:
以下大多数提议的权限是授予默认计算服务账户的,唯一的问题是默认访问范围阻止服务账户使用它们。然而,如果启用了 cloud-platform
范围或仅启用了 compute
范围,你将能够滥用它们。
检查以下权限:
检查是否有其他用户在盒子内登录了 gcloud 并将其凭据留在文件系统中:
这些是最有趣的文件:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
~/.credentials.json
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)