GCP - IAM, Principals & Org Policies Enum
Last updated
Last updated
学习和实践 AWS 黑客技术: 学习和实践 GCP 黑客技术:
有关服务账户的介绍,请查看:
服务账户始终属于一个项目:
有关 GCP 中用户与组如何工作的介绍,请查看:
通过权限 serviceusage.services.enable
和 serviceusage.services.use
,可以在项目中 启用服务 并使用它们。
请注意,默认情况下,Workspace 用户被授予 项目创建者 角色,使他们能够 创建新项目。当用户创建项目时,他被授予 owner
角色。因此,他可以 在项目上启用这些服务以便能够枚举 Workspace。
然而,请注意,还需要在 Workspace 中拥有 足够的权限 才能调用这些 API。
如果您可以 启用 admin
服务,并且您的用户在 Workspace 中拥有 足够的权限,您可以使用以下代码 枚举所有组和用户。
即使它显示 identity groups
,它也会返回 没有任何组的用户:
即使启用了管理员服务,您也可能会因为被攻陷的工作区用户权限不足而在枚举时遇到错误:
这些 角色 授予 权限:
billing.accounts.create
和 resourcemanager.organizations.get
resourcemanager.organizations.get
和 resourcemanager.projects.create
GCP 组织中的最高权限是 组织管理员 角色。
在大多数服务中,您将能够使用 add-iam-policy-binding
或 set-iam-policy
方法更改资源的权限。主要区别在于 add-iam-policy-binding
添加一个新的角色绑定 到现有的 IAM 策略,而 set-iam-policy
将 删除之前 授予的权限,并 仅设置命令中指示的权限。
有不同的方法可以检查用户在不同资源(如组织、文件夹、项目等)中的所有权限,使用此服务。
权限 cloudasset.assets.searchAllIamPolicies
可以请求 资源内的所有 iam 策略。
权限 cloudasset.assets.analyzeIamPolicy
可以请求资源内某个主体的 所有 iam 策略。
权限 cloudasset.assets.searchAllResources
允许列出一个组织、文件夹或项目的所有资源。包括与 IAM 相关的资源(如角色)。
权限 cloudasset.assets.analyzeMove
也可能对检索影响资源(如项目)的策略有用
我想权限 cloudasset.assets.queryIamPolicy
也可以访问查找主体的权限
但是,请注意服务**cloudresourcemanager.googleapis.com
**需要启用。
在以下页面中,您可以查看如何滥用IAM权限以提升特权:
如果您拥有高权限,您可以:
创建新的服务账户(或在Workspace中创建用户)
给您控制的主体更多权限
给脆弱的服务账户更多特权(VM中的SSRF,脆弱的云函数…)
…
有关Org Policies是什么的介绍,请查看:
IAM策略指示主体对资源的权限,通过角色分配细粒度权限。组织政策限制这些服务的使用方式或禁用哪些功能。这有助于提高GCP环境中每个资源的最小权限。
在以下页面中,您可以查看如何滥用组织政策权限以提升权限:
在之前的示例中,参数 --labels
是必需的,因此使用了一个通用值(如果您直接使用 API,就不需要这个参数,如 )。
查看 。
来自 :当创建组织资源时,您域中的所有用户默认被授予 计费账户创建者 和 项目创建者 角色。这些默认角色允许您的用户立即开始使用 Google Cloud,但不适用于您组织资源的常规操作。
此外,当用户创建项目时,他会根据 自动获得该项目的所有者。因此,默认情况下,用户将能够创建项目并在其上运行任何服务(矿工?工作区枚举?...)
如果您无法使用之前的方法访问IAM信息并且您在红队中。您可以使用工具 来暴力破解您当前的权限。
学习和实践 AWS 黑客技术: 学习和实践 GCP 黑客技术:
查看 !
加入 💬 或 或 在 Twitter 🐦 上关注我们。
通过向 和 github 仓库提交 PR 来分享黑客技巧。