Jia Yu ChanSalim Bitam

RONINGLOADER: DragonBreath 通往 PPL 滥用的新道路

Elastic Security Labs 发现了 RONINGLOADER,这是一个部署 DragonBreath 更新版 gh0st RAT 变种的多级加载器。该活动利用签名驱动程序、线程池注入和 PPL 滥用来禁用 Defender 并躲避中国的 EDR 工具。

阅读时间:28 分钟恶意软件分析
RONINGLOADER: DragonBreath 通往 PPL 滥用的新道路

简介

Elastic Security Labs 最近发现了一个通过伪装成合法软件(如 Google Chrome 和 Microsoft Teams)的木马化 NSIS 安装程序传播 gh0st RAT 修改变种的活动,该变种归属于 Dragon Breath APT (APT-Q-27)。感染链采用多级传输机制,利用各种规避技术,并有许多冗余,目的是使中国市场上流行的终端安全产品失效。其中包括使用合法签名的驱动程序、部署自定义WDAC策略,以及通过滥用 PPL 来篡改 Microsoft Defender 二进制文件。

该活动主要针对讲中文的用户,与 2022-2023 年记录的早期龙息相关活动相比,在适应性方面有了明显的发展。通过本报告,我们希望提高人们对这种恶意软件开始实施的新技术的认识,并揭示一种我们命名为 RoningLoader 的独特加载器。

关键要点

  • 该恶意软件滥用 "受保护进程灯"(PPL)来禁用 Windows Defender
  • 威胁行为者利用有效、签名的内核驱动程序杀死进程
  • 应用自定义未签名 WDAC 策略阻止 360 Total Security 和 Huorong 可执行文件
  • 通过线程池注入幻影 DLL 和有效载荷,以进一步终止杀毒软件进程
  • 最终有效载荷略有更新,与 "龙呼吸 "有关

发现

2025 年 8 月,有人发表研究报告,详细介绍了一种滥用 "受保护进程灯"(PPL)来禁用端点安全工具的方法。根据这一披露,我们制定了一条行为规则,即 "通过 ClipUp 执行进行潜在规避",并在对遥测数据进行威胁猎取后,确定了一个采用该技术的实时活动。

RONINGLOADER 代码分析

最初的感染载体是使用Nullsoft Scriptable Install System (NSIS) 创建的木马安装程序。NSIS 是一种用于创建 Windows 安装程序的合法开源工具,但它经常被威胁行为者滥用来打包和分发恶意软件,如GULOADER 中的情况。在这次活动中,我们观察到恶意安装程序以各种主题发布,伪装成合法软件(如 Google Chrome、Microsoft Teams 或其他可信应用程序),诱使用户执行它们。

执行时,主 NSIS 安装程序将作为滴管运行,其中包含两个附加的嵌入式 NSIS 安装程序。其中一个嵌套安装程序是良性的,负责安装合法软件,而第二个嵌套安装程序则是恶意的,负责部署攻击链。

攻击链利用名为ollama.sys 的签名驱动程序终止杀毒软件进程。该驱动程序的签名者名称为Kunming Wuqi E-commerce Co., Ltd. ,证书有效期为 2 月3,2025, 至 2 月3,2026 。转到 VirusTotal 发现 71 额外的签名二进制文件。其中,我们发现了伪装成慕讯公益加速器 (MuXunAccelerator) 的 AgentTesla 程序,这是一款深受中国用户欢迎的游戏专用 VPN 软件,其样本可追溯到 2025 年 4 月。值得注意的是,不同样本的签名技术各不相同。一些早期的样本,如 inject.sys包含 HookSignTool人工痕迹,包括字符串JemmyLoveJenny ,而 10 月份的 2025 ollama.sys 样本没有显示此类人工痕迹,使用的是标准签名程序,但两者的证书有效期相同。

ollama.sys的 PDB 字符串人工制品D:\VS_Project\加解密\MyDriver1\x64\Release\MyDriver1.pdb 与其他样本进行比较,我们发现了与其他提交样本不同的人工制品。

  • D:\cpp\origin\ConsoleApplication2\x64\Release\ConsoleApplication2.pdb
  • D:\a_work\1\s\artifacts\obj\coreclr\windows.x86.Release\Corehost.Static\singlefilehost.pdb
  • C:\Users\0\Desktop\EAMap\x64\Release\ttt.pdb
  • h:\projects\netfilter3\bin\Release\Win32\nfregdrv.pdb

