在本研究中,我们将探讨 Zeus 的继任者之一Zloader 2。我们将展示它的运作方式及其代码特性。我们会呈现深入研究 与攻击活动的结果,并显示 Zloader 与其他恶意软件家族之间的一些有趣联系。

介绍

Zloader 2也被称为 Silent Night是一种类功能多元的模组化银行恶意软件,旨在提供未经授权进入线上银行系统、支付系统和其他金融相关服务的能力。除了这些功能外,它还能下载和执行任意文件、窃取文件、向访问的 HTML 页面注入任意代码等等。

历史

根据 ZeusMuseum,第一个版本的 Zeus 在 20062008 年期间被观察到。后来,于 2011 年,它的源代码 被泄漏。结果,出现了新版本和变种。其中一个名为 Zloader 的 Zeus 继任者 出现于 2016 年至 2017 年之间。最后,另一个名为 Silent Night 的继任者 于 2019 年出现,并在地下市场上销售。

我们找到的这个变种的最早版本的 SHA256 是:384f3719ba4fbcf355cc206e27f3bfca94e7bf14dd928de62ab5f74de90df34a时间戳为 2019 年 12 月 4 日,版本号为 1020。2021 年 7 月中旬,我们发现了版本 2000。

微软最近 宣布 一项多个安全公司和信息共享与分析中心ISACs共同进行的调查,目的是摧毁 Zloader 并将该案件提交法庭。

虽然这个恶意软件的原始名称可能是 Silent Night,而 ZeusMuseum 叫它 Zloader 2,但我们将简单地使用名称 Zloader。

技术分析

模组与组件

Zloader 由不同的模组和组件组成:

Downloader 初始感染者Backdoor 主要模组,存在 x86 和 x64 版本VNC 模组x86 和 x64网站注入 从 CampC 接收附加库openssl,sqlite,zlib,Mozilla 库

后门模组、VNC 模组和附加库都有指定的模组 ID,其他组件用来引用它们。

分发方式

Zloader 是透过经典的电子邮件垃圾讯息进行分发。2021 年,攻击者利用 Google AdWords 广告假冒 Zoom 通信工具的网站,实际上安装了 Zloader。在 2021 年的另一场攻击中,使用了假色情网站,用户需要下载额外软件以观看视频。下载器通常打包分发,有时会用有效的数位签名进行签署。

显示受感染系统分布的地图:

代码特性

Zloader 的代码非常明显。首先,它被许多永远不会被调用的函数稀释。Downloader 模组可能包含来自 Backdoor 模组的函数,反之亦然。总体而言,约一半的代码不会被调用。

其次,简单的 x86 指令如 CMP、ADD 和 XOR 被替换为特别函数。这些函数包含大量无用代码,以复杂化分析,并且可以调用其他的替代函数。更糟的是,针对特定指令有多个替代函数。此外,一些常数在运行时使用上述替代函数进行计算。

字符串使用简单的 XOR 算法加密。

样本的导入函数非常少。API 在运行时通过其名称的哈希解决。

飞鱼加速npv官网下载

Zloader 2:寂静之夜

结果是,超过一半的文件大小是无用的,仅仅用于混淆简单操作。

配置

Downloader 和 Backdoor 模组都有内置配置,使用 RC4 加密。解密密钥以明文存储,看起来像是 vcvslrpvwwfanquofupxt。早期版本例如 10x的结构与后期版本16x 和 18x有所不同。现代版本在配置中存储以下信息:

Botnet 名称下图中的 divader攻击活动名称xlss2010硬编码的 CampC 列表RC4 密钥03d5ae30a0bd934a23b6a7f0756aa504

BinStorage

我们必须简要介绍 BinStorageZloader 用来与 CampC 通信及储存各种数据如网站注入、系统信息、被窃取的数据和日志所使用的数据格式。BinStorage包含标头和记录也称为字段。主标头存储有关记录数、数据大小以字节计算和它们的 MD5 信息。记录有自己的小标头,包含 FieldID DWORD,用于描述数据的意义。

