原文链接:Oh, what a boot-iful mornin’
译者:知道创宇404实验室翻译组
今年4月中旬,相关威胁监控系统检测到借助“世界银行与冠状病毒大流行有关的新倡议”的恶意软件,扩展名为 EXE 或 RAR, 在这些文件中有著名的 Rovnix bootkit。虽然利用冠状病毒这一话题进行传播的事情已屡见不鲜,但其使用UAC旁路工具进行了更新,并且正在用于交付对此不寻常的装载机的实例却很少见。
输入SFX进行存档
这份名为《关于世界银行与冠状病毒pandemic.exe有关的新举措》的文件,是一份自解压的报告,其中列出了easymule.exe和1211.doc。
该文件确实包含有关世界银行一项新计划的信息,并且在元数据中引用了与该组织有关的真实个人作为作者。
至于easymule.exe,它的资源包含一个位图图像,实际上是一个可执行文件,会进行解压并加载到内存中。
进入UAC
加载到内存中的PE代码包含许多部分,这些部分与Rovnix引导程序及其模块非常相似,其源代码早在2013年就已经泄漏。
但是,根据原始Rovnix源代码,可以看到近期行动的创新之处,其中之一是使用“模拟受信任目录”技术的UAC绕过机制。
借助Windows API,该恶意软件将创建目录C:\Windows\System32\(Windows之后为空格)。然后,它将在那里C:\Windows\System32\复制一个合法的已签名可执行文件,该文件有自动提升且不显示UA的C请求(在本例中为wusa.exe)。
另外还使用DLL劫持:将恶意库放置在假目录中,其中包含由合法文件(在本例中为wtsapi32.dll)导入的库。当从假目录进行运行时,由于GetLongPathNameW API的存在,合法文件wusa.exe会通过授权检查,而且API从路径中的空格字符也会被删除。同时,在没有UAC请求的情况下从假目录运行合法文件,并加载名为wtsapi.dll的恶意库。
除了将合法的系统文件复制到假目录并在其中创建恶意库外,删除程序还会创建另一个名为uninstall.pdg的文件。接着,该恶意软件会创建并运行一系列BAT文件,这些文件从伪目录中启动wusa.exe,然后通过删除创建的目录和easymule.exe程序来清理跟踪。
进入Rovnix
文件uninstall.pdg包含一个打包的可执行文件。它旨在解压以前使用wusa.exe和DLL劫持下载的相同恶意库。
恶意库的代码最少,导出的函数WTSQueryUserToken显然没有导入原始wusa.exe所需的功能。相反,该函数读取uninstall.pdg进行解压并从中运行可执行文件。
解压后的uninstall.pdg最终是一个带有导出功能BkInstall的DLL,这是恶意软件基于泄漏的Rovnix代码的另一种表现,文件的进一步分析证实了这一点。
粘贴在uninstall.pdg中的是与aPLib一起打包的可执行文件。使用FJ实用程序(也来自Rovnix引导程序)进行粘合,可以由文件解压算法和FJ签名进行证明。
粘贴的文件是泄漏的Rovnix引导程序包和引导加载程序中的KLoader驱动程序。Uninstall.pdg将它们解压,用引导加载程序覆盖VBR,并将打包的原始VBR放在旁边。另外,将KLoader写入磁盘,其目的是将有效负载注入正在运行的进程中。
从图中可以看出,该恶意软件的源代码与原始代码没有太大区别。原始代码看似经过编译,可以在没有VFS和协议栈的情况下使用,以便驱动程序与网络一起运行。
在这种情况下,驱动程序将DLL注入到进程中,这与我们一开始就谈到的非Rovnix加载程序相同。
因此,一般执行方案如下。
进入装载机
首先要注意的是文件中的PDB路径。
运行时,恶意软件首先用功能指针填充结构。分配的内存中填充了指向函数的指针,这些指针随后将通过其在分配的内存区域中的偏移量进行调用。
接下来,该进程为对Winsta0和Default桌面对象进行访问,并创建一个具有C&C通信周期的线程。
创建线程后,恶意软件使用OpenMutexA检查其是否存在于系统中。然后开始C&C通信周期,在此周期内生成有关受感染设备的数据包。该数据包用单字节密钥0xF7进行XOR加密,然后发送到C&C。
作为响应,恶意软件会接收一个可执行文件,该可执行文件已加载到内存中,控制权转移到该PE文件的入口点。
进行测试
加载程序并非唯一的示例,示例间都具有相似的功能,但在细节上有些许差别。如通过尝试注册NetService处理程序来检查其是否正常运行,如果失败(即该服务未在系统中运行),该恶意软件将停止运行。
加载程序的其他实例不使用bootkit,但会应用相同的UAC旁路方法。所有迹象表明装载机目前正在积极测试中,并配备了各种工具来绕过保护。
我们还发现了可用作加载程序的有效负载的实例。它们包含与加载程序相似的PDB路径和相同的C&C。有趣的是,所需的API的地址是从函数名获得的,函数名是从配置行中的索引获得的。
在C&C的命令下,此恶意软件可以运行具有指定参数的EXE文件。
模块名称(E:\LtdProducts\Project\newproject\64bits\64AllSolutions\Release\PcConnect.pdb)建议开发人员将其定位为后门,根据某些配置行的判断,它可能还具有Trojan-Spy元素。
结语
我们对伪装成世界银行“新计划”的恶意软件的分析表明,即使像Rovnix这样的著名威胁软件在源代码公开时也会出现很多意外。网络罪犯无需从头开始开发自己的绕过保护工具,可以更加关注自己恶意软件的相关功能,并在源代码中添加额外的“好东西”,例如UAC绕过。卡巴斯基检测到此威胁及其相关模块,如Trojan.Win32.Cidox、Trojan.Win32.Generic、Trojan.Win32.Hesv和Trojan.Win32.Inject。
IOC
7CFC801458D64EF92E210A41B97993B0
E2A88836459088A1D5293EF9CB4B31B7
bamo.ocry[.]com:8433
45.77.244[.]191:8090 (ZoomEye搜索结果)
45.77.244[.]191:9090
45.77.244[.]191:5050
45.76.145[.]22:8080 (ZoomEye搜索结果)
149.28.30[.]158:443 (ZoomEye搜索结果)
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1253/