8
月
在社区成长 8 月
LEVEL 50
100 XP
虽然云提供商负责保护云基础设施的安全,但客户有责任保护他们在云中部署的所有内容,包括正确的配置。在本实验中,我们将展示低权限IAM 用户如何滥用iam:CreateAccessKey 权限,该权限允许用户为另一个可以担任提升角色的IAM 用户创建访问密钥,从而导致权限升级。此设置凸显了IAM 策略中常见的错误配置,可能会带来严重的安全风险。
创建低特权IAM 用户
第2: 部分枚举和利用渗透测试的先决条件
使用低特权用户凭证配置AWS CLI
使用AWS CLI 枚举IAM 用户
IAM CreateAccessKey 利用
AnalysisRecommendations 结论
API 操作CreateAccessKey 为指定的IAM 用户或发出请求的人员生成新的访问密钥ID 和密钥。
虚拟机卡利Linux
如果您是AWS 平台的新手,建议您在此处完成AWS 实验室设置,
Users:Igt_admin: 高级访问权限
Igt_raj: 基本访问权限,但具有风险权限
策略名称:Vuln_create_access_key: 允许用户创建访问密钥
创建用户的用户名(例如lgt_admin)并按下一步设置权限。
设置权限以将lgt_admin 用户的权限配置为直接从权限选项附加策略。
在“权限策略”部分下选择“AdministratorAccess”。
AdministratorAccess – 在AWS 中,AdministratorAccess 策略是一种内置策略,当附加到用户、组或角色时,该策略提供对账户中所有服务和资源的完全访问权限。因此,使其成为实验室的“高特权”目标。
设置权限以将lgt_admin 用户的权限配置为直接从权限选项附加策略。
现在,选择创建策略。
编写自定义策略以向IAM 用户Igt_raj 提供某些操作。
iam:CreateAccessKey – 允许为指定的IAM 用户创建新的访问密钥(AKIA/Secret)。
iam:ListUsers – 列出AWS 账户中的所有IAM 用户。
iam:ListAttachedUserPolicies – 列出附加到特定IAM 用户的所有托管策略。
iam:GetUser – 检索有关指定IAM 用户(如果未指定,则检索调用者)的详细信息。
iam:GetPolicy – 检索有关托管IAM 策略的元数据。
iam:GetPolicyVersion – 检索IAM 托管策略的特定版本文档。
{
'版本': '2012-10-17',
‘声明’: [
{
'效果': '允许',
'行动': [
'iam:CreateAccessKey',
'iam:ListUsers',
'iam:ListAttachedUserPolicies',
'iam:GetUser',
'iam:GetPolicy',
'iam:GetPolicyVersion'
],
“资源”:“*”
}
]
}
这就是添加某些操作后策略的样子。
提供策略详细信息,例如策略名称(Vuln_create_access_key) 和描述,如给定的屏幕截图所示。
为用户Igt_raj 映射策略“Vuln_create_access_key”。
最后,让我们为Igt_raj“创建访问密钥”。选择“命令行界面(CLI)”作为用例。
紧急访问– 当管理员不可用时
玻璃破碎情况– 用于紧急恢复任务
自动化- 在管理或轮换密钥的脚本中
Note:让用户为其他人创建访问密钥可能会导致权限升级,难以跟踪,并且违反了最低权限。使用时应极其谨慎。
“我们建议依赖临时凭证,而不是创建访问密钥等长期凭证。相反,请使用角色进行临时访问。” AWS IAM 最佳实践
测试凭证: Igt_raj 用户的访问密钥+ 秘密+ 区域
Tools: AWS-Cli (sudo apt install awscli)
它提示输入AWS访问密钥ID、AWS秘密访问密钥、默认区域。
aws configure set profile.Igt_raj.aws_access_key_id rajUser_AccessKey
aws 配置设置profile.Igt_raj.aws_secret_access_key rajUser_SecretKey
aws configure set profile.Igt_raj.region us-east-1
运行get-caller-identity 命令会返回配置文件详细信息,例如用户ID 和Arn。请密切关注ARN,因为它唯一标识资源。
aws sts get-caller-identity --profile Igt_raj
目录
关于iam:CreateAccessKeyLab 设置和先决条件部分1: IAM 实验室设置创建高特权IAM 用户创建低特权IAM 用户
第2: 部分枚举和利用渗透测试的先决条件
使用低特权用户凭证配置AWS CLI
使用AWS CLI 枚举IAM 用户
IAM CreateAccessKey 利用
AnalysisRecommendations 结论
关于 iam:CreateAccessKey
iam:CreateAccessKey API 操作允许您管理AWS 账户根用户。在AWS 中,“滥用iam:CreateAccessKey 权限”是指一种权限升级技术,其中权限有限的用户为另一个IAM 用户(通常是具有更高权限的用户)创建访问密钥,然后使用这些密钥获得未经授权的访问。API 操作CreateAccessKey 为指定的IAM 用户或发出请求的人员生成新的访问密钥ID 和密钥。
实验室设置和先决条件
AWS 账户虚拟机卡利Linux
如果您是AWS 平台的新手,建议您在此处完成AWS 实验室设置,
第 1 部分:IAM 实验室设置
以下是设置环境的说明。我们将访问AWS 控制台并配置AWS 命令行界面(CLI),同时创建IAM 用户并附加CreateAccessKey 策略。Users:Igt_admin: 高级访问权限
Igt_raj: 基本访问权限,但具有风险权限
策略名称:Vuln_create_access_key: 允许用户创建访问密钥
创建高权限 IAM 用户
导航到IAM 用户,然后单击创建用户以设置新的IAM 身份。创建用户的用户名(例如lgt_admin)并按下一步设置权限。
设置权限以将lgt_admin 用户的权限配置为直接从权限选项附加策略。
在“权限策略”部分下选择“AdministratorAccess”。
AdministratorAccess – 在AWS 中,AdministratorAccess 策略是一种内置策略,当附加到用户、组或角色时,该策略提供对账户中所有服务和资源的完全访问权限。因此,使其成为实验室的“高特权”目标。
创建低特权 IAM 用户
创建另一个IAM 用户(例如lgt_raj)并按。
设置权限以将lgt_admin 用户的权限配置为直接从权限选项附加策略。
现在,选择创建策略。
编写自定义策略以向IAM 用户Igt_raj 提供某些操作。
iam:CreateAccessKey – 允许为指定的IAM 用户创建新的访问密钥(AKIA/Secret)。
iam:ListUsers – 列出AWS 账户中的所有IAM 用户。
iam:ListAttachedUserPolicies – 列出附加到特定IAM 用户的所有托管策略。
iam:GetUser – 检索有关指定IAM 用户(如果未指定,则检索调用者)的详细信息。
iam:GetPolicy – 检索有关托管IAM 策略的元数据。
iam:GetPolicyVersion – 检索IAM 托管策略的特定版本文档。
{
'版本': '2012-10-17',
‘声明’: [
{
'效果': '允许',
'行动': [
'iam:CreateAccessKey',
'iam:ListUsers',
'iam:ListAttachedUserPolicies',
'iam:GetUser',
'iam:GetPolicy',
'iam:GetPolicyVersion'
],
“资源”:“*”
}
]
}
这就是添加某些操作后策略的样子。
提供策略详细信息,例如策略名称(Vuln_create_access_key) 和描述,如给定的屏幕截图所示。
为用户Igt_raj 映射策略“Vuln_create_access_key”。
最后,让我们为Igt_raj“创建访问密钥”。选择“命令行界面(CLI)”作为用例。
第 2 部分:IAM 枚举利用
为什么CreateAccesskey 可用于另一个IAM 用户?它有时用于让受信任的用户为另一个IAM 用户生成访问密钥,例如紧急访问– 当管理员不可用时
玻璃破碎情况– 用于紧急恢复任务
自动化- 在管理或轮换密钥的脚本中
Note:让用户为其他人创建访问密钥可能会导致权限升级,难以跟踪,并且违反了最低权限。使用时应极其谨慎。
“我们建议依赖临时凭证,而不是创建访问密钥等长期凭证。相反,请使用角色进行临时访问。” AWS IAM 最佳实践
渗透测试的先决条件
Pentest Machine: Kali Linux测试凭证: Igt_raj 用户的访问密钥+ 秘密+ 区域
Tools: AWS-Cli (sudo apt install awscli)
使用低特权用户凭证配置 AWS CLI
使用Igt_raj 凭证配置AWS CLI 配置文件。它提示输入AWS访问密钥ID、AWS秘密访问密钥、默认区域。
aws configure set profile.Igt_raj.aws_access_key_id rajUser_AccessKey
aws 配置设置profile.Igt_raj.aws_secret_access_key rajUser_SecretKey
aws configure set profile.Igt_raj.region us-east-1
运行get-caller-identity 命令会返回配置文件详细信息,例如用户ID 和Arn。请密切关注ARN,因为它唯一标识资源。
aws sts get-caller-identity --profile Igt_raj