攻击者瞄准AWS EC2 工作负载以窃取凭证

VSole2022-11-10 11:18:10

前言

最近,我们遇到了利用监控和可视化工具Weave Scope通过环境变量和 IMDS 端点从 Elastic Compute Cloud (EC2) 实例枚举 Amazon Web Services (AWS) 实例元数据服务 ( IMDS ) 的利用尝试。滥用此工具可能允许将访问密钥和令牌泄露到可能由攻击者拥有的域中,并在 AWS 拥有的域amazonaws.com上使用一种称为域名仿冒的过时技术。随后使用 masscan 和 zgrab 来查找 Weave Scope 用户界面 (UI) 实例并泄露所找到的 IP 地址和端口。我们建议用户加强、加强和定制各自的云安全策略、以开发人员为中心的工具和措施,以减轻威胁和攻击的危害。

执行流程

我们之前曾报道过出于恶意目的滥用合法工具,特别是滥用 Weave Scope。在对我们的蜜罐进行的这次尝试中,我们观察到攻击者通过暴露的 Docker REST API 服务器获得了访问权限,众所周知,TeamTNT等威胁参与者利用了该服务器。在本示例中,攻击者创建了一个容器,并将底层主机的根目录挂载到容器内的路径< /host>中。之后,在创建容器时执行了一个名为init.sh的脚本,即使没有提供任何其他命令来执行。

图 1. 为从执行的 init.sh 脚本发出的子进程设置环境变量。

HOME环境变量设置为/root ,以便从该脚本发出的其他进程将/root目录视为HOME变量。没有记录命令历史,后来环境变量本身被删除。PATH变量还包含路径< /root/.local/bin > 。设置了特定于语言本地化的参数,以强制语言在整个脚本执行过程中保持统一。

之后,使用 Alpine Package Keeper 或 apk 安装使攻击者的脚本能够执行的某些工具,以在基于 alpine 的容器映像的基础映像中安装wget、curl、jq、masscan、libpcap-devdocker 。声明了以下两个变量:

  1. SCOPE_SH,一个安装 Weave Scope 的 Base64 编码字符串
  2. WS_TOKEN,一个秘密访问令牌,可用于将host包含在队列中

脚本函数

在分析脚本时,我们观察并分解了为攻击中的各种实现设计的四个函数:main、wssetup、checkkey 和 getrange。

main

主函数依次调用其他三个函数。最初,nohup执行 Docker 守护程序 (dockerd )以保持进程运行,即使在退出 shell 后也是如此。流 STDOUT 和 STDERR 通过管道传送到/dev/null以在执行时在屏幕上不显示任何输出。

图 2. 函数 main

wssetup

此函数使用实用程序base64解码变量 SCOPE_SH 的内容。wssetup 还会静默执行命令行scope launch –service-token=$WS_TOKEN以使主机成为攻击者 Weave Scope 舰队的一部分。

早些时候,我们观察到对 Docker REST API 的利用,其中范围令牌是从攻击者的基础设施中获取的。但是,在这种情况下,令牌本身在脚本中是硬编码的。

图 3. 函数 wssetup  

checkkey

此函数检查文件“ /host/root/.aws/credentials ”。有趣的是,容器中的路径/host映射回主机上的根目录“/”。如果文件存在,则通过curl请求将其发送到攻击者的端点。

图 4. 函数 checkkey  

如果函数在本地文件系统和远程文件共享中找不到凭据(Mitre ID T1552.001 Unsecured Credentials: Credentials In Files),则使用curlwget查询 IMDS 端点是否可用。通过一系列grepsed操作处理输出,并将输出累积在隐藏文件“ .iam ”和“.iam”中。ec2 ”(Mitre ID T1564.001隐藏工件:隐藏文件和目录)。

一旦收集了凭据,它们就会被合并到一个名为“ .aws ”的隐藏文件中,由两个新行分隔,同时删除原始文件。随后通过“AWS”或“EC2”搜索各个进程的环境变量,并附加到文件“. aws ”添加了两个新行。

一旦 < $HOME/…aws > 中的文件准备好收集所有凭据,该文件将通过curl泄露到域“amazon2aws.com” ,然后被删除。

图 5. 在每个进程的环境变量中搜索提及 AWS 或 EC2

图 6. 泄漏收集的凭据

getrange和rangescan

该函数接受一个参数RANGE,稍后将其传递给另一个名为rangescan的函数。第二个函数使用 zgrab 扫描RANGE中的 IP 地址,以查找端口 80、443 和 4040 上可访问的 Weave Scope UI,这是 Weave Scope UI 使用的默认端口。

图 7. 函数getrange和rangescan   

我们的观察表明没有提供给getrange 的值。**相反,它从ipranges.txt中获取 IP 地址,其中包含要扫描的 Weave Scope UI 实例的无类域间路由 (CIDR)。masscanzgrab等网络枚举工具用于查找 IP 地址和 UI 实例。当找到 Weave Scope UI 的可访问实例时,使用curl将相应的 IP 地址和端口泄露到攻击者控制的服务器amazon2aws.com

