0Pricing
Ethical Hacking Academy · 课时

IAM 错误配置

权限过度开放的角色

IAM 错误配置 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。

为什么 IAM 才是真正的边界

在云环境中,身份就是新的边界。IAM(身份与访问管理)决定谁可以执行什么操作。IAM 中的缺陷可能让攻击者从低权限立足点提升到对整个账户的控制。

  • 用户、角色和服务账户都是身份
  • 策略定义权限
  • 配置错误的策略是云环境中最主要的风险

大多数云权限提升问题都源于 IAM。

用户、角色与策略

AWS IAM 有三个您必须理解的基本组成部分:

  • 用户 — 持有访问密钥的长期身份
  • 角色 — 可由用户或服务代入的临时身份
  • 策略 — 授予或拒绝对资源执行操作的 JSON 文档

策略附加得过于宽泛,就会产生权限过度授予的问题。

{
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::reports-bucket/*"
}

通配符的危险

最危险的 IAM 模式是通配符策略。它会授予对所有资源执行所有操作的权限。

如果攻击者入侵了拥有此策略的身份,就等于控制了整个账户。

{
  "Effect": "Allow",
  "Action": "*",
  "Resource": "*"
}

# Action:* Resource:* = full administrative control.
# Flag this everywhere it appears outside a break-glass admin role.

枚举您自身的权限

一旦持有凭证,就应列出它可以执行的操作。IAM 提供了可揭示附加策略的读取 API。

有些账户甚至会向普通用户授予 iam:Get* 和 iam:List*,相当于免费提供了一份权限地图。

# List policies attached to a user
aws iam list-attached-user-policies --user-name devuser

# Get the JSON of a managed policy version
aws iam get-policy-version \
  --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess \
  --version-id v1

通过 iam:PassRole 提升权限

一种经典的权限提升方式是:用户拥有 iam:PassRole 和创建服务的权限。这样,他们就可以启动一个能够代入高权限角色的资源,并继承该角色的访问权限。

  • 用户拥有 ec2:RunInstances + iam:PassRole
  • 他们启动一个附加了管理员角色的 EC2 实例
  • 该实例现在持有管理员凭证,而他们可以将其取出

用户从未直接拥有管理员权限,却通过这种方式提升了权限。

危险的权限组合

单个权限可能没有危害,但组合起来就可能形成权限提升路径。已知的高风险组合包括:

  • iam:CreatePolicyVersion — 重写现有策略以授予管理员权限
  • iam:AttachUserPolicy — 将 AdministratorAccess 附加给自己
  • 对其他用户使用 iam:CreateAccessKey — 窃取其身份
  • 对信任范围过宽的角色使用 sts:AssumeRole

工具可以自动枚举这些组合。

信任策略与 AssumeRole

角色拥有用于定义谁可以代入该角色的信任策略。范围过宽的信任策略就是一个后门。

如果某个角色错误地信任整个账户,甚至信任外部账户,攻击者就可以代入该角色。

{
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
  "Action": "sts:AssumeRole"
}

# Trusting the entire account root means ANY identity in it can assume the role.

自动发现权限提升路径

手动检查每种策略组合十分繁琐。工具可以为您绘制权限提升路径。

  • Pacu — 带有权限提升模块的 AWS 利用框架
  • PMapper — 绘制 IAM 关系图并查找权限提升边
  • enumerate-iam — 穷举某个密钥可以调用的 API
# Run Pacu's IAM privilege escalation enumeration
pacu
# > run iam__privesc_scan

# Build an IAM access graph and query it
pmapper graph create
pmapper query 'preset privesc *'

内联策略与托管策略

授予权限有两种方式,攻击者会同时检查这两种方式:

  • 托管策略 — 可重复使用,并可附加到多个身份
  • 内联策略 — 直接嵌入单个用户或角色

内联策略在审计中很容易被遗漏,因此经常隐藏着过多权限。评估身份时,务必同时枚举这两类策略。

# Inline policies are listed separately from attached ones
aws iam list-user-policies --user-name devuser
aws iam get-user-policy --user-name devuser --policy-name custom-inline

加固:最小权限

修复 IAM 配置错误的方法是遵循最小权限原则:只授予完成任务所需的确切权限。

  • 用明确的操作和资源 ARN 替代通配符
  • 使用具有短期凭证的角色,而不是长期密钥
  • 使用 Access Analyzer 审计未使用的权限
  • 对高权限身份强制启用 MFA

您的报告应将每项发现对应到一项遵循最小权限原则的修复措施。

保持在授权范围内

权限提升测试会主动改变账户状态。请务必谨慎:

  • 创建策略、密钥或角色具有侵入性,必须获得书面批准
  • 记录每项更改,以便恢复
  • 优先采用只读枚举,在利用路径前先证明其存在

通常只需证明权限提升路径存在即可,不一定需要将其完全利用。

快速检查

哪种权限组合是经典的 AWS 权限提升路径?

回顾:IAM 配置错误

您已经了解了为什么 IAM 是云环境真正的边界,以及攻击者如何利用它。

  • 通配符 Action:* Resource:* 策略会造成灾难性后果
  • iam:PassRole + 创建服务的权限可以实现权限提升
  • 范围过宽的信任策略允许攻击者代入角色
  • Pacu 和 PMapper 等工具可以自动发现路径
  • 修复措施始终应遵循最小权限原则

接下来我们将学习 S3 和存储暴露问题。

常见问题解答

「IAM 错误配置」课时是免费的吗?

是的 — 「IAM 错误配置」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。

「IAM 错误配置」这节课中我会学到什么?

权限过度开放的角色 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ethical Hacking Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「IAM 错误配置」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?

能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 云攻击面
  2. IAM 错误配置
  3. S3 与存储暴露
  4. 元数据与 SSRF
← 返回 Ethical Hacking Academy