一些 FieldID 是硬编码的。例如,FieldID=0x4E20 中存储著最新的工作 CampC。其他 FieldID 从文件路径派生用来存储被窃取的文件。

注册表使用

Zloader 模组至少是 Downloaders 和 Backdoors使用注册表来存储其工作所需的各种信息。此数据的 ROOTKEY 为 HKEYCURRENTUSERSoftwareMicrosoft

Zloader 在注册表中存储的最重要和有趣的数据结构称为 MAINSTRUCT。它是 ROOTKEY 的一个子键,值名称来自配置中发现的 RC4 密钥。我们猜测,来自同一行为者的 bot 使用相同的 RC4 密钥,因此它们能够轻松查找和读取 MAINSTRUCT。

MAINSTRUCT 使用配置中提供的 RC4 密钥加密。它存储以下信息:

Zloader 使用的其他存储的注册表路径Zloader 使用的文件和目录路径解密这些存储的加密密钥

文件使用

根目录是 APPDATA。Zloader 在其中创建随机名称的目录,以储存模组、被窃取的数据和日志。这些路径被存储在 MAINSTRUCT 中。

网络通信

如前所述,bot 与 CampC 间的通信使用 BinStorage。根据消息的实际类型,字段列表可能会改变,但始终有 5 个固定字段发送至 CampC:

配置中的某个 DWORD配置中的 botnet 名称根据系统信息派生的 BotID配置中的调试标志16 字节随机数据

请求使用配置中的 RC4 密钥加密。CampC 的响应使用 RSA 签名。

PING 请求

此请求用于检查 CampC 是否存活。响应仅包含由 bot 发送的随机字节。

DOWNLOAD MODULE 请求

此请求用于从 CampC 根据其 ID 下载模组。响应不是 BinStorage 形式的!

GET CONFIG 请求

用于接收配置更新:新 CampC、网站注入、下载任务等等。

CampC 和 DGA

正如前面所示,内置配置有一个硬编码的 CampC 列表。实际上,这些列表多年来未曾改变。为了绕过对这些硬编码 CampC 的封锁,Zloader 使用 DGA域生成算法。在 Zloader 中,DGA 根据当前日期和配置中的 RC4 密钥生成 32 个域。

还有第三类 CampC由伺服器响应得到。它们被存储到注册表中。

Downloader 模组

本分析基于版本 16280,44ede6e1b9be1c013f13d82645f7a9cff7d92b267778f19b46aa5c1f7fa3c10b

Downloader 的功能是下载、安装并运行下一个模组Backdoor。

主函数

在 Downloader 模组启动后,垃圾代码会立即开始运行。这部分代码由许多垃圾函数组成,形成一种“网络”。在下图中,仅一个垃圾函数的调用图表。这些函数还试图读取、写入并删除某些 TEMP 的 txt 文件。这的目的是延迟有效载荷的执行,并且我们推测,这可以复杂化模拟、调试和分析。

主函数的第二个也是最后一个任务是启动 msiexecexe 并进行 PE 注入。注入的数据包含两个缓冲区:一个大的缓冲区,其中 Downloader 以加密形式存储,另一个小的缓冲区0x42 字节,用于解密代码。在注入完成后,Downloader 会自行终止。

注入的代码

控制流转移到小缓冲区,此缓冲区会在 msiexecexe 的地址空间中解密 Downloader。解密后,Downloader 开始执行其主要任务。

首先,注入代码尝试从注册表中读取 MAINSTRUCT。如果失败,它认为未在该系统上安装,并开始安装过程:创建 MAINSTRUCT、将 Downloader 模组复制到 APPDATA 并被添加到启动键 HKCUSoftwareMicrosoftWindowsCurrentVersionRun,与随机值名称一起。

无论如何,Backdoor 模组会从磁碟或网络请求并执行。

Backdoor 模组

本分析基于版本 16280,c7441a27727069ce11f8d54676f8397e85301b4d65d4d722c6b239a495fd0282

