GCP - Privilege Escalation
Last updated
Last updated
学习和实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) 学习和实践 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
GCP 和其他云一样,有一些 主体:用户、组和服务账户,以及一些 资源,如计算引擎、云函数… 然后,通过角色,权限被授予这些主体对资源的访问。这就是在 GCP 中指定主体对资源的权限的方式。 有些权限将允许用户 获得更多权限,无论是在资源上还是第三方资源上,这就是所谓的 特权提升(此外,利用漏洞以获取更多权限)。
因此,我想将 GCP 特权提升技术分为 2 组:
对主体的特权提升:这将允许你 冒充另一个主体,因此可以像它一样行事,拥有所有权限。例如:滥用 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。
当使用 access scopes 时,为计算实例(VM)生成的 OAuth 令牌将 包含 范围 限制。然而,你可能能够 绕过 这个限制并利用被攻陷账户的权限。
绕过 这个限制的 最佳方法 是在被攻陷的主机中 找到新凭据,找到服务密钥以生成没有限制的 OAuth 令牌,或 攻陷一个限制较少的不同 VM。
检查使用生成的密钥的 SA:
在 AWS 中提升权限的方法是拥有足够的权限,以便以某种方式访问其他服务帐户/用户/组的权限。通过链式提升,直到您获得组织的管理员访问权限。
GCP 有 数百(如果不是数千)个可以授予实体的 权限。在本书中,您可以找到 我所知道的所有权限,您可以利用这些权限来 提升权限,但如果您 知道一些未提及的路径,请分享。
本节的子页面按服务排序。您可以在每个服务中找到不同的权限提升方法。
如果您在 GCP 的一台机器内部,您可能能够利用权限在本地提升权限:
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)