由于二进制文件种类繁多,提交数量巨大,我们怀疑证书可能已经泄露,但目前这只是猜测。

阶段 1

我们的分析从初始二进制文件开始,其 SHA256 哈希值标识为:da2c58308e860e57df4c46465fd1cfc68d41e8699b4871e9a9be3c434283d50b 。解压缩后会发现两个嵌入式可执行文件:良性安装程序letsvpnlatest.exe 和恶意安装程序Snieoatwtregoable.exe

恶意安装程序Snieoatwtregoable.exeC:\Program Files\Snieoatwtregoable\ 创建了一个新目录。在这个文件夹中,它丢弃了两个文件:一个名为Snieoatwtregoable.dll 的 DLL 和一个加密文件tp.png

恶意活动的核心在于Snieoatwtregoable.dll ,它只输出一个函数:DllRegisterServer 。调用该函数时,它会从磁盘读取tp.png 文件的内容,然后使用一种涉及右旋 (ROR) 和 XOR 运算的简单算法对这些数据进行解密。

解密后的内容是 shellcode,可在内存中反射性地加载和执行 PE 文件。恶意软件首先使用NtAllocateVirtualMemory API 在自己的进程中分配一个新的内存区域,然后通过调用NtCreateThreadEx 创建一个新线程来执行 shellcode。

恶意软件通过加载一个全新的ntdll.dll ,然后使用带有 API 名称的GetProcAddress 来解析地址,试图移除任何用户态钩子。

恶意软件尝试连接5555 端口上的 localhost,但没有达到任何实际目的,因为结果并不重要;据推测,这很可能是死代码或生产前的剩余代码

舞台 2 - tp.png

RONINGLOADER 首先使用GetTokenInformation API 检查自己是否拥有管理权限。如果没有,它就会在终止原始进程之前,使用runas 命令启动一个新的、已提升权限的实例,试图提升自己的权限。

有趣的是,恶意软件试图与一个硬编码的 URL http://www.baidu.com/用户代理“Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko” 进行通信,但这似乎是死代码,很可能是由于功能被删除或未来版本的占位符代码所致。它旨在从 URL 中提取并记录 HTTP 响应头日期。

然后,恶意软件会扫描运行进程列表,查找特定的防病毒解决方案。它根据硬编码的进程名称列表进行检查,如果发现任何进程名称,则将相应的布尔标志设置为"True" 。

以下是二进制文件中的进程和相关安全产品硬编码表:

过程名称安全产品
MsMpEng.exe微软卫士杀毒软件
kxemain.exe金山网络安全软件
kxetray.exe金山网络安全软件
kxecenter.exe金山网络安全软件
QQPCTray.exe腾讯电脑管家
QQPCRTP.exe腾讯电脑管家
QMToolWidget.exe腾讯电脑管家
HipsTray.exe奇虎 360 全面安全
HipsDaemon.exe奇虎 360 全面安全
HipsMain.exe奇虎 360 全面安全
360tray.exe奇虎 360 全面安全

通过注入的远程进程终止 AV 进程

接下来,恶意软件会杀死这些进程。有趣的是,奇虎 360 Total Security 产品采用了与其他产品不同的方法。

首先,它通过更改防火墙来阻止所有网络通信。然后,它调用一个函数,将 shellcode 注入与卷影复制 (VSS) 服务相关联的进程 (vssvc.exe)。
它首先向自己授予高完整性SeDebugPrivilege 令牌。

然后,如果VSS(卷阴影复制服务)尚未运行,它会启动它,并获取其相关进程(vssvc.exe)的 PID。

接下来,恶意软件使用NtCreateSection 创建两个独立的内存区。然后,它会将这些部分的视图映射到 vssvc.exe 进程的内存空间中。第一部分包含一个完整的可移植可执行文件(PE),这是一个设备名为\\.\Ollama 的驱动程序。第二部分包含用于执行的 shellcode。

与恶意软件中使用的其他注入方法相比,RONINGLOADER 采用了一种不同的方法进行进程注入。这种技术利用线程池,通过远程进程中的文件写入触发器远程执行代码。SafeBreach在 2023 中记录了这一技术的不同变种。