实际上有两个 Backdoor 模组:针对 32 位系统moduleID 0x3EE和 64 位系统moduleID 0x3E9。Downloader 始终请求 32 位版本的 Backdoor。

Backdoor 的功能比 Downloader 复杂得多。如果比较我们样本的大小解包后,Backdoor 将会大出两倍。

Backdoor 的主要功能:

启动 VNC 模组向使用浏览器访问的页面注入网站注入内容下载并执行任意文件键盘纪录截图窃取文件并发送给 CampC窃取文件

Zloader 窃取文件的最大软件群体是加密钱包:

ElectrumEthereumExodus 加密钱包ZcashBitcoinQt等等

它还会从浏览器中窃取数据:Chrome、Firefox 和 IE 的 cookies;Chrome 的保存登录。最终,还能窃取 Microsoft Outlook 的帐户信息。

Hooking

为达成其目标,Zloader 进行 WinAPI hooking。为了执行此操作,Backdoor 模组枚举进程并注入到以下进程中:

explorerexemsiexecexeiexploreexefirefoxexechromeexemsedgeexe

64 位版本的 Backdoor 被注入到 64 位进程中,32 位版本则注入到 32 位进程中。

注入的代码会 Hook 以下 WinAPI 函数:

NtCreateUserProcessNtCreateThreadZwDeviceIoControlFileTranslateMessageCertGetCertificateChainCertVerifyCertificateChainPolicy

这些 Hook 可以根据用途被划分为 3 组:

NtCreateUserProcess 和 NtCreateThread 被 Hook,用于将 Backdoor 模组注入到新创建的线程和进程中。ZwDeviceIoControlFile、CertGetCertificateChain 和 CertVerifyCertificateChainPolicy 被 Hook,用于支持网站注入机制。TranslateMessage 被 Hook 用于记录按键以及创建截图。网站注入

首先,浏览器必须注入 Backdoor 模组。此时,系统中运行著多个 Backdoor 模组实例:一个由 Downloader 启动的“主实例”,其他正在浏览器中运行的模组。主实例启动了浏览器内的 Maninthebrowser 代理,其他模组会 Hook ZwDeviceIoControlFile 和与证书相关的 WinAPI如上所述。代理端口号被存储在 BinStorage 结构中到注册表中,因此在 Backdoor 实例之间保持同步。

被 Hook 的 ZwDeviceIoControlFile 函数等待 IOCTLAFDCONNECT 或 IOCTLAFDSUPERCONNECT,并将连接路由到代理。被 Hook 的与证书相关的函数告知浏览器证书一切正确。

Botnet、攻击活动及其活动

最活跃的 botnet 和攻击活动使用 RC4 密钥 03d5ae30a0bd934a23b6a7f0756aa504,我们将在分析中聚焦于它们。使用上述密钥的样本有版本 1x,通常是 1628,但有些甚至是 10x。

Botnet 和攻击活动名称

在 botnet 名称中值得一提的有以下几组:

DLLobnova、AktualizacjaDLL、googleaktualizacija、googleaktualizacija1、obnovlenie19、vasja、ivan9092zi、9092ti、9092ca、9092us、909222、9092ge

第一组名称包含音译的斯拉夫语词语和名称vasja、ivan,或许还带有错误,这揭示了坏人的起源他们肯定是斯拉夫人。

第二组中带有 botnet 名称的样本首次观察到是在 2021 年 11 月,我们在接下来两个月找到了来自该组的一共 6 个 botnet 名称。数字后的字母如 ca 和 us 可能是国家代码。

对于攻击活动名称,我们看到了相似的情况:相当多的斯拉夫词语和相同的 9092 群组。

网站注入

我们分析了网站注入,确认它们针对金融公司:银行、经纪公司、保险公司、支付服务、加密货币相关服务等等。

注入代码通常很小:从几十字节到 20 KB 不等。为执行其任务,它会从坏人控制的外部域加载 JavaScript 代码。对这些域的分析使我们发现了 Zloader 操作人员与其他网络犯罪帮派之间的关联。

下载任务

