查看原文
其他

Quasar RAT 开始使用双重 DLL 侧加载技术

Avenger FreeBuf安全咨询 2024-01-02

作者 | Avenger

编 | zhuo

Quasar RAT 对传统的侧加载技术进行了复杂的改造,创造了全新的双重 DLL 侧加载技术,十分巧妙地利用了两个微软的应用程序:ctfmon.exe 与 calc.exe。双重 DLL 侧加载技术不仅利用了这两个文件在 Windows 生态系统中的信任,还对威胁检测机制提出了更大的挑战。本文详细介绍了该技术的设计与执行,解释了攻击者如何利用该技术运行 Payload。


Quasar RAT 也称为 CinaRAT 或 Yggdrasil,是使用 C# 编写的轻量级远控木马。该远控木马在 GitHub 已开源,具备收集系统信息、运行程序信息、传输文件、记录按键、屏幕截图、摄像头拍照、恢复系统密码、远程桌面连接与执行远程命令等功能。


 | 侧加载技术 |


侧加载被各路攻击者广泛使用,了解该技术对防御者来说至关重要。QuasarRAT 就提供了一个很好的契机,借此机会对其使用的侧加载技术进行介绍。


侧加载过程


2022 年,研究人员发现 Qbot 正在使用 calc.exe 进行 DLL 侧加载攻击,攻击者在不断调整攻击技术。到了 2023 年,攻击者使用 ctfmon.exe 与 calc.exe 进行 DLL 侧加载。QuasarRAT 使用了分两阶段的侧加载技术如下所示:


  1. 初步执行:初始阶段,攻击者利用 ctfmon.exe 加载恶意 DLL 文件。执行后,攻击者获取第一阶段的 Payload,攻击者将其作为后续行为的核心。

  2. Payload 释放:这时的 Payload 有双重作用,将合法的 calc.exe 文件与恶意 DLL 文件释放到系统中。

  3. 第二阶段:攻击者利用 calc.exe 加载恶意 DLL 文件,释放 QuasarRAT 到计算机内存中。

  4. Process Hollowing:QuasarRAT 驻留在计算机内存中,会采用被称为 Process Hollowing 的技术,将自身代码嵌入合法系统进程中,进一步提升隐蔽性。


 | 技术分析 |


从最初的 ISO 文件中,可以提取三个文件:


  • eBill-997358806.exe:合法 Windows 文件,实际名为 CTFMON.EXE

  • Monitor.ini:合法 Windows 文件,实际名为 MsCtfMonitor.DLL

  • MsCtfMonitor.dll:恶意 DLL 文件


QuasarRAT 的进程树如下所示:


进程树


文件 eBill-997358806.exe 执行时,会通过侧加载技术加载 MsCtfMonitor.dll 恶意 DLL 文件。DLL 文件中,包含加密的资源段。加密数据共 5AC00 字节,如下所示:


加密数据


恶意代码通过一系列 API 访问加密数据,如下所示:


加载资源数据


解密数据的密钥大小 F2 字节,利用 Systemfunction032 来对数据进行解密。这是一个未公开的 API,会间接调用 BCryptGeneratesymmetrykey、CryptEncrypt 和 CryptDestroyKey 来解密 RC4 加密的数据。密钥也被存储在资源段中,如下所示:


解密密钥


解密后的数据为 PE 文件,即第一阶段中的 FileDownloader.exe:


解密数据


通过以下 API 序列将该 PE 文件注入 Regasm.exe:


CreateProcessGetThreadContextReadProcessMemoryVirtualAllocExWriteProcessMemoryGetThreadContextSetThreadContextResumeThread


下图可以看出 Regasm.exe 进程内存中的 Payload:


内存中的 Payload


 | 第一阶段:FileDownloader.exe |


第一阶段的 Payload 是 64 位 MSIL 文件,其中的资源段包含以 ZIP 压缩格式存储的三个二进制文件。


第一阶段的资源段


解压后将所有文件写入 Public Pictures 文件夹中:


  • Calc.exe:合法 Windows 文件

  • Secure32.dll:恶意 DLL 文件

  • Winsecu32.dll:合法 Windows 文件


 | 第二阶段:Calc.exe |


接下来,利用 c:\Users\Public\Pictures\Calc.exe /quit来执行 Calc.exe。/quit表示程序在启动时立即关闭,但会加载名为 Secure32.dll 的恶意 DLL 文件。攻击者再次利用 DLL 侧加载技术,DLL 文件中也包含一个加密的资源段。


加密数据


如前所述,通过 Systemfunction32 解密数据后,可以获得一个 PE 文件:


解密数据


该 PE 文件通过 Process Hollowing 技术注入 Regasm.exe 的内存。特别的,在调用 VirtualAllocEx 时会显式传递 regasm.exe 的默认内存地址,并将其替换为恶意 PE 文件。


调用 VirtualAllocEx


 | 最终 Payload |


通过前述操作释放的 Payload,是经过 Smart assembly 混淆的 MSIL 可执行文件。该文件的版权为 Copyright © MaxXor 2020,可能灵感来自 Quasar RAT 的作者 MaxXor。


去混淆后,可以看到函数名中代表的功能,包括按键记录、文件传输与命令执行等:


函数与功能


恶意软件随后释放一个 .bat 脚本,在 %Temp% 目录中创建重新启动批处理文件,随后执行 chcp 65001 && ping -n 10 localhost命令。


bat文件


远控木马创建连接到 C&C 服务器的套接字(3[.]94[.]91[.]208 >> ec2-3-94-91-208[.]compute-1[.]amazonaws.com),发送受害者的各种信息(IP 地址、国家代码等)。


收集失陷主机信息


去混淆后,可以看到与 Quasar RAT 有关的字符串,如 Quasar Server:


各种字符串


内存中也有许多 base64 编码的内容, 解码后也是一些要执行的命令:


SELECT * FROM Win32_OperatingSystem WHERE Primary='true'SELECT * FROM Win32_BaseBoardSELECT * FROM FirewallProductSELECT * FROM Win32_ProcessorSELECT * FROM AntivirusProduct


远控木马查看 WMI 的 AntiVirusProduct 和 Firewall 类,获取有关 BIOS 架构、GPU 信息、主机名等信息。Quasar RAT 的反向代理功能如下所示:


反向代理

为了持久化,恶意软件还创建了一个 Windows 注册表项:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\WindowsCalculator "c:\Users\Public\Pictures\Calc.exe /quit"

精彩推荐


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存