勒索软件中使用的一些代码与 Dridex 恶意软件中使用的代码相似,这意味着它们一个共同的起源。攻击者部署了一种名为 Entropy 的勒索软件,在攻击者启动勒索软件之前,攻击者在一些目标的计算机上感染了为攻击者提供远程访问的工具(Cobalt Strike 信标和 Dridex 恶意软件)。
Sophos 分析师在这次攻击之前并没有遇到过 Entropy。值得注意的是,两种情况下攻击者采用的方法存在显着差异:攻击者如何在目标中站稳脚跟,攻击者在目标网络中花费的时间;而用于准备攻击最后阶段的恶意软件则大不相同。
攻击的某些方面是一致的:在这两种情况下,攻击者都严重依赖 Cobalt Strike 作为感染更多设备的一种手段,根据目标是否在给定设备上安装了保护措施,成功程度不同。攻击者还对多个云存储提供商执行了多余的私有数据泄露。在取证分析期间,我们遇到了 Dridex 的多个实例,这是很流行的恶意软件,其操作员可以使用它来传播其他恶意软件。
Entropy赎金通知
在第一起事件中,攻击者利用了属于一家北美媒体组织的网络上的ProxyShell漏洞,在目标的Exchange服务程序上安装了一个远程shell,并利用它将Cobalt Strike信标传播到其他计算机上。在12月初发动攻击之前,攻击者花了4个月的时间探查该组织,并窃取数据。随后的攻击后取证发现,在一些受感染的设备上有几个Dridex有效负载。
在第二起事件中,恶意电子邮件附件已经用 Dridex 僵尸网络木马感染了用户的计算机,并且攻击者使用 Dridex 传播了额外的恶意软件(以及商业远程访问实用程序 ScreenConnect)并在目标网络内横向移动。值得注意的是,在第二次事件中,从最初检测到单个设备上的可疑登录尝试到攻击者开始从目标泄露数据,然后使用 WinRAR 将文件压缩,然后上传到包括 privatlab.com、dropmefiles.com 和 mega.nz的云存储提供商,整个攻击过程大约只要75个小时。
虽然并非任何组织网络上的所有设备都在攻击之前安装了终端保护,但在存在保护的设备上,攻击者未能成功地尝试执行勒索软件,却发现了一个有趣的巧合检测签名:用于保护 Entropy 勒索软件的packer代码被分析人员先前创建的检测签名(Mal/EncPk-APX)拾取,以检测 Dridex 使用的packer代码。
在进一步的逆向工程中,Sophos分析师发现勒索软件用来混淆其行为的其他一些子程序让人想起 Dridex 中用于类似功能的子程序,尽管不是结论性的,此外,还需要花大量的精力消除使代码比较过程复杂化的其他混淆。
攻击者的行为和免费和商业工具的使用
在这两种情况下,勒索软件攻击者都使用了免费可用的工具,例如 Windows Sysinternals 工具 PsExec 和 PsKill,以及旨在让 IT 管理员查询 Active Directory 服务程序的实用程序 AdFind。他们还使用免费的压缩实用程序 WinRAR 来Packer 他们窃取的私人数据Packer ,然后使用 Chrome 浏览程序将其上传到各种云存储提供商。
不幸的是,这些策略在勒索软件攻击中很常见。终端保护工具通常不会阻止使用这些和其他实用程序,因为它们确实有合法的用途。
在这两种情况下,攻击者都反复尝试(但未成功)在攻击的最后阶段在设备上加载和启动 Cobalt Strike 远程控制工具。在第二次攻击中,在多次尝试使用 Cobalt Strike 失败后,他们还尝试在部分设备上安装 Metasploit 的 Meterpreter,最终决定安装一个名为 ScreenConnect 的商业远程访问工具。攻击者试图使用 ScreenConnect 中的文件共享工具将 Cobalt Strike 推送到受保护的设备上,但最终失败了。
最终,攻击者将一组文件放到他们控制的 Active Directory 服务程序上。攻击将这些文件释放在 C:\share$ 中:
comps.txt——要攻击的主机列表;
pdf.dll——勒索软件有效载荷;
PsExec.exe——Microsoft 的合法应用程序;
COPY.bat——使用 PsExec 将 pdf.dll 复制到所有主机的说明;
EXE.bat——使用 PsExec 对所有主机执行 pdf.dll 的说明;
然后他们运行 COPY 批处理脚本,然后运行 EXE 批处理脚本。
比较 Dridex 和 Entropy 中的子程序
两种情况下的Entropy样本都以针对 32 位体系结构编译的 Windows DLL 文件的形式传播。 Dridex 有效载荷以 EXE 和 DLL 格式从各种系统中恢复,并针对 32 位和 64 位架构进行编译。我们查看了 32 位 Dridex 木马。
攻击已经为每个目标组织编译了 Entropy 勒索软件 DLL 的自定义版本。该恶意软件在其代码中包含对目标组织的硬编码引用,包括后来在被感染设备上放置的 HTML 赎金记录中使用的文本和图像。
赎金通知会警告受害者不要联系警察或联邦调查局或聘请赎金谈判人员或数据恢复公司。
攻击者使用将两个参数传播给 DLL 的命令行来执行它,第一个参数是一个标准函数调用DllRegisterServer,但第二个参数是一个看似随机的字符串,用作某种密码:没有它,勒索软件将无法正常运行。
幸运的是,我们能够找到攻击者用来启动恶意软件的精确命令,因此我们可以在受控环境中研究样本。 Entropy 的执行命令如下所示:
勒索软件必然与像Dridex这样更通用的木马在功能上有很大的不同,这使得逐行比较变得复杂。相反,我们研究了这两种恶意软件显然用来使分析复杂化的代码的各个方面:packer程序代码,它可以防止对底层恶意软件进行简单的静态分析;程序用来隐藏它们进行的 API 调用的子程序;还有一个子程序,用于解密嵌入在恶意软件中的加密文本字符串。
Entropy 的 Packer 行为
Packer Entropy 使用两个阶段的工作来解压缩程序代码:在第一层,它分配一些内存,然后将加密的数据复制到该内存空间,然后 Packer 将执行转移到第一层。接下来,Packer 程序将代码解密到存储加密数据的同一内存分配的另一部分,然后将执行转移到第二层。
指示Entropy如何执行第一“层”解包的指令与Dridex的分析师非常相似,他们查看了打包程序的代码,特别是引用称为 LdrLoadDll 的 API 的部分以及该子程序的行为,将其描述为“非常像 Dridex v4 加载程序”,并将其与 2018 年 Dridex 样本使用的类似加载程序进行了比较。其他供应商对 Dridex 的研究中强调了相关行为。具体来说,它正在寻找一个名为 snxhk.dll 的 DLL,它是另一家公司终端安全产品的内存保护组件,以破坏该保护。
值得注意的是,Sophos 已经在我们的终端产品中对 Dridex Packer 程序进行了一段时间的静态检测。签名名称是 Mal/EncPk-APX,这是值得注意的,遥测显示在这些事件中,当 Entropy 而不是 Dridex 存在时,受 Sophos 保护的设备检测到了该Packer 程序。
另一位 SophosLabs 管理器也记录了在 Sophos 保护的设备上检测到这个特定的Packer 程序代码,攻击者在这些设备上尝试运行名为 DoppelPaymer 的勒索软件,但未成功。该勒索软件的起源(如 Dridex)被归因于名为 Evil Corp 组织,从大约 2019 年 4 月到 2021 年 5 月一直在使用。在美国财政部外国资产控制办公室 (OFAC) 制裁 Evil 之后Corp 于 2019 年 12 月收购 Dridex,该组织对其勒索软件进行了一系列更改,循环使用了许多名称,包括 WastedLocker、Hades、Phoenix、Grief、Macaw,现在可能还有 Entropy。
向量异常处理子程序
一旦恶意软件自行解压,Packer 程序的最后一步是在称为入口点的内存位置启动恶意软件,这是恶意软件执行的第一条指令开始的地方。在 Dridex 和 Entropy 的情况下,入口点代码设置了一个称为矢量异常处理程序 (VEH) 的进程,这是恶意软件开发者可能会插入到最终产品中的另一种反分析形式。 VEH 为程序在操作系统中调用 API 设置了另一种方式,这使得分析人员很难确切地看到代码在任何给定的指令上做了什么。
出于此目的使用 VEH 对良性程序来说是非标准行为,因此它的存在本身就是对恶意的弱启发式,并且是 Dridex 的更强指标,因为它使用 VEH 技术已有一段时间了。然而,分析师指出,虽然 Dridex 和 Entropy 中的 VEH 代码绝对相同,但研究人员并没有看到 Entropy 使用该代码。
Entropy字符串解码和 API 解析子程序
我们还研究了勒索软件行为的其他两个方面,并将其与 Dridex 中的类似子程序进行了比较。其中一个子程序用于解码嵌入在恶意软件中的加密字符串。
在这个并排比较中,这个子程序的 Dridex 形式出现在左边,Entropy形式出现在右边。查看这些示例的分析师必须对代码进行大量清理才能产生这种并排比较。他们将字符串解密逻辑描述为基本相似的代码流和逻辑,但在 Entropy 版本中“进行了一些优化”。
同样,分析师比较了 Dridex 和 Entropy 用于解析 API 调用的子程序的源代码。虽然存在细微差别(Dridex 将两个哈希值作为输入,而 Entropy 仅采用一个),但分析师表示“遍历”(浏览每个可用 API)然后解析进程环境块 (PEB) 和模块列表的逻辑看起来非常相似。
总而言之,这种遍历结构以获取基本 DLL 名称以及最终获取它们的函数地址的行为(使用 PEB_LDR_DATA 和 LDR_DATA_TABLE_ENTRY)是 Entropy 和 Dridex 共有的行为特征。
本文翻译自:https://news.sophos.com/en-us/2022/02/23/dridex-bots-deliver-entropy-ransomware-in-recent-attacks/如若转载,请注明原文地址