一旦执行,shellcode 就会开始动态解析其运行所需的 Windows API 地址。这是 RONINGLOADER 中唯一采用混淆技术的部分,它使用Fowler-Noll-Vo 哈希算法(FNV)通过哈希值而不是名称查找函数。

它首先获取CreateFileWWriteFileCloseHandle 的地址,将驱动程序写入磁盘的硬编码路径C:\windows\system32\drivers\1912763.temp

然后执行以下操作

  • 创建名为xererre1 的服务,将驱动程序下载到磁盘中
  • 对于与奇虎 360 软件相关联的下列每个进程(360Safe.exe360Tray.exeZhuDongFangYu.exe ),它都会调用 2 函数:一个函数用于根据名称查找进程的 PID,另一个函数用于根据 PID 杀死进程
  • 然后停止并删除服务 xererre1

要杀死一个进程,恶意软件会使用驱动程序。对该驱动程序的分析表明,它只注册了 1 功能:它处理一个以 PID 为参数的 IOCTL ID (0x222000),并首先通过ZwOpenProcess 打开进程,然后通过ZwTerminateProcess 内核 API 终止进程。

AV 进程终止

回到主执行流程,恶意软件进入一个循环,以确认360tray.exe 终止,由注入 VSS 服务的 shellcode 处理。只有在确认进程不再运行后,才会继续运行。确认后,系统会立即恢复防火墙设置。这一行动很可能是一种防御措施,目的是切断软件的通信渠道,防止其向后台服务上传最终活动日志或安全警报。

然后,它会直接从主进程中终止其他安全进程。值得注意的是,它并没有试图隐藏这些操作,而是放弃了之前的 API 哈希技术,直接调用必要的函数。

RONINGLOADER 遵循一致、可重复的程序来终止目标进程:

  • 首先,它会将恶意驱动程序写入磁盘,这次是写入临时路径 C:\Users\analysis\AppData\Local\Temp\ollama.sys.
  • 创建临时服务 (ollama) 将ollama.sys 载入内核
  • 然后,恶意软件通过名称获取目标进程的 PID,并向其驱动程序发送包含 PID 的请求,以执行终止操作。
  • 发送 kill 命令后,服务会立即被删除。

关于 Microsoft Defender,该恶意软件试图使用上述相同方法杀死MsMpEng.exe 进程。我们注意到作者的一个代码错误:对于 Microsoft Defender,代码没有检查 Defender 是否已经运行,而是直接搜索MsMpEng.exe 进程。这意味着,如果进程没有运行,恶意软件会将 0 作为 PID 发送给驱动程序。

恶意软件有更多的冗余代码来杀死安全解决方案进程。它还在 svchost.exe 中注入了另一个 shellcode、vssvc.exe类似,但进程列表不同,如下图所示。

注入技术也使用线程池,但注入的代码是由事件触发的。

进程终止后,恶意软件会创建 4 文件夹

  • C:\ProgramData\lnk
  • C:\ProgramData\<current_date>
  • C:\Users\Public\Downloads\<current_date>
  • C:\ProgramData\Roning

嵌入式档案

然后,恶意软件将三个.txt 文件写入C:\Users\Public\Downloads\<current_date> 。尽管有扩展名,但它们并不是文本文件,而是采用特定格式构建的容器,很可能是从其他代码库改编而来。
该自定义文件结构的组织如下

  • 神奇字节:文件以签名4B 44 01 00 开始,以便识别。
  • 文件数:紧随其后的数值表示容器中封装的文件数量。
  • 文件元数据:然后用标题部分描述每个存储文件的信息。
  • 压缩数据:最后,每个嵌入文件都存储在一个 ZLIB 压缩数据块中。

以下是hjk.txt archive 的文件格式示例,其中包含 2 文件:1.batfhq.bat
这种存档格式适用于 2 当前阶段的其他嵌入文件:

  • agg.txt,其中包含 3 文件 -Enpug.bin,goldendays.dll, 和trustinstaller.bin
  • kill.txt其中包含 1 文件 1.dll

绕过 UAC 和 AV 网络的批处理脚本

1.bat 是一个简单的批脚本,可通过将EnableLUA 注册表值设置为 0 来禁用用户帐户控制(UAC)。

