标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3543] 作者: ShYLie 发表于: [2025-05-04]
本文共 [6] 位读者顶过
概述 前段时间,笔者关注到unit42安全团队发布了一篇《Off the Beaten Path: Recent Unusual Malware》报告,报告剖析了其工作中遇到的多个不寻常的恶意软件。在对其报告进行研读的过程中,一款被多个安全厂商归类为EquationDrug恶意软件的Bootkit程序引起了笔者的注意。[出自:jiwo.org]根据报告中的描述,unit42安全团队发现此样本是从[真实受害主机]上上传至VT平台的,由[美国密西西比大学]使用无效证书签名,颁发者为it@olemiss.edu,并且其运行后,将在操作系统上[安装GRUB2引导加载程序],因此,unit42安全团队将此样本定义为2024年最奇特的威胁样本之一。 为了进一步探究此Bootkit的功能,笔者使用了多种方法进行了对比分析,[发现此Bootkit可直接由NSA方程式组织的FUZZBUNCH工具进行远程加载调用。] 此外,笔者还注意到此Bootkit技术中多个值得深思的问题: 此Bootkit的导出函数名与NSA方程式组织Windows平台下的多个恶意样本的导出函数名相同。[难道是为了兼容使用NSA方程式组织攻击平台?] 此Bootkit程序并无特种木马功能行为,更像是一个测试样本,通过梳理,发现此Bootkit样本的上传地址、证书签名、内置图片资源、内置音频资源等浅层次特征(可自由替换)上均与美国相关,但在驻留内核驱动程序、加载内核驱动程序等深层次特征(不便替换)上,使用了中国傲梅分区助手中的驱动程序。[难道真的是因为中国的这款驱动程序最合适、好用?]
EquationDrug报毒原因 根据unit42安全团队的报告介绍,此Bootkit的报毒原因是由于使用了与NSA方程式组织恶意样本中相同的dll_u导出函数名称。 此Bootkit的导出函数截图如下:
NSA方程式组织Windows平台下PC_Level3_dll恶意样本的导出函数截图如下:
dll_u导出函数功能剖析 入口点函数代码对比 PC_Level3_dll恶意样本的dll_u导出函数截图如下:
PC_Level3_exe恶意样本的main函数截图如下:
FUZZBUNCH加载调用dll_u导出函数
PC_Level3_dll.configured后门程序的导出函数截图如下:
FUZZBUNCH工具调用Doublepulsar插件进行远程注入的操作截图如下:
DanderSpritz工具[成功接收PC_Level3_dll.configured后门程序的上线请求]截图如下:
使用FUZZBUNCH远程注入Bootkit 基于上述研究对比结果,我们可知NSA方程式组织Windows平台下的pc2.2_prep恶意样本的dll_u导出函数实际即为其恶意样本的入口函数。
基于此,笔者琢磨:[能否使用FUZZBUNCH工具远程注入此Bootkit,远程加载其dll_u导出函数,以实现此Bootkit的恶意功能呢?]
使用FUZZBUNCH工具加载EternalBlue漏洞的攻击截图如下:
使用FUZZBUNCH工具加载Doublepulsar插件[远程注入此Bootkit]的操作截图如下:
Bootkit注入成功后,成功触发此Bootkit的功能模块,实现Vmware虚拟机的重启行为:
重启Vmware虚拟机后,成功加载GRUB2引导加载程序,设置电脑背景为美利坚联盟国的战旗和播放美国dixie民谣歌曲:
UEFI启动
略过中间相同操作流程。
Bootkit功能剖析
创建计划任务
相关代码截图如下:
运行后创建的计划任务内容截图如下:
AI逆向分析zlib函数 进一步分析,发现sub_2277B4416函数中调用了sub_7FFE49731837函数,相关代码截图如下:
sub_7FFE49731837函数的调用逻辑其实还挺复杂的,相关函数调用逻辑图如下:
由于sub_7FFE49731837函数代码的可读性不强,若非经验丰富的分析人员,否则仅通过人工分析是很难准备提取出此函数的功能的。 因此,笔者在这里直接借助了AI大模型对此函数功能进行了剖析。 基于AI大模型剖析结果如下 ![]()
内存释放磁盘映像文件
解压缩后的二进制内容如下:
进一步分析,发现此二进制文件其实是一个磁盘映像文件,磁盘映像文件大小约35MB,相关截图如下:(磁盘映像文件中的创建时间为:2024/07/09 06:29)
动态获取API
验证操作系统版本
释放并加载ampa驱动程序
调整进程权限
创建ampa服务
加载ampa驱动程序
写磁盘映像文件至每个磁盘
卸载并清理ampa驱动
相关代码截图如下:
重启系统
加载执行磁盘映像文件 ampa.sys驱动程序剖析
尝试提取Bootkit资源段中的ampa.sys驱动程序,对其进一步分析,发现此驱动程序文件其实是国内【傲梅分区助手】软件中的内核驱动程序。
网络中关于ampa.sys驱动程序的描述:
ampa.sys驱动程序的数字签名信息如下:
尝试安装傲梅分区助手,对比ampa.sys驱动程序的Hash信息,发现Hash信息相同,相关截图如下:
值得深思的问题
MBR剖析
相关截图如下:
IDA反编译后的启动代码截图如下:
维基百科介绍如下:
引导分区剖析
通过对引导分区进行剖析,发现引导分区中存在多个目录及文件:
相关截图如下:
/grub2/grub.cfg配置文件
结合grub官方文档对/grub2/grub.cfg文件进行剖析,发现/grub2/grub.cfg文件实际即为GRUB引导加载程序的配置文件,用于控制操作系统的启动过程。
进一步对/grub2/grub.cfg文件内容进行剖析,梳理关键代码功能如下:
/grub2/grub.cfg配置文件内容如下:
grub官方文档介绍如下:
模拟Bookit原理制作GRUB2引导U盘
基于此,我们已基本了解此Bootkit的原理及功能:[借助ampa.sys驱动程序,将内置的GRUB2引导加载程序写入系统磁盘,用以实现破坏操作系统引导的目的。]
为了能够更直观的理解此Bootkit破坏操作系统引导的过程,笔者尝试将此Bootkit样本内存中释放的GRUB2引导加载程序制作成类似于windows PE盘的方式,用以复现此Bootkit的攻击场景:
winhex工具克隆U盘的操作截图如下:
成功克隆后,U盘磁盘空间如下:
VMware虚拟机添加U盘作为虚拟机硬盘:
进入虚拟机固件,选择U盘对应的硬盘启动VMware虚拟机:
成功开机后,[VMware虚拟机将设置电脑背景为美利坚联盟国的战旗和播放美国dixie民谣歌曲,此行为与Bootkit加载运行后的场景相同]。
相关截图如下:
|