You are a security consultant hired by the global logistics company, Huge Logistics. Following suspicious activity, you are tasked with enumerating the IAM userdev01and mapping out any potentially compromised resources. Your mission is to enumerate and evaluate IAM roles, policies, and permissions.
题目给的信息
IAM 用户:dev01 密码:G3tt1ngStar73d!
真实场景
IAM(身份和访问管理)是构建、防御和攻击云服务的核心。无论是进攻性还是防御性安全从业者,都需要对 IAM 及其权限枚举有扎实的了解:攻击者会寻找过度授权的设置或潜在攻击链中的配置错误,而防御者则需要确保实施最小权限原则,并识别出任何位于已受攻击 IAM 用户影响范围内的资源或服务。
登录一下,这个账户可以访问 GuardDuty(是一种威胁检测服务,持续监控恶意或未经授权的行为,以帮助保护您的 AWS 账户和工作负载),Findings 可以看到一些告警

不过这个账户好像只是为了让我们登录一下,本题用的是提供的 AKSK,并认为该 AKSK 是已被攻击者利用的 AKSK
AKIA3SFMDAPOWC2NR5LO | +hCgg8uYwGeedSpfARQyGFkr9fdVhnrObshtrHq3 |
查看用户相关信息
Tags 字段是为了易于管理,搜索和过滤资源
查看用户所属组,便于查看改用户是否从组中集成了什么权限
查看附加到用户的策略,具有 AmazonGuardDutyReadOnlyAccess 和 dev01 策略,ARN 是全局唯一的
我们先看一下
AmazonGuardDutyReadOnlyAccess 策略,Amazon 和租户管理的策略存在历史版本,方便回滚和查看,內联策略不支持历史版本查看 v4 版本
同理查看
dev01 策略查看最新版本
看着有点杂乱,可以为 Resource 中的 AWS 资源根据 ARN 的 resource-type 分类一下允许动作
- IAM User (
arn:aws:iam::794929857501:user/dev01): - iam:GetUser
- iam:ListAttachedUserPolicies
- iam:ListUserPolicies
- iam:GetUserPolicy
- iam:ListGroupsForUser
- IAM Role (
arn:aws:iam::794929857501:role/BackendDev): - iam:GetRole
- iam:GetRolePolicy
- iam:ListAttachedRolePolicies
- Customer Managed Role Policy (
arn:aws:iam::794929857501:policy/BackendDevPolicy): - iam:GetPolicy
- iam:GetPolicyVersion
- iam:ListPolicyVersions
- Customer Managed Policy(客户托管策略) (
arn:aws:iam::794929857501:policy/dev01): - iam:GetPolicy
- iam:GetPolicyVersion
- iam:ListPolicyVersions
- Amazon Managed Policy(AWS托管策略) (
arn:aws:iam::aws:policy/AmazonGuardDutyReadOnlyAccess): - iam:GetPolicy
- iam:GetPolicyVersion
- iam:ListPolicyVersions
一开始愣是没搞明白 AWS 托管和客户托管的区别,其实看 ARN,账户ID一个是用户ID一个是AWS
查看附加到角色的策略,对应的是
BackendDevPolicy查看
BackendDev 的角色详情这里的
AssumeRole 可以理解为 Linux 的 sudo 操作,会提供一个临时凭证,该凭证具有该角色的权限查看策略
查看该版本策略定义
如果我们 assume 这个角色,则可以查看该账户下的所有 EC2 实例以及 secretmanager 里的 secret,以及获取
prod/Customers-QUhpZf secret 内容最后查看用户內联策略
一张图整理权限关系

最后拿 flag,在 s3 中