fhq.bat 是另一个批脚本,目标是C:\ProgramData\lnk\123.txt 中定义的程序和奇虎 360 安全软件(360Safe.exe)。创建防火墙规则,阻止与它们的入站和出站连接。它还会禁用所有配置文件中的防火墙通知。

通过 Phantom DLL 终止 AV 进程

已部署的动态链接库1.dll 会被复制到C:\Windows\System32\Wow64\Wow64Log.dll ,供任何 WOW64 进程侧载,因为Wow64Log.dll 是一个幽灵动态链接库,默认情况下不会出现在 Windows 机器上。它的任务是多余的,本质上是试图使用标准 Windows API(TerminateProcess )杀死进程列表。

ClipUp MS Defender 杀手

然后,恶意软件试图使用Zero Salarium在 2025 年 8 月记录的 PPL 滥用技术。文章中的 PoC 仅针对 Microsoft Defender。请注意,所有执行的系统命令都是通过cmd.exeShellExecuteW 应用程序接口连接的

  • 它在C:\ProgramData\Microsoft\Windows Defender\Platform\* 下搜索 Microsoft Defender 的安装文件夹,只选择有最新修改日期的目录,该日期表示当前使用的版本。
  • 创建C:\ProgramData\roming 文件夹和mklink 的目录链接,指向用以下命令找到的目录:cmd.exe /c mklink /D "C:\ProgramData\roming" “C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.25050.5-0”
  • 然后运行C:\Windows\System32\ClipUp.exe ,参数如下:-ppl C:\ProgramData\roming\MsMpEng.exe用垃圾数据覆盖MsMpEng.exe ,即使重启后也能有效禁用 EDR

作者似乎复制了EDR-Freeze的代码来启动ClipUp.exe

CiPolicies

该恶意软件直接针对 Windows Defender 应用程序控制 (WDAC),将策略文件写入路径C:\\Windows\\System32\\CodeIntegrity\\CiPolicies\\Active\\{31351756-3F24-4963-8380-4E7602335AAE}.cip

恶意策略以 "拒绝列表 "模式运行,允许大多数应用程序运行,同时明确阻止两家流行的中国杀毒软件供应商:

  • 奇虎 360 Total Security 通过阻止360rp.exe360sd.exe
  • 霍荣安保公司通过封锁 ARPProte.exe
  • 由 Huorong Security (北京火绒网络科技有限公司) 通过证书 TBS 哈希值签署的所有可执行文件A229D2722BC6091D73B1D979B81088C977CB028A6F7CBF264BB81D5CC8F099F87D7C296E48BF09D7EBE275F5498661A4

Enabled:Unsigned System Integrity Policy 规则是一个关键组件,它允许在没有有效数字签名的情况下加载策略。

Truncated...
    <Rule>
      <Option>Enabled:Inherit Default Policy</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Unsigned System Integrity Policy</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Advanced Boot Options Menu</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Update Policy No Reboot</Option>
    </Rule>
  </Rules>
  <EKUs />
  <FileRules>
    <Allow ID="ID_ALLOW_A_019A298478CE7BF4902DE08CA2D17630" FileName="*" />
    <Allow ID="ID_ALLOW_A_019A298478CE7AB089C369772F34B39B" FileName="*" />
    <Deny ID="ID_DENY_A_019A298478CE7DBA9913BFC227DACD14" FileName="360rp.exe" InternalName="360rp.exe" FileDescription="360杀毒 实时监控" ProductName="360杀毒" />
    <Deny ID="ID_DENY_A_019A298478CE763C85C9F42EC8669750" FileName="360sd.exe" InternalName="360sd.exe" FileDescription="360杀毒 主程序" ProductName="360杀毒" />
    <FileAttrib ID="ID_FILEATTRIB_A_019A298478CE766B9C39FB9CE6805A11" FileName="ARPProte.exe" MinimumFileVersion="6.0.0.0" />
  </FileRules>
  <Signers>
    <Signer ID="ID_SIGNER_A_019A298478CE7608908CAE58FD9C3D8E" Name="">
      <CertRoot Type="TBS" Value="A229D2722BC6091D73B1D979B81088C977CB028A6F7CBF264BB81D5CC8F099F87D7C296E48BF09D7EBE275F5498661A4" />
      <CertPublisher Value="北京火绒网络科技有限公司" />
      <FileAttribRef RuleID="ID_FILEATTRIB_A_019A298478CE766B9C39FB9CE6805A11" />
    </Signer>
    <Signer ID="ID_SIGNER_A_019A298478CE77F7B523D1581F518639" Name="">
      <CertRoot Type="TBS" Value="A229D2722BC6091D73B1D979B81088C977CB028A6F7CBF264BB81D5CC8F099F87D7C296E48BF09D7EBE275F5498661A4" />
      <CertPublisher Value="北京火绒网络科技有限公司" />
    </Signer>
  </Signers>
