近日,网络安全研究人员发现了一款新型Windows远程访问木马(RAT),该木马通过精心构造的损坏DOS头和PE头,成功绕过传统安全检测机制,并在受害系统中潜伏长达数周未被发现。攻击者可利用其完全控制的受感染设备,通过一系列脚本和PowerShell命令植入Windows进程中,从而可以窃取敏感数据、执行任意命令或部署其他恶意载荷。该恶意软件其最显著的特点是故意破坏DOS头(DOS Stub)和部分PE头结构,使得许多依赖静态分析的杀毒软件和沙箱无法正确识别其可执行性,从而逃避检测。研究人员未能直接获取到恶意软件的原始可执行文件,但成功获取了运行恶意软件进程的内存转储文件以及受感染机器的完整内存转储文件。
图 1 受感染机器的完整内存转储文件
二、恶意软件分析
DOS(磁盘作系统)和PE(可移植可执行文件)标头是Windows PE文件的重要组成部分,提供有关可执行文件的信息。虽然DOS标头使可执行文件向后兼容MS-DOS,并允许作系统将其识别为有效的可执行文件,但PE标头包含Windows加载和执行程序所需的元数据和信息。网络安全研究人员分析发现该攻击活动利用的恶意软件运行在dllhost.exe进程中,是一个64位的PE文件。其DOS和PE头部信息被恶意破坏,目的是为了阻碍研究人员从内存中重建恶意软件的完整可执行文件。
尽管恶意软件的头部信息遭到破坏,研究人员通过多次尝试和反复修复,成功在本地环境中复现了恶意软件的行为。并通过以下步骤实现了对恶意软件的动态分析:
-
定位入口点:由于PE头部被破坏,研究人员无法直接获取恶意软件的入口点。但通过手动分析和工具辅助,研究人员最终确定了恶意软件的入口点函数。
图 2定位入口点函数
-
分配内存:研究人员在本地环境中手动为恶意软件分配了内存空间,并将转储的恶意软件代码复制到分配的内存中。
图 3 dllhost.exe中新分配的内存
-
解析导入表:恶意软件的导入表中包含大量Windows API的调用信息。研究人员通过工具和手动分析,将这些API的地址重新定位到本地系统中,确保恶意软件能够在本地环境中正常运行。
-
修复参数和堆栈:研究人员根据恶意软件的入口点函数要求,手动准备了必要的参数,并调整了堆栈指针,以确保恶意软件能够正确执行。
图 4 使用固定 API 表在入口点函数处中断
研究人员发现,该恶意软件在执行后会解密其存储在内存中的命令与控制(C2)服务器信息(域名为rushpapers[.]com,端口为443),并通过TLS协议新建线程与 C2 服务器建立通信。恶意软件通过创建新线程与C2服务器进行通信时,主线程则进入睡眠状态,等待通信线程完成执行。在数据传输过程中,恶意软件会先使用自定义加密算法对数据进行异或加密,再通过TLS协议进一步加密。例如,一段加密数据经分析显示,其包含本地测试环境的系统信息“OS: Windows 10 / 64-bit (10.0.19045)”,这些信息会在C2服务器请求时被收集并发送。
研究人员进一步分析发现,该恶意软件还具备以下功能:
-
屏幕截图功能:能够捕获受感染系统的屏幕截图,并将其作为JPEG图像发送到C2服务器。
-
系统服务管理:可以枚举和操作受感染主机上的系统服务。
-
作为服务器运行:恶意软件可以作为服务器运行,监听由C2服务器指定的TCP端口,等待攻击者的连接。通过多线程套接字架构,恶意软件能够同时处理多个会话,支持更复杂的交互。
三、总结
本次攻击活动研究人员通过复杂的分析和多次尝试,成功在本地环境中复现了该恶意软件的攻击行为,并揭示了其逃避检测的技术手段。该恶意软件通过破坏DOS和PE头部信息,能够成功在受感染系统中潜伏数周,展示了其高度的隐蔽性和复杂性。研究人员提醒用户,此类恶意软件可能通过远程访问基础设施入侵系统,并通过PowerShell脚本传播。用户应加强系统安全防护,及时更新安全软件,以防止此类威胁的入侵。
参考链接:
https://www.fortinet.com/blog/threat-research/deep-dive-into-a-dumped-malware-without-a-pe-header
原文始发于微信公众号(白泽安全实验室):新型Windows RAT利用损坏的DOS和PE头逃避检测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论