以上内容由白帽子左一翻译并整理。原文:https://infosecwriteups.com/large-scale-data-exfiltration-exploiting-secrets-in-env-files-to-compromise-cloud-accounts-107dce22e601
拓扑图:
来自的研究人员unit42发现了一起针对云环境的重大网络攻击,该攻击利用了存储在.env文件
第一阶段
攻击者通过利用文件中暴露的机密信息获得了对受害者云环境的初步访问权限.env。服务会使用这些文件来访问运行时环境变量,这些变量通常根据服务的部署位置在开发、暂存和生产环境中的配置不同。
在生产环境中,.env文件通常包含高度敏感的信息,例如访问令牌、凭据和 API 密钥。由于其敏感性,.env文件通常会从代码存储库中排除,并针对特定实例进行手动配置。
.env文件通常用于配置托管面向客户的 Web 应用程序的 Web 服务器。如果配置不当,攻击者可以通过 公开访问它们http
通过利用 .env 文件中的机密进行初始访问
第二阶段
在扫描不安全的 Web 服务器后,攻击者使用从可公开访问的.env文件获取的 AWS 访问密钥来了解有关受感染帐户的更多信息。
AWS 访问密钥是 AWS IAM 用户的长期凭证,由两部分组成:和access key ID。secret access key这些凭证一起允许代表与访问密钥关联的 IAM 用户对 AWS API 请求进行身份验证。
- 步骤 1 —AWS 安全令牌服务 (STS):攻击者调用 STS GetCallerIdentity API 来获取有关 IAM 实体的详细信息,该实体的 AWS 访问密钥用于调用 API。它返回UserID,表示调用实体的唯一标识符;Account,表示拥有调用实体的账户;以及ARN与调用实体关联的 。注意:执行此类操作不需要任何权限。
- 第 2 步 — AWS 身份和访问管理 (IAM):攻击者调用 IAM ListUsers API 来获取有关 AWS 用户池中所有 IAM 用户的详细信息及其 IAM 属性。这使他们能够找到潜在的用户实体,以利用它们进行未来的横向移动。
- 步骤 3 — AWS 简单存储服务 (S3):攻击者调用 S3 ListBuckets API 来获取请求调用实体拥有的所有 S3 存储桶列表。这使他们能够找到潜在的 S3 存储桶,以用于未来的数据泄露操作。注意:调用实体必须具有s3:ListAllMyBuckets执行此操作的权限。
第三阶段:权限提升
威胁者想要在被入侵的账户中执行代码,但用于初始访问的 IAM 凭证权限不足。因此,他们进行了权限提升以实施进一步的恶意操作。
低权限 IAM 主体的权限有限,限制了他们对关键资源的访问。通过提升权限,攻击者可以获得更高的访问权限(针对AdministratorAccessAWS 管理的 IAM 策略),从而使他们能够绕过安全控制,在云环境中横向移动,并最终从敏感的 S3 存储桶中窃取数据。
为了提升权限,威胁行为者创建了一个新的 AWS IAM 角色,为其分配了提升的权限,并承担该角色以获取提升的 IAM 凭证。
使用 CreateRole 和 AttachRolePolicy 提升权限
第四阶段
为了提升权限,攻击者创建了可以不受限制地访问受害者 AWS 资源的 IAM 资源。他们创建了一个名为 的 IAM 角色lambda-ex,为其附加了提升的权限,并承担该角色以获取临时 IAM 凭证。
- 步骤 4 - 创建新的 IAM 角色:攻击者使用 IAM CreateRolelambda-ex API在受感染的 AWS 账户中创建一个新的 IAM 角色,并使用AssumeRolePolicyDocument(信任策略) 授予他们自己的调用身份承担该角色的权限。
- 步骤 5——将提升的 IAM 策略附加到 IAM 角色:攻击者使用 IAM AttachRolePolicy API 将 AWS 管理的AdministratorAccessIAM 策略附加到lambda-ex角色,使该策略成为角色权限策略的一部分。
- 步骤 6 - 承担 IAM 角色:攻击者使用 STS AssumeRoleRoleArn API 和与新创建的角色相对应的te lambda-ex(附加AdministratorAccess了 AWS 管理策略)来获取一组临时 IAM 凭证,这些凭证可不受限制地访问受害者 AWS 账户中的 AWS 资源。
利用 IAM 凭证授予对受感染 AWS 账户的不受限制的访问权限,威胁行为者可以通过创建执行其恶意代码的 AWS lambda 函数来执行代码。
第五阶段
攻击者利用窃取的凭证,从 Amazon S3 存储桶中窃取并勒索敏感数据。他们的数据窃取包括未经授权从这些存储实例中提取和删除数据。
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):利用 .env 文件中的机密信息入侵云账户
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论