...Truncated

阶段 3 - goldendays.dll

在上一阶段,RONINGLOADER 创建了一个名为MicrosoftSoftware2ShadowCop4yProvider 的新服务,通过以下命令运行下一阶段的执行:regsvr32.exe /S "C:\ProgramData\Roning\goldendays.dll.

该组件的主要目标是将下一个有效载荷注入一个合法、高权限的系统进程,以伪装其活动。

为此,RONINGLOADER 首先要确定一个合适的目标流程。它有一个由两个服务名称组成的硬编码列表,会尝试按顺序启动:

  1. TrustedInstaller (TrustedInstaller.exe)
  2. MicrosoftEdgeElevationService (elevation_service.exe)

恶意软件会遍历该列表,尝试启动每项服务。一旦成功启动服务,或者发现服务已经在运行,恶意软件就会保存其进程 ID(PID),以便在注入阶段使用。

接下来,恶意软件通过在C:\Windows\ 目录(如C:\Windows\KPeYvogsPm.bat )中创建一个随机名称的批处理文件来建立持久性。该文件中的脚本按以下逻辑运行一个连续循环:

  • 它会检查捕获的受信任服务的 PID(如TrustedInstaller.exe 的 PID4016 )是否仍在运行
  • 如果服务没有运行,脚本会重新启动之前创建的恶意服务 (MicrosoftSoftware2ShadowCop4yProvider) 以确保恶意软件的组件保持激活状态
  • 如果服务进程正在运行,脚本会休眠 10 秒,然后再次进行检查

最后,恶意软件会读取C:\ProgramData\Roning\trustinstaller.bin 的内容。它使用先前获取的受信任服务的 PID,将此有效载荷注入目标进程(TrustedInstaller.exeelevation_service.exe )。注入方法很简单:用VirtualAllocEx 执行远程虚拟分配,用WriteProcessMemory 向其写入,然后用CreateRemoteThread 创建一个远程线程来执行。

阶段 3 - trustinstaller.bin

第三阶段包含在trustinstaller.bin 中,负责将最终有效载荷注入合法进程。它首先会枚举运行中的进程,并通过将进程名称与硬编码的潜在进程列表进行匹配来搜索目标。

发现后,它会将 shellcode 注入C:\ProgramData\Roning\Enpug.bin ,这是最终的有效载荷。它将用NtCreateSection 创建一个部分,用NtMapViewOfSection 在远程进程中映射该部分的视图,并将有效载荷写入其中。然后,它会创建一个远程线程,CreateRemoteThread

阶段 4 - 最终有效载荷

Sophos 在 发现 "龙息"(DragonBreath)活动和 2023 QianXin 在 2022 年年中 发布报告 以来, 最终有效载荷 并未发生重大变化。它仍然是开源gh0stRAT 的修改版。

在最近的运动中,在执行开始时会创建一个值为Global\DHGGlobalMutex 的互斥器。在主 C2 通信循环之外,我们观察到死代码创建了一个名为MyUniqueMutexName 的互斥器,随后立即将其销毁。

C2 域和端口仍为硬编码,但现在已进行 XOR 加密。C2 信道通过原始 TCP 套接字运行,信息双向加密。

受害者信标数据

植入体与 C2 服务器进行签到,并以随机间隔反复向 C2 发出信标,通过Sleep(<random_amount> * 1000) 实现。以下是植入程序在信标间隔期间向 C2 服务器返回数据的结构:

struct BeaconData {
    // +0x000
    uint32_t message_type;           // Example Beacon ID - 0xC8 (200)
    
