利用 .env 文件中的机密信息入侵云账户

admin 2024年10月19日22:37:23评论34 views字数 2040阅读6分48秒阅读模式

 

以上内容由白帽子左一翻译并整理。原文:https://infosecwriteups.com/large-scale-data-exfiltration-exploiting-secrets-in-env-files-to-compromise-cloud-accounts-107dce22e601

拓扑图:

利用 .env 文件中的机密信息入侵云账户

来自的研究人员unit42发现了一起针对云环境的重大网络攻击,该攻击利用了存储在.env文件

第一阶段

攻击者通过利用文件中暴露的机密信息获得了对受害者云环境的初步访问权限.env。服务会使用这些文件来访问运行时环境变量,这些变量通常根据服务的部署位置在开发、暂存和生产环境中的配置不同。

在生产环境中,.env文件通常包含高度敏感的信息,例如访问令牌、凭据和 API 密钥。由于其敏感性,.env文件通常会从代码存储库中排除,并针对特定实例进行手动配置。

.env文件通常用于配置托管面向客户的 Web 应用程序的 Web 服务器。如果配置不当,攻击者可以通过 公开访问它们http

展开收缩
://<domain>/.env,这可能会导致检索.env文件内容,其中包含生产中使用的敏感身份验证资产。

利用 .env 文件中的机密信息入侵云账户

通过利用 .env 文件中的机密进行初始访问

第二阶段

在扫描不安全的 Web 服务器后,攻击者使用从可公开访问的.env文件获取的 AWS 访问密钥来了解有关受感染帐户的更多信息。

AWS 访问密钥是 AWS IAM 用户的长期凭证,由两部分组成:和access key ID。secret access key这些凭证一起允许代表与访问密钥关联的 IAM 用户对 AWS API 请求进行身份验证。

利用 .env 文件中的机密信息入侵云账户

  • 步骤 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 凭证。

利用 .env 文件中的机密信息入侵云账户

使用 CreateRole 和 AttachRolePolicy 提升权限

第四阶段

为了提升权限,攻击者创建了可以不受限制地访问受害者 AWS 资源的 IAM 资源。他们创建了一个名为 的 IAM 角色lambda-ex,为其附加了提升的权限,并承担该角色以获取临时 IAM 凭证。

利用 .env 文件中的机密信息入侵云账户

  • 步骤 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 文件中的机密信息入侵云账户

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。

原文始发于微信公众号(白帽子左一):利用 .env 文件中的机密信息入侵云账户

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月19日22:37:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用 .env 文件中的机密信息入侵云账户https://cn-sec.com/archives/3290986.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息