Zloader 能够根据 CampC 的命令下载并执行任意文件,但长期以来我们并没有看到这些命令的任何迹象。直到 2021 年 11 月 24 日,botnet 9092ca 收到了一条命令,要求从 teamworks455[]com 下载并执行文件。该域名在 [6] 中被提及。

另外两个下载任务包含 braves[]fun 和 endoftheendi[]com。

联系

在我们的追踪过程中,我们注意到了与其他原本认为无关的恶意软件家族之间的联系。

Raccoon Stealer

三个下载任务中的两个包含指向 Raccoon Stealer 的链接。下载的样本拥有以下 sha256 哈希:

5da3db74eee74412c1290393a0a0487c63b2c022e57aebcd632f0c3caf23d8bc5b731854c58c2c1316633e570c9ec82474347e64b07ace48017d0be2b6331eed

这两者具有相同的 Raccoon 配置,Telegram 频道为 kumchakl1。

此外,Raccoon 在我们收到来自 CampC 的包含 Raccoon 链接的命令之前就已在 [6] 中被提及。我们对为何 Zloader 操作员会使用 Raccoon Stealer 感到困惑。您可以在这里阅读我们对 Raccoon Stealer 的分析 https//decodedavastio/vladimirmartyanov/raccoonstealertrashpandaabusestelegram/。

Ursnif

Ursnif,也被称为 Gozi 和 ISFB,是另一种具有类似功能的银行恶意软件家族。

数位签名

当我们发现 Zloader 样本和 Ursnif 样本使用相同的数位签名时,我们感到非常惊讶!

作为例子,考虑以下签名:发行者 BABJNCXZHQCJUVWAJJ指纹 46C79BD6482E287647B1D6700176A5F6F5AC6D57。

使用此签名的 Zloader 样本的 SHA256 哈希为:2a9ff0a0e962d28c488af9767770d48b9128b19ee43e8df392efb2f1c5a696f。

使用相同签名的 Ursnif 样本的 SHA256 哈希为:54e6e6b23dec0432da2b36713a206169468f4f9d7691ccf449d7d946617eca45。

这不是 Ursnif 和 Zloader 样本之间共享的唯一数位签名。

基础设施

如前所述,第一个观察到的下载命令包含指向 teamworks455[]com 的链接。我们检查了该网站的 TLS 证书,发现其用于另一个网站dotxvcnjlvdajkwerwoh[]com。我们在 2021 年 11 月 11 日于 Ursnif 网站注入中看到了此主机名,它被用于接收被窃取的数据。

另一个例子aerulonoured[]su是 Zloader 用于接收被窃取数据的主机,至少从 2021 年 8 月开始。它也出现在 Ursnif 网站注入中,时间为 2021 年 11 月。

第三个例子qyfurihpsbhbuvitilgw[]com,此域名在 2021 年 10 月 20 日从 CampC 收到的 Zeus 配置更新中发现。这必须添加到 CampC 列表中,然后由 Zloader bots 使用。这个域名也出现在 2021 年 11 月 1 日的 Ursnif 网站注入中。

最后一个例子etjmejjcxjtwweitluuw[]com,这个域名是使用密钥 03d5ae30a0bd934a23b6a7f0756aa504 和日期 2021 年 9 月 22 日生成的 DGA。我们有非常强的证据表明该域名在该日作为 Zloader 的 CampC 是活跃的。同一主机在 Ursnif 网站注入中也于 2021 年 11 月 1 日发现。

结论

我们感到自豪能够参与这项调查,因为我们继续我们的使命,使世界对每个人来说变得更安全。我们期待著成功摧毁 Zloader 以及起诉创建和运营它的人。

标记为 分析、botnet、恶意软件、反向工程、摧毁

分享:XFacebook

为更轻松管理设备而引入名称

引入设备名称以简化管理2022年6月13日 功能 应用程式现在,这个应用程式将拥有一个易于记忆的两词名称作为其设备识别符,这不仅解决了令人头痛的密钥过多问题,还为用户提供了一种更友好的设备识别方式。问...

订阅邮箱