    // +0x004
    uint32_t local_ip;               // inet_addr() of victim's IP
    
    // +0x008
    char hostname[50];               // Computer name or registry "Remark"
    
    // +0x03A
    char windows_version[?];         // OS version info
    
    // +0x0D8
    char cpu_name[64];               // Processor name
    
    // +0x118
    uint32_t entry_rdx;              
    
    // +0x11C
    char time_value[64];             // Implant installed time or registry "Time" value
    
    // +0x15C
    char victim_tag[39];             // Command 6 buffer (Custom victim tag)
    
    // +0x183
    uint8_t is_wow64;                // 1 if 32-bit on 64-bit Windows
    
    // +0x184
    char av_processes_found[128];    // Antivirus processes found
    
    // +0x204
    char uptime[12];                 // System uptime

    char padding[52];                 
    
    // +0x244
    char crypto_wallet_track[64];    // "狐狸系列" (MetaMask) or registry "ZU" (crypto related tracking)
    
    // +0x284
    uint8_t is_admin;                // 1 if running with admin rights
    
    // +0x285
    char data[?];             
    
    // +0x305
    uint8_t telegram_installed;      // 1 if Telegram installed
    
    // +0x306
    uint8_t telegram_running;        // 1 if Telegram.exe running
    
    // +0x307
    // (padding to 0x308 bytes)
};

C2 命令

从 C2 服务器发送到植入体的请求信息采用这种结构:

struct C2_to_implant_msg {
    uint32_t total_message_len;
    uint32_t RC4_key;
    char encrypted_command_id;
    uint8_t encrypted_command_args;
};

植入装置通过以下公式对 C2 信息进行解密:

RC4_decrypt(ASCII(decimal(RC4_key)), encrypted_command_id || command)

以下是可用命令列表,其中大部分命令与 2 年前的命令相同:

命令ID描述
0ExitWindowsEx 通过提供的 EXIT_WINDOWS_FLAGS
1优雅地终止植入
2将注册表项Enable 设置为 "假",以持续终止& 禁用植入程序
3为自定义受害者重命名设置注册表项Remark (默认值:主机名)
4为元掩码/密码相关标记设置注册表密钥ZU
5清除 Windows 事件日志(应用程序、安全、系统)
6在客户端信标时设置额外的自定义标记
7通过提供的 URL 下载并执行文件
9ShellExecute (可见窗口)
10ShellExecute (隐藏窗口)
112获取剪贴板数据
113设置剪贴板数据
125ShellExecute cmd.exe 带命令参数(隐藏窗口)
126通过投放到磁盘执行有效载荷,或反射加载并执行PluginMe 导出
128第一个选项 - 使用提供的 C2 域、端口和信标间隔打开一个新会话。第二种方法 - 设置注册表项CopyC ,永久更新 C2 域和端口。通过Base64Encode(XOR(C2_domain_and_port, 0x5)) 加密存储。
241检查 Telegram 是否已安装和/或正在运行
243配置剪贴板劫持程序
101, 127, 236, [...]使用 WTS 会话令牌冒充将自定义 shellcode 注入svchost.exe ,并通过以下方式退回到CREATE_SUSPENDED 进程注入CreateRemoteThread

分析员注意:有多个命令 ID 指向同一命令。我们用省略号标明观察到这种情况的时间。

系统记录仪

除 C2 命令外,该植入程序还实施了按键、剪贴板和活动窗口记录器。捕获的数据被写入%ProgramData%\microsoft.dotnet.common.log ,可通过HKEY_CURRENT_USER\offlinekey\open 的注册表键值启用或禁用(1 启用,0 禁用)。日志文件会自动轮换,当超过 50 MB 时就会删除,以避免因磁盘使用过多而被发现。

下面的代码片段演示了初始化例程,该例程实现了日志旋转,并配置了 DirectInput8 接口以获取键盘设备进行事件捕获,随后是键盘事件检索逻辑。

然后,恶意软件进入监控循环,捕捉三类信息。

  • 首先,它会使用OpenClipboardGetClipboardData 监控剪贴板,并使用前缀[剪切板:] 记录文本内容的任何更改。
  • 其次,它通过GetForegroundWindow 跟踪窗口焦点变化,在用户切换应用程序时记录活动窗口标题和时间戳,前缀分别为[标题:][时间:]
  • 第三,它从DirectInput8 设备检索缓冲键盘事件(每次轮询最多可检索 60 个事件),并通过字符映射表将其转换为可读文本,同时在结果前加上前缀[内容:]

