0Pricing
Cyber Security Academy · 课时

利用 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 云攻击面
  2. 枚举云资源
  3. 利用 IAM 错误配置
  4. 持久化与横向移动
← 返回 Cyber Security Academy