
AWS Iam Privesc
AWS IAM 权限提升专项方法论。当已获取 AWS 凭据并需要提升权限、发现当前 IAM 用户/角色权限有限需要横向或纵向提权、或需要分析 IAM Policy...
Install
npx skills add wgpsec/AboutSecurity --skill aws-iam-privesc -g -a claude-code -y- Repository
- wgpsec/AboutSecurity1.8k
- Category
- DevOps
- Updated
- 11d ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
AWS IAM 权限提升专项方法论。当已获取 AWS 凭据并需要提升权限、发现当前 IAM 用户/角色权限有限需要横向或纵向提权、或需要分析 IAM Policy 寻找提权路径时使用。覆盖 46 个 AWS 服务的提权技术,包括 PassRole 滥用、AssumeRole 链式提权、Lambda/EC2/ECS 计算服务提权、以及 NotAction 隐式权限利用
AWS IAM 权限提升方法论
AWS 环境中的提权(Privilege Escalation)是最关键的攻击阶段之一。与传统操作系统提权不同,AWS 提权的核心在于 IAM 权限组合的滥用, , 一个看似无害的 iam:PassRole 权限,配合计算服务的创建权限,就能让攻击者获得任意角色的完整权限。AWS 拥有数百项权限,其中许多权限组合可构成提权链路。
核心要点:iam:PassRole 是 AWS 提权中最普遍的向量。当 IAM Policy 使用 NotAction 排除某些操作时,可能隐式授予了包括 PassRole 在内的大量敏感权限。
深入参考
识别到具体提权集群后,加载对应参考文档获取完整技术细节:
- IAM/STS/Organizations 核心提权 → 读 references/iam-sts-privesc.md
- 计算服务提权(EC2/Lambda/ECS/Glue 等) → 读 references/compute-privesc.md
- 其他服务提权(S3/DynamoDB/KMS 等) → 读 references/service-privesc.md
核心概念:PassRole
什么是 PassRole
iam:PassRole 是一种特殊的 IAM 权限,允许用户将一个 IAM 角色"传递"给某个 AWS 服务。该服务随后以这个角色的身份运行,拥有角色的全部权限。
工作流程:
攻击者 (有 PassRole + 服务创建权限)
│
├── 1. 找到/创建一个高权限角色(如 AdminRole)
├── 2. 将该角色传递给服务(如 Lambda)
├── 3. 服务以 AdminRole 身份执行代码
└── 4. 攻击者通过服务获取 AdminRole 的临时凭据
为什么 PassRole 是最常见的提权向量
- 几乎所有 AWS 计算服务(Lambda、EC2、ECS、Glue、SageMaker 等)都接受角色传递
- 管理员通常授予
iam:PassRole而不限制Resource为特定角色(使用*) - 一旦拥有 PassRole + 任意计算服务创建权限,就能提权到目标角色
如何识别 PassRole 权限
# 检查当前用户/角色的 Policy
aws iam list-attached-user-policies --user-name <user>
aws iam list-user-policies --user-name <user>
aws iam get-user-policy --user-name <user> --policy-name <policy>
# 搜索包含 PassRole 的 Policy
aws iam get-policy-version --policy-arn <arn> --version-id <vid> \
| grep -i "passrole"
NotAction 隐式授权陷阱
当 Policy 使用 NotAction + Allow 时,实际上允许了除指定操作外的所有操作:
{
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "*"
}
此策略隐式授予了 iam:PassRole、iam:CreateUser、sts:AssumeRole 等所有敏感权限。这是实战中非常常见的配置错误。
提权决策树
获取凭据后,按以下决策树逐步检查可用的提权路径:

