利用 IAM 错误配置
在云环境中提升权限。
利用 IAM 错误配置 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
IAM:权限提升引擎
在云环境中,权限提升通常意味着滥用 IAM 权限,而不是利用内存漏洞。如果低权限身份能够修改策略、创建密钥或承担角色,就可能获得管理员权限。
- 能够修改 IAM 的权限本身就很危险。
- 权限提升路径来自策略逻辑,而不是漏洞。
- 解决方法是实施最小权限,而不是打补丁。
危险权限
某些 IAM 操作可以直接实现权限提升。请检查您控制的主体是否拥有以下权限:
- 对其他用户拥有
iam:CreateAccessKey。 iam:AttachUserPolicy/iam:PutUserPolicy(附加 AdministratorAccess)。iam:CreatePolicyVersion(重写现有策略)。iam:PassRole加上计算服务(以高权限角色运行代码)。- 信任策略薄弱的
sts:AssumeRole。
附加策略实现权限提升
如果您的身份能够为自身附加策略,那么只需一次调用即可提升权限。您可以附加托管的管理员策略,从而继承完整权限。
# Attach AdministratorAccess to yourself
aws iam attach-user-policy \
--user-name me \
--policy-arn arn:aws:iam::aws:policy/AdministratorAccess滥用 PassRole
iam:PassRole 允许您将角色交给某项服务。结合能够运行您所编写代码的服务(EC2、Lambda、Glue)后,您就可以以该角色身份执行操作,即使该角色的权限远高于您当前的权限。
# Launch a Lambda that assumes a privileged role you can pass
aws lambda create-function --function-name esc \
--role arn:aws:iam::111:role/AdminRole \
--runtime python3.12 --handler h.run --zip-file fileb://code.zip回滚策略版本
iam:CreatePolicyVersion 或 SetDefaultPolicyVersion 允许您替换策略当前生效的文档,或回滚到过去权限更宽松的版本,从而在不更改组成员关系的情况下授予广泛访问权限。
# Make a new, permissive default version of an existing policy
aws iam create-policy-version \
--policy-arn arn:aws:iam::111:policy/devs \
--policy-document file://admin.json --set-as-default信任策略与滥用 AssumeRole
角色信任策略定义了谁可以承担这些角色。薄弱的信任条件会导致角色被接管。
- 信任
*或整个账户的角色可能被广泛承担。 - 如果您能够编辑角色的信任策略,就可以将自己添加为受信任主体。
- 混淆代理问题:第三方集成角色缺少外部标识符。
# Assume a poorly-scoped role
aws sts assume-role \
--role-arn arn:aws:iam::111:role/CrossAccountAdmin \
--role-session-name pt跨云对应方式
相同的模式会在不同云服务提供商之间反复出现。
- Azure:分配用户访问管理员或所有者角色;滥用托管身份;向服务主体添加凭据。
- GCP:
iam.serviceAccounts.actAs加上计算服务;对项目使用setIamPolicy;创建服务账户密钥。
# GCP: impersonate a privileged service account
gcloud compute instances create esc --service-account priv@proj.iam.gserviceaccount.com --scopes cloud-platform用于发现路径的工具
不要靠猜测,而应使用工具从当前身份中找出可行的权限提升路径。
# Pacu (AWS exploitation framework) escalation module
pacu
run iam__privesc_scan
# PMapper query for escalation
pmapper query 'preset privesc me'连接到控制平面
权限提升通常会将数据平面访问权限逐步连接到控制平面权限。
- 攻破 VM,从元数据中窃取其实例角色凭证。
- 该实例角色拥有
PassRole加 Lambda 的权限,从而能够以管理员角色运行代码。 - 获得管理员权限后,创建持久访问密钥以保持隐蔽。
每个环节都是值得报告的独立发现。
保护 IAM
防护的核心是最小权限和防护机制。
- 移除通配符,严格限定操作和资源的范围。
- 使用权限边界和服务控制策略限制最高权限。
- 要求第三方角色使用外部标识符,并限定信任策略的范围。
- 优先使用短期角色凭证,而不是长期密钥。
- 使用访问分析器标记有风险且未使用的权限。
合乎道德地执行
IAM 权限提升可能授予整个账户范围的权限。请在概念验证阶段停止:展示这条路径,但不要创建持久后门,也不要修改您无法恢复的生产策略。请始终恢复任何策略或角色更改,并删除您创建的密钥。
对于具有干扰性的步骤(例如重写共享策略),请提前与客户协调。
快速检查
请确认您已掌握 IAM 权限提升知识。
回顾
您已经了解了 IAM 配置错误如何导致权限提升。
- 附加策略、PassRole、版本回滚和 AssumeRole 是核心路径。
- 相同的模式会在 AWS、Azure 和 GCP 中反复出现。
- Pacu 和 PMapper 可以自动发现可行路径。
- 最小权限、权限边界和外部标识符是主要防御措施。
下一步:在云账户之间实现持久访问和横向移动。
常见问题解答
「利用 IAM 错误配置」课时是免费的吗?
是的 — 「利用 IAM 错误配置」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「利用 IAM 错误配置」这节课中我会学到什么?
在云环境中提升权限。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「利用 IAM 错误配置」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。