GCP - Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
GCP, 和其他云一样,有一些 原则:用户、组和服务账户,以及一些 资源,如计算引擎、云函数… 然后,通过角色,权限被授予这些原则对资源的访问。这就是在 GCP 中指定原则对资源的权限的方式。 有某些权限将允许用户 获得更多权限,无论是对资源还是第三方资源,这就是所谓的 权限提升(此外,利用漏洞以获取更多权限)。
因此,我想将 GCP 权限提升技术分为 两组:
对一个原则的权限提升:这将允许你 冒充另一个原则,因此可以像它一样行事,拥有它的所有权限。例如:滥用 getAccessToken 来冒充服务账户。
对资源的权限提升:这将允许你 获得对特定资源的更多权限。例如:你可以滥用 setIamPolicy 权限来允许你触发函数。
请注意,一些 资源权限还将允许你将任意服务账户附加到资源。这意味着你将能够启动一个带有 SA 的资源,进入该资源,并 窃取 SA 令牌。因此,这将允许通过资源提升来提升到一个原则。这在以前的多个资源中发生过,但现在不太频繁(但仍然可能发生)。
显然,最有趣的权限提升技术是 第二组,因为它将允许你 在你已经拥有某些权限的资源之外获得更多权限。然而,请注意,在资源中提升 也可能使你访问 敏感信息 或甚至 其他原则(可能通过读取包含 SA 令牌的秘密)。
同样重要的是要注意,在 GCP 中,服务账户既是原则也是权限,因此在 SA 中提升权限也将允许你冒充它。
括号中的权限表示利用漏洞所需的权限,使用 gcloud
。如果通过 API 利用,则可能不需要这些权限。
这是我 测试特定权限 以在 GCP 内执行特定操作的方法。
下载 github 仓库 https://github.com/carlospolop/gcp_privesc_scripts
在 tests/ 中添加新的脚本
从 GCP 元数据服务泄露的 SA 令牌具有 访问范围。这些是对令牌所具有的 权限 的 限制。例如,如果令牌具有 https://www.googleapis.com/auth/cloud-platform
范围,它将对所有 GCP 服务具有 完全访问权限。然而,如果令牌具有 https://www.googleapis.com/auth/cloud-platform.read-only
范围,它将仅对所有 GCP 服务具有 只读访问权限,即使 SA 在 IAM 中具有更多权限。
没有直接的方法可以绕过这些权限,但你可以始终尝试在被攻陷的主机中搜索 新凭据,找到服务密钥 以生成没有限制的 OAuth 令牌,或 跳转到一个限制较少的不同 VM。
当使用 访问范围 时,为计算实例(VM)生成的 OAuth 令牌将 包含 范围 限制。然而,你可能能够 绕过 这个限制并利用被攻陷账户的权限。
绕过 这个限制的 最佳方法 是在被攻陷的主机中 找到新凭据,找到 服务密钥以生成没有限制的 OAuth 令牌,或 攻陷一个限制较少的不同 VM。
检查带有生成密钥的 SA:
在 AWS 中提升权限的方法是拥有足够的权限,以便能够以某种方式访问其他服务帐户/用户/组的权限。通过链式提升,直到您获得组织的管理员访问权限。
GCP 有 数百(如果不是数千)个 权限 可以授予实体。在本书中,您可以找到 我所知道的所有权限,您可以利用这些权限来 提升权限,但如果您 知道一些未提及的路径,请分享。
本节的子页面按服务排序。您可以在每个服务中找到不同的权限提升方法。
如果您在 GCP 的一台机器内部,您可能能够利用权限在本地提升权限:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术: HackTricks 培训 GCP 红队专家 (GRTE)