域名转移

在分析攻击者控制的服务器时,我们遇到了Amazon.com, Inc. 的研发子公司 Amazon Technologies, Inc. 对注册人 Nice IT Services Group Inc./Customer Domain Admin 提出的投诉,即前所有者恶意仿冒域名。统一域名争议解决政策(UDRP) 是解决注册人之间域名争议的法律框架。审查行政小组的决定,我们注意到该域名后来于 2022 年 6 月在“调查结果”部分转移给了 Amazon Technologies, Inc.:

图 8. 结果部分中的决定

通过 VirusTotal 检查用于解析域的 IP 地址,我们观察到 amazon2aws[.]com 和 teamtnt[.]red 的记录历史可能与威胁参与者组 TeamTNT 有关。

图 9. 两个域解析到的公共 IP 地址

结论

尽管根据 Shodan 扫描结果减少了 Docker REST API 的暴露,但重要的是要知道上述技术和过程可以与目标系统中的其他已知或未知漏洞相结合。攻击者不断地在他们的武器库上工作,测试和构建不同的工具,经常滥用合法的工具和平台。我们还观察到查询AWS IMDS 的尝试。

图 10. 暴露的 Docker REST API 上的 Shodan 扫描结果


awsec2
本作品采用《CC 协议》,转载必须注明作者和本文链接
在平时进行红蓝攻防演练的时候,经常会碰到目标资产在云服务机器上的情况,新的技术也会带来新的风险,本文将以 AWSEC2(Elastic Compute Cloud)弹性计算服务为例,主要谈谈在面对云服务器场景下的一些攻防手法。
滥用此工具可能允许将访问密钥和令牌泄露到可能由攻击者拥有的域中,并在 AWS 拥有的域amazonaws.com上使用一种称为域名仿冒的过时技术。设置了特定于语言本地化的参数,以强制语言在整个脚本执行过程中保持统一。checkkey此函数检查文件“ /host/root/.aws/credentials ”。如果文件存在,则通过curl请求将其发送到攻击者的端点。当找到 Weave Scope UI 的可访问实例时,使用curl将相应的 IP 地址和端口泄露到攻击者控制的服务器amazon2aws.com。
AWS 中,不管是 EC2 还是 RDS 都会使用到 VPC (Virtual Private Cloud) 虚拟网络环境服务,在 EC2 中可能会用到 ELB (Elastic Load Balancing) 弹性负载均衡服务,IAM (Identity and Access Management) 可以帮助 AWS 用户安全地控制对 AWS 资源的访问。 这里站在攻击者的视角简单看看 V
来自关于在AWS EC2实例中使用错误配置、公开允许的IAM策略和应用程序安全漏洞getshell并超越攻击面的演讲幻灯片 —来自2019年8月旧金山湾区的OWASP会上演讲。概要该演讲主要涵盖了三个场景,它们是使用渗透测试练习的真实环境案例来搭建的,即可用于练习shell访问和访问EC2实例之外的数据的环境。我们使用此信息来发现其他存储桶,其中一个包含多个 SSH 密钥。
前言 1、这篇文章讲了什么? 文本围绕三个问题 lambda会遇到什么攻击场景 什么情况下,在lambda中读取到的env环境变量密钥可以让我们接管服务器甚至整个账号 什么情况下,可以通过lambda权限去横向到其他的EC2服务器 本文会对这三个问题进行解答,并且进行演示
关于CloudPulseCloudPulse是一款针对AWS云环境的SSL证书搜索与分析引擎,广大研究人员可以使用该工具简化并增强针对SSL证书数据的检索和分析过程。在网络侦查阶段,我们往往需要收集与目标相关的信息,并为目标创建一个专用文档,以辅助我们识别目标组织可用的渗透路径。CloudPulse能够从Trickest Cloud中的AWS EC2主机中获取大量的SSL证书,并以此来简化我们针对
相关研究人员最近发现了一个异常活跃的攻击活动,研究人员称之为 EleKtra-Leak,它会自动窃取 GitHub 公共存储库中泄漏的身份和访问管理 ( IAM ) 密钥
在研究在 Docker 容器中执行不受信任的 Python 代码会出现什么反应的过程中测试了几个在线代码执行引擎,以了解它们对各种攻击的反应。Qualified 被广泛使用,包括CodeWars 或InterviewCake等网站。能够运行代码与网络访问,且在 Amazon Web Services 中运行。
一站跟进国内外最新云安全热点资讯~
新型RedAlert勒索病毒针对VMWare ESXi服务器RedAlert勒索病毒又称为N13V勒索病毒,是一款2022年新型的勒索病毒,最早于2022年7月被首次曝光,主要针对Windows和Linux VMWare ESXi服务器进行加密攻击。
VSole
网络安全专家