前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解全球联合执法摧毁的 Grandoreiro 僵尸网络

详解全球联合执法摧毁的 Grandoreiro 僵尸网络

作者头像
FB客服
发布2024-02-26 15:41:57
1520
发布2024-02-26 15:41:57
举报
文章被收录于专栏:FreeBufFreeBuf

ESET 与巴西联邦警察合作,摧毁 Grandoreiro 僵尸网络。由于 Grandoreiro 僵尸网络通信协议中存在设计缺陷,研究人员利用这种缺陷跟踪受害者。

研究人员构建了自动分析系统,处理了数以万计的 Grandoreiro 样本文件。自从 2020 年 10 月以来,该恶意软件一直使用 DGA 算法每天生成一个主域名,以及几个备用的域名。除了当天日期外,DGA 算法还支持静态配置。

Grandoreiro 僵尸网络的运营人员滥用 Azure 和 AWS 等云服务提供商部署攻击基础设施,根据分析人员提供的线索,执法部门逮捕了使用这些服务器的个人。

背景

Grandoreiro 僵尸网络是最常见的拉丁美洲银行木马之一,自从 2017 年以来一直保持活跃。Grandoreiro 僵尸网络的主要攻击目标是西班牙、巴西与墨西哥。当然攻击者也是有阶段性的,20220 年到 2022 年西班牙是受攻击最严重的国家,而后明显转向墨西哥与阿根廷。

检出分布

Grandoreiro 僵尸网络的主体功能并没有太大变化。最初当 Grandoreiro 成功入侵时,就会向 C&C 服务器发起 HTTP GET 请求回传失陷主机的基本信息。随着时间的推移,开发人员后来放弃了该功能。Grandoreiro 会定期监控前台窗口,查看属于 Web 浏览器进程的窗口。在窗口名称与硬编码的银行相关字符串匹配时,恶意软件就会启用与 C&C 服务器的通信,在进程终止前每秒发送一次请求。

运营人员要手动与失陷主机进行交互,才能窃取受害者的财产。恶意软件支持以下功能:

  • 截取屏幕
  • 按键记录
  • 模拟鼠标与键盘活动
  • 共享屏幕
  • 显示虚假弹出窗口

Grandoreiro 僵尸网络一直在持续更新,最频繁时每周都有几个新版本发布。2022 年 2 月,Grandoreiro 在恶意样本中增加了版本标识符。统计可以发现,2022 年 2 月到 6 月平均每四天就发布一个新版本。六月底发布了 V37 版本后,版本号就再也没有发生过变化,这一功能应该是被放弃了。

版本迭代

拉丁美洲的银行木马大多很相似,Grandoreiro 僵尸网络与其他银行木马也很相似。Grandoreiro 将 Downloader 捆绑在 MSI 安装程序中,有时也与 Mekotio 和 Vadokrist 共享 Downloader。最初,Grandoreiro 僵尸网络只在主样本中使用二进制填充,后来也将这种反分析技术增加到 Downloader 中。令人惊讶的是,2023 年第三季度攻击者废止了这项技术,再也没有使用过。

自从 2022 年 2 月以来,分析人员一直在持续跟踪 Grandoreiro 僵尸网络的第二个变种。该变种的大多数 C&C 服务器域名未绑定解析,而且核心功能还在持续改变,应该是开发工作还在进行中。

长期跟踪

自从 2017 年以来,研究人员一直监控 Grandoreiro 僵尸网络,提取版本信息、C&C 服务器、受害者等。

DGA 算法

DGA 算法被 Grandoreiro 僵尸网络硬编码内置,通过名为 dga_id 的字符串获得引用。分析人员从样本文件中提取了 105 个不同的 dga_id,其中 79 个配置都有绑定解析的 IP 地址。

生成的域名通过 No-IP 的动态 DNS 服务注册,Grandoreiro 僵尸网络的运营方滥用该服务,频繁更改解析关系。这些域名解析的 IP 地址,绝大多数由云服务提供商提供,主要是 AWS 与 Azure。

C&C 地址统计信息

不同配置的 DGA 算法生成的域名都解析到了相同的 IP 地址,这意味着不同的 Grandoreiro 样本文件入侵的受害者都会回连到相同的 C&C 服务器。

攻击基础设施架构

极少数情况下,也有相同的 IP 地址在几天后被其他 dga_id 重用。研究人员最初认为每个 dga_id 是唯一的,但这是不正确的,样本间存在配置共享相同的 dga_id。以下为共享至少一个 IP 地址的所有 DGA 配置都聚合在同一集合中,受害者占比过低的集合将会被忽略。

DGA 集合

最大的集合中包含 78% 的 dga_id,包含了 93.6% 的 C&C 服务器与 94% 的受害者。有消息称 Grandoreiro 提供恶意软件即服务(MaaS),C&C 服务器支持不同的攻击者同时使用。根据上述数据,DGA 生成的绝大多数 IP 地址可以聚集在一起,没有明确的分布模式。考虑到网络通信对带宽的要求,研究人员认为不同的 C&C 服务器其实是一个负载均衡,Grandoreiro 很有可能是由单个或者几个小组密切配合的。

C&C 通信

Grandoreiro 在失陷主机上线时会向 C&C 服务器回传受害者的信息,研究人员据此对受害者情况进行了跟踪。连接到 Grandoreiro 的 C&C 服务器的每个受害者都使用 login_string 进行标识,不同版本的 Grandoreiro 样本文件使用的格式不同。通过该字符串可以提取的信息如下所示:

Country 是硬编码的字符串,不是通过执行命令获取的,更可能是攻击者预期的受害者所在国家。Bank codename 是银行或者其他金融机构的关键字符串,受害者访问网站就会触发 C&C 回连。Version 也是硬编码的,标识特定的构建系列、版本与时间戳。请注意,某些时间戳仅包含月份和日期,也有部分时间戳包含年份。

版本信息

有人认为 Build ID 实际上标识了攻击者,但也有人持反对意见。该字符串的格式非常混乱,可能与攻击者身份无关。另外,研究人员坚信 P1X 是指 Grandoreiro 运营方使用的名为 PIXLOGGER 的控制台。

受害者跟踪

此处的统计数据都是从 C&C 服务器获取的,而非通过 ESET 遥测数据获取。

旧样本仍然活跃

每个 login_string 都包含 version_string,其中绝大多数都包含时间戳信息。最早发现的时间戳为 202 年 9 月 15 日,这也是 Grandoreiro 僵尸网络首次引入 DGA 算法的时间,最新的时间戳为 2023 年 12 月 23 日。

操作系统

所有 login_string 都包含操作系统信息,受害者中使用 Windows 10 的最多。

操作系统分布

国家分布

四成左右的受害者都在巴西,其他如下所示:

受害者分布

这只是攻击者预期的国家分布,比如阿根廷的受害者完全没有反应。巴西、墨西哥和西班牙几乎包揽了全部,也有极少部分受害者被标记为 PM(圣皮埃尔和密克隆群岛)、GR(希腊)或 FR(法国)。分析人员认为这些要么是错别字,要么另有含义,而非针对这些国家。

研究人员发现平均每天连接 C&C 服务器的受害者大约 563 人。但这一数字肯定包含重复项,长时间保持连接的情况下会持续发现连接请求。因此,分析人员将唯一特征(如计算机名称、用户名等)作为标识,可以看到平均每天有 551 个受害者。在考虑到已经失陷的受害者的情况下,平均每天有 114 个新的受害者连接到 C&C 服务器。

DGA算法

Grandoreiro 的运营方使用了多种 DGA 算法,但核心逻辑变化不大,最新的更新出现在 2020 年 7 月。

DGA 使用在二进制文件中硬编码的特定配置,存储在多个字符串中。将 JSON 格式化后如下所示:

DGA 配置信息

在绝大多数情况下,base_domain 字段为 freedynamicdns.org 或 zapto.org。如前所述,Grandoreiro 使用 No-IP 进行域名注册。base64_alpha 字段对应于 DGA 使用的自定义 base64 字母表。而 month_substitution 则用于将月份数字代替字符。

dga_table 构成了配置的主要部分。它由 12 个字符串组成,每个字符串有 35 个字段,用 | 分隔。每行的第一个条目是 dga_id。第二个和最后一个条目表示该行的预期月份,其余 32 个字段分别表示该月不同日期的值。

DGA 算法逻辑如下所示,最终输出结果是子域名,该子域名与 base_domain 拼接起来用作当天的 C&C 服务器。

Python 实现的 DGA 算法

以红色突出显示的部分是 Grandoreiro 的故障安全机制,在主域名无法解析时备用。尽管并非所有样本文件都有该机制,但使用的配置文件是固定的。如下所示,每条都由一个 Key、一个前缀和一个基础域名组成。

故障安全机制会采用主 C&C 子域名生成的部分逻辑,遍历所有条目并对其进行异或加密,最后当作前缀前置。

故障安全机制

2022 年 9 月,攻击者在最后一步中取消了对子域名的 base64 编码,而是转为在前面附加一个硬编码前缀。根据分析人员的跟踪,这种方法自 2023 年 7 月以来已经成为主流机制。

网络协议

Grandoreiro 利用 RTC Portal 进行 C&C 通信,这是构建在 RealThinClient SDK 之上的 Delphi 组件。RTC Portal 在 2017 年已经停止更新,源码也发布到 GitHub 上。从本质上讲,RTC Portal 允许一个或多个控件远程访问一个或多个主机。

Grandoreiro 的运营人员使用控制台连接到 C&C 服务器并与失陷主机进行通信。要连接到网关,需要三个参数:密钥、密钥长度和登录名。

  • 密钥用于加密发送到服务器的初始请求。因此,服务器还需要知道密钥,以便解密初始客户端请求。
  • 密钥长度决定了在握手期间建立的用于加密流量的密钥的长度。使用自定义流密码对流量进行加密。攻击者建立了两个不同的密钥:一个用于入站流量,另一个用于出站流量。
  • 登录名可以是任何字符串。网关要求每个连接的组件具有唯一的登录名。

RTC 文档指出,它一次只能处理有限数量的连接。考虑到每个连接的主机每秒至少需要发送一个请求,否则其连接将被丢弃。研究人员认为 Grandoreiro 使用多个 C&C 服务器的原因就是为了不让其中任何一个 C&C 服务器不堪重负。

结论

本文详细介绍了 Grandoreiro 的 DGA 算法,以及攻击基础设施的 IP 重叠。根据对攻击行动的跟踪,技术分析支撑了由巴西联邦警察牵头的执法行动,逮捕了 Grandoreiro 中职位非常高的运营者。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DGA 算法
  • 旧样本仍然活跃
  • 操作系统
  • 国家分布
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档