ESET 研究人员发现了一种攻击乌克兰组织的新Wiper以及在本地网络中传播 HermeticWiper 的蠕虫组件。
随着最近俄罗斯和乌克兰之间战争的进行,ESET 研究人员发现了几个针对乌克兰组织的恶意软件家族。
2022 年 2 月 23 日,一场使用 HermeticWiper 的破坏性活动针对多个乌克兰组织。这次网络攻击比俄罗斯联邦军队入侵乌克兰早了几个小时。
2022 年 2 月 24 日,对乌克兰政府网络的第二次破坏性攻击开始了,使用的是我们命名为 IsaacWiper 的新型雨刷式恶意软件。
ESET 目前还不清楚这些攻击归因于哪个组织。
该攻击始于 UTC 时间 2022 年 2 月 23 日 14:52 左右。这是在针对乌克兰主要网站的分布式拒绝服务 (DDoS) 攻击之后,并且在俄罗斯军事入侵之前几个小时。
这些破坏性攻击至少利用了三个组件:
HermeticWiper:通过破坏数据使系统无法运行;
HermeticWizard:通过 WMI 和 SMB 在本地网络中传播 HermeticWiper;
HermeticRansom:用 Go 编写的勒索软件;
在至少五个乌克兰组织的数百个系统上观察到 HermeticWiper。
2022 年 2 月 24 日,研究人员在乌克兰政府网络中检测到另一个新的雨刷式恶意软件。他们将其命名为 IsaacWiper,目前正在评估它与 HermeticWiper 之间的关系。需要注意的是,它是在一个不受 HermeticWiper 影响的组织中看到的。
目前,研究人员还没有发现与已知攻击者的任何切实联系。 HermeticWiper、HermeticWizard 和 HermeticRansom 与 ESET 恶意软件集合中的其他样本没有任何明显的代码相似性。 IsaacWiper 也仍未找到归因。
HermeticWiper 和 HermeticWizard 由 2021 年 4 月 13 日颁发的分配给 Hermetic Digital Ltd 的代码签名证书(如图 1 所示)签名。 CA (DigiCert) 于 2022 年 2 月 24 日撤销了该证书。
分配给 Hermetic Digital Ltd 的代码签名证书
根据路透社的报道,该证书似乎不是从 Hermetica Digital 窃取的。相反,攻击者很可能冒充塞浦路斯公司,以便从 DigiCert 获取此证书。
ESET的研究人员非常确信,受影响的组织在Wiper部署之前就受到了攻击。这是基于以下几个事实:
HermeticWiper PE 编译时间戳,最早的是 2021 年 12 月 28 日;
代码签名证书颁发日期 2021 年 4 月 13 日;
在至少一个实例中,通过GPO部署heremeswiper表明攻击者事先访问了受害者的活动目录服务器
重要事件的时间表
初始访问
HermeticWiper
初始访问向量目前未知,但我们已经观察到目标组织内部的横向移动伪影。在一个攻击对象中,Wiper是通过默认域策略 (GPO) 部署的,如其在系统上的路径所示:
这表明攻击者很可能控制了 Active Directory 服务器。
在其他情况下,可能使用 Impacket 来部署 HermeticWiper。赛门铁克的一篇博文指出,wiper 是使用以下命令行部署的:
最后一部分与 GitHub 上的 Impacket 的 wmiexec.py 中的默认行为相同。
最后,我们使用了一个名为heremicwizard的自定义蠕虫,通过SMB和WMI在受攻击的网络中传播heremiceswiper。
IsaacWiper
初始访问途径目前也是未知的。攻击者很可能使用 Impacket 等工具进行横向移动。在一些设备上,我们还观察到远程访问工具 RemCom 与 IsaacWiper 同时部署。
技术分析
HermeticWiper
HermeticWiper 是一个 Windows 可执行文件,其资源中嵌入了四个驱动程序。它们是成都亿沃科技开发有限公司签署的EaseUS Partition Master软件的合法驱动程序,它们执行底层磁盘操作。观察到以下文件:
根据操作系统版本,选择这四个驱动程序之一并将其放在 C:\Windows\System32\drivers\< 4 random letters >.sys中。然后通过创建服务来加载它。
HermeticWiper 然后通过禁用卷影复制服务 (VSS) 继续,并通过用随机字节覆盖其自己的文件从磁盘中擦除自身。这种反取证措施可能旨在防止在事故后分析中对Wiper进行分析。
有趣的是,大多数文件操作都是使用 DeviceIoControl 调用在底层执行的。
以下位置被 Windows API 函数 CryptGenRandom 生成的随机字节覆盖:
此外,它还使用 FSCTL_MOVE_FILE 操作擦除 Windows、Program Files、Program Files(x86)、PerfLogs、Boot、System Volume Information 和 AppData 文件夹中的文件夹和文件。这种技术似乎很不寻常,并且与 GitHub 上的 Windows Wipe 项目中实现的技术非常相似(请参阅wipe_extent_by_defrag 函数)。它还通过用随机字节覆盖符号链接和“我的文档”和“桌面”文件夹中的大文件来擦除它们。
最后,设备重新启动。但是,它将无法启动,因为 MBR、MFT 和大多数文件已被擦除。研究人员目前还无法恢复受影响的设备。
HermeticWizard
在寻找由相同代码签名证书(Hermetica Digital Ltd)签名的其他样本时,我们发现了一个名为Hermetica wizard的新的恶意软件家族。
这是一个蠕虫病毒在UTC时间2022年2月23日14:52:49被部署在乌克兰的一个系统上。它是一个用c++开发的DLL文件,导出了函数DllInstall、DllRegisterServer和DllUnregisterServer。其导出DLL名称为“Wizard.dll”。包含三种资源,都是加密的PE文件:
资源使用反向异或循环加密。每个包含四个字节的块与前一个块进行异或运算。最后,第一个块使用硬编码值0x4A29B1A3进行异或处理。
HermeticWizard 使用命令行 regsvr32.exe /s /i < path >启动。
首先,HermeticWizard 尝试在本地网络上查找其他设备。它使用以下 Windows 函数收集已知的本地 IP 地址:
然后它会尝试连接到这些 IP 地址(并且仅当它们是本地 IP 地址时)以查看它们是否仍然可以访问。如果在启动 HermeticWizard 时提供了 -s 参数(regsvr32.exe /s /i:-s< path >),它还会扫描整个 /24 范围。因此,如果在例如 DNS 缓存中找到192.168.1.5 ,它会从192.168.1.1增量扫描到192.168.1.254。对于每个 IP 地址,它会尝试在以下端口上打开 TCP 连接:
端口是随机顺序扫描的,所以不可能以这种方式对 HermeticWizard 流量进行指纹识别。
当它找到一台可访问的设备时,它会将 WMI 扩展器(下面详述)放到磁盘上,并使用命令行rundll32< 当前文件夹 >\< 6 个随机字母 >.ocx #1 -s < HermeticWizard 的路径 >创建一个新进程– i < 目标 IP >。
它对同样放在< current folder >\< 6 random letters >.ocx中的 SMB 扩展器(如下详述)执行相同的操作,但随机字母不同。
最后,它会将 HermeticWiper 放入< 当前文件夹 >\< 6 个随机字母 >.ocx并执行它。
WMI 扩展器
由其开发人员 exec_32.dll 命名的 WMI 扩展器采用两个参数:
首先,它使用WNetAddConnection2W创建一个到目标的远程ADMIN$共享的连接。然后使用 CopyFileW 复制 -s 参数中提供的文件。远程文件具有使用 CoCreateGUID 生成的随机名称(例如 cB9F06408D8D2.dll)和字符串格式 c%02X%02X%02X%02X%02X%02X。
其次,它尝试使用 DCOM 在远程设备上执行复制的文件 HermeticWizard。它以 CLSID_WbemLocator 作为参数调用 CoCreateInstance。然后它使用 WMI Win32_Process 在远程设备上创建一个新进程,命令行 C:\windows\system32\cmd.exe /c start C:\windows\system32\\regsvr32.exe /s /i C:\windows\< 文件名 >.dll。
请注意,-s 参数不会传递给 HermeticWizard,这意味着它不会再次从这台新受感染的设备上扫描本地网络。
如果 WMI 技术失败,它会尝试使用与上述相同的命令使用 OpenRemoteServiceManager 创建服务。
如果它以任何方式成功执行远程 DLL,它就会休眠,直到它可以删除远程文件。
SMB扩展器
SMB扩展程序由其开发人员命名为romance.dll,它接受与WMI扩展程序相同的两个参数。它的内部名称可能是对EternalRomance漏洞的引用,即使它没有使用任何漏洞。
首先,它尝试连接到远程 SMB 共享(端口 445)上的以下管道:
这些是已知用于横向移动的管道。传播器有一个硬编码凭证列表,用于尝试通过 NTLMSSP 对 SMB 共享进行身份验证:
这个凭证列表非常短,即使在保护最差的网络中也不太可能工作。
如果连接成功,它会尝试将 -s 参数引用的文件放到目标 ADMIN$ 共享中。对于 WMI 扩展器,远程文件名是通过调用 CoCreateInstance 生成的。
然后它通过 SMB 执行命令行cmd /c start regsvr32 /s /i ..\\< filename > & start cmd /c \”ping localhost -n 7 & wevtutil cl System\”。
HermeticRansom
ESET 研究人员还观察到 HermeticRansom(用 Go 编写的勒索软件)与 HermeticWiper 活动同时在乌克兰使用。 HermeticRansom 于 2022 年 2 月 24 日凌晨在 AVAST 的一条推文中首次被报道。与heremeswiper相比,该产品的部署规模要小得多。该勒索软件与 HermeticWiper 同时部署,可能是为了隐藏Wiper的行为。在一台设备上,观察到以下时间线:
有一次,我们观察到 HermeticRansom 是通过 GPO 部署的,就像 HermeticWiper 一样:
攻击者在二进制文件中留下了一些字符串,他们提到了美国总统拜登和白宫:
一旦文件被加密,就会向受害者显示下图中的消息。
IsaacWiper
IsaacWiper在Windows DLL或EXE中没有Authenticode签名,它于2022年2月24日出现在研究人员的监控中。如前所述,我们发现的最早的 PE 编译时间戳是 2021 年 10 月 19 日,这意味着如果它的 PE 编译时间戳没有被篡改,那么IsaacWiper可能在几个月前的操作中被使用过。
对于 DLL 示例,PE 导出目录中的名称是 Cleaner.dll,它有一个导出 [email protected]。
我们在 %programdata% 和 C:\Windows\System32 中观察到 IsaacWiper,文件名如下:
它与 HermeticWiper 没有代码相似性,并且不那么复杂。鉴于时间线,两者可能是相关的,但我们还没有发现任何紧密的联系。
IsaacWiper 首先枚举物理驱动器并使用 IOCTL IOCTL_STORAGE_GET_DEVICE_NUMBER 调用 DeviceIoControl 以获取它们的设备编号。然后它使用 ISAAC 伪随机生成器擦除每个磁盘的前 0x10000 字节。生成器使用 GetTickCount 值传播。
然后它会枚举逻辑驱动器,并使用 ISAAC PRNG 生成的随机字节擦除每个磁盘的每个文件。有趣的是,它在单个线程中擦除文件,这意味着擦除了一个大磁盘将花费很长时间。
2022 年 2 月 25 日,攻击者删除了带有调试日志的新版本 IsaacWiper。这可能表明攻击者无法擦除某些目标设备并添加日志消息以了解正在发生的事情。日志存储在 C:\ProgramData\log.txt 中,其中一些日志信息如下:
总结
本文详细描述了在2022年2月23日影响乌克兰组织的一次网络攻击,以及在2022年2月24日至26日影响乌克兰另一个组织的第二次网络攻击。
本文翻译自:https://www.welivesecurity.com/2022/03/01/isaacwiper-hermeticwizard-wiper-worm-targeting-ukraine/如若转载,请注明原文地址