剪贴板劫持程序

该恶意软件还通过 C2 命令 ID 243 远程配置了剪贴板劫持程序。它能监控剪贴板的变化,并对捕获的文本执行搜索和替换操作,用替换值替换攻击者定义的字符串。配置参数存储在注册表HKEY_CURRENT_USER\offlinekey 下,键值为clipboard (启用/禁用功能)、charac (搜索字符串)、characLen (搜索长度)和newcharac (替换字符串)。

它注册了一个名为ClipboardListener_Class_Toggle 的窗口类,并创建了一个名为ClipboardMonitor 的隐藏窗口,用于接收剪贴板更改通知。窗口程序在处理WM_CLIPBOARDUPDATE (0x31D) 消息时,会通过GetClipboardSequenceNumber 验证剪贴板序列号,以检测是否发生了真正的更改,然后调用核心操作例程,通过EmptyClipboardSetClipboardData 交换剪贴板内容。

恶意软件和 MITRE ATT&CK

Elastic 使用MITRE ATT&CK框架来记录高级持续性威胁针对企业网络使用的常见策略、技术和程序。

战术

策略代表了技术或子技术的原因。 这是对手的战术目标:采取行动的原因。

技术

技术代表对手如何通过采取行动来实现战术目标。

缓解措施

检测

雅拉

Elastic Security 创建了 YARA 规则来识别这种活动。以下是识别 RONINGLOADER 和最终植入物的 YARA 规则:

观察结果

本研究讨论了以下可观察的结果。

可观测类型名称参考
da2c58308e860e57df4c46465fd1cfc68d41e8699b4871e9a9be3c434283d50bSHA-256klklznuah.msi初始 NSIS 安装程序
82794015e2b40cc6e02d3c1d50241465c0cf2c2e4f0a7a2a8f880edaee203724SHA-256Snieoatwtregoable.exe从初始安装程序解压恶意安装程序
c65170be2bf4f0bd71b9044592c063eaa82f3d43fcbd8a81e30a959bcaad8ae5SHA-256Snieoatwtregoable.dll 1 - 第 2 级装载机
2515b546125d20013237aeadec5873e6438ada611347035358059a77a32c54f5SHA-256ollama.sys阶段 2 - 进程终止的驱动因素
1613a913d0384cbb958e9a8d6b00fffaf77c27d348ebc7886d6c563a6f22f2b7SHA-256tp.png 2 - 加密核心有效载荷
395f835731d25803a791db984062dd5cfdcade6f95cc5d0f68d359af32f6258dSHA-2561.bat 2 - UAC 绕过脚本
1c1528b546aa29be6614707cbe408cb4b46e8ed05bf3fe6b388b9f22a4ee37e2SHA-256fhq.bat阶段 2 - 阻止 AV 进程联网的脚本
4d5beb8efd4ade583c8ff730609f142550e8ed14c251bae1097c35a756ed39e6SHA-2561.dll 2 - AV 流程终止
96f401b80d3319f8285fa2bb7f0d66ca9055d349c044b78c27e339bcfb07cdf0SHA-256{31351756-3F24-4963-8380-4E7602335AAE}.cip阶段 2 - WDAC 政策
33b494eaaa6d7ed75eec74f8c8c866b6c42f59ca72b8517b3d4752c3313e617cSHA-256goldendays.dll阶段 3 - 入口点
fc63f5dfc93f2358f4cba18cbdf99578fff5dac4cdd2de193a21f6041a0e01bcSHA-256trustinstaller.bin阶段 3 - 装载机 Enpug.bin
fd4dd9904549c6655465331921a28330ad2b9ff1c99eb993edf2252001f1d107SHA-256Enpug.bin阶段 3 - 最后有效载荷的装载机
3dd470e85fe77cd847ca59d1d08ec8ccebe9bd73fd2cf074c29d87ca2fd24e33SHA-2566uf9i.exe 4 - 最终有效载荷
qaqkongtiao[.]com域名 4 - 最终有效载荷 C2

参考资料

上述研究参考了以下内容:

分享这篇文章