GCP - Privilege Escalation
学习并练习AWS黑客技术:HackTricks培训AWS红队专家(ARTE)
学习并练习GCP黑客技术:
HackTricks培训GCP红队专家(GRTE)
GCP提权简介
GCP,像任何其他云一样,有一些主体:用户、组和服务帐户,以及一些资源,如计算引擎、云函数... 然后,通过角色,为这些主体授予对资源的权限。这是在GCP中指定主体对资源具有的权限的方式。 有一些权限将允许用户在资源或第三方资源上获得更多权限,这就是所谓的提权(也就是利用漏洞获得更多权限)。
因此,我想将GCP提权技术分为2组:
提升为主体:这将允许您冒充另一个主体,因此可以像该主体一样行事,拥有他的所有权限。例如:滥用_getAccessToken_来冒充服务帐户。
资源上的提权:这将允许您获得对特定资源的更多权限。例如:您可以滥用_cloudfunctions_上的_setIamPolicy_权限,以允许您触发该函数。
请注意,一些资源权限还将允许您将任意服务帐户附加到资源上。这意味着您将能够使用SA启动资源,进入资源,并窃取SA令牌。因此,这将允许通过资源提升提升为主体。这在以前的几个资源中发生过,但现在发生的频率较低(但仍可能发生)。
显然,最有趣的提权技术是第二组的技术,因为它将允许您获得更多特权,超出您已经拥有某些资源权限的范围。但是,请注意,在资源中提升也可能让您访问敏感信息,甚至访问其他主体(也许通过读取包含SA令牌的秘密)。
还要注意,在GCP服务帐户既是主体又是权限,因此在SA中提升权限也将允许您冒充它。
括号中的权限指示使用gcloud
来利用漏洞所需的权限。如果通过API利用漏洞,则可能不需要这些权限。
提权方法论的权限
这是我测试特定权限以执行GCP内部特定操作的方法。
在tests/中添加新脚本
绕过访问范围
从GCP元数据服务泄漏的SA令牌具有访问范围。这些是对令牌具有的权限的限制。例如,如果令牌具有**https://www.googleapis.com/auth/cloud-platform
范围,它将对所有GCP服务具有完全访问权限**。但是,如果令牌具有**https://www.googleapis.com/auth/cloud-platform.read-only
范围,即使SA在IAM中具有更多权限,它也只能对所有GCP服务进行只读访问**。
没有直接的方法来绕过这些权限,但您可以尝试在受损主机中搜索新凭据,找到服务密钥以生成没有限制的OAuth令牌,或者跳转到权限较低的不同VM。
当使用访问范围时,为计算实例(VM)生成的OAuth令牌将包含范围的限制。但是,您可能能够绕过此限制并利用受损帐户具有的权限。
绕过此限制的最佳方法是在受损主机中查找新凭据,找到服务密钥以生成没有限制的OAuth令牌,或者攻击权限较低的不同VM。
使用以下命令检查具有生成密钥的SA:
提权技术
在AWS中提升权限的方法是拥有足够的权限,以便能够以某种方式访问其他服务账户/用户/组的权限。通过串联提权直到获得组织的管理员访问权限。
GCP有数百(如果不是数千)个权限可以授予实体。在本书中,您可以找到我所知道的所有可以滥用以提升权限的权限,但如果您知道这里没有提到的某些路径,请分享。
本节的子页面按服务排序。您可以在每个服务中找到不同的提权方式。
滥用GCP以在本地提升权限
如果您在GCP中的一台机器内,您可能能够滥用权限以在本地提升权限:
GCP - local privilege escalation ssh pivoting参考资料
学习并练习AWS黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习并练习GCP黑客技术:
HackTricks 培训 GCP 红队专家 (GRTE)
Last updated