面向即时通讯工具的输入伪装与检测绕过:银狐类生态中Hook组件的技术迭代

admin 2026-09-11 05:07:57 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 腾讯安全威胁情报中心披露银狐类恶意软件针对即时通讯工具的Hook组件技术迭代。样本通过HookGetCurrentInputMessageSource将合成输入伪装为硬件输入,绕过自动化输入校验,并叠加RawInput屏蔽与TCP表欺骗构建三层防御体系。溯源发现2024-03及2024-05早期版本,呈现功能精简与防护上移的演进趋势,以中等置信度归因银狐组织。 综合评分: 85 文章分类: 恶意软件,威胁情报,逆向分析,安全工具


面向即时通讯工具的输入伪装与检测绕过:银狐类生态中 Hook 组件的技术迭代

腾讯安全威胁情报 腾讯安全威胁情报

腾讯安全威胁情报中心

2026年9月9日 19:33 上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

开篇

SEO 投毒、高强度对抗、拉群扩散,这些都是银狐组织的典型传播手法。现今成熟的即时通讯工具会对系统环境和用户输入的真实性进行校验,使简单的模拟点击和自动发消息难以直接奏效。银狐样本如何绕过这些校验,将自动化操作伪装成真实用户行为?

最近我们从沙箱集群捕获了一个高度可疑的无 PE 头内存 dump ,沿代码特征逐层扩线,最终定位了样本来源于银狐家族,并且深入还原了银狐类生态中面向即时通讯工具的 Hook 组件技术迭代。我们根据关联特征捕获到了多个早期关联样本,这些样本与 2026样本共享同一个核心手法:Hook Windows 输入来源查询 API,把软件合成输入改归为硬件输入类别;基于功能丰富度和构建时间可以推测出一条演进关系。围绕这个核心,设计者在不同版本间动态调整验证封堵和自隐藏策略,并在 2024-05 版将防护对抗上移到独立的外层加载器。


核心发现

  • • 我们定位了样本注入即时通讯工具绕过检测的核心机制:通过 Hook GetCurrentInputMessageSource 把 IMO_INJECTED 合成输入改写为 IMO_HARDWARE 硬件输入类别,绕过即时通讯工具对自动化输入来源的校验。2026样本与 Hunt 到的早期样本均共享此特征
  • • 我们通过特征溯源识别到多个早期版本:版本之间的迭代呈现出极强的对抗适应性
  • • 我们通过IOC溯源定位样本来自银狐组织,以中等置信度归为银狐类一致活动,明确排除具有国家背景的APT行为体

调查起点:一个无 PE 头的内存 dump

2026年7月,我们从威胁情报沙箱集群捕获了一个高度可疑的样本,运行过程中释放一个无PE头的内存dump。我们的调查从这里开始。文件 shellcode.bin 大小 114,688 字节(0x1C000),SHA-256 e5a9de2b6dad1cd9005e816965c047c6441e194e52759d24c50b9512fbdfd491,文件偏移 0 直接是正常 x86 函数序言而非 PE DOS 头。这是一个加载后 x86 DLL 从 RVA 0x1000 起的连续内存映像,缺少首个 0x1000 PE 头页,不能作为完整 PE 或独立 shellcode 运行。

通过代码中的绝对地址引用可反推 ImageBase = 0x16FE0000,文件偏移 0 对应 VA 0x16FE1000。由于 PE 头缺失,节边界由绝对地址引用、链接器 section-contribution 元数据和内容类型共同恢复:

%s 替换为 loader 自身路径。意图是排除 LocalAppData、整个 C:\C:\Windows、自身文件、当前目录和 .png 扩展名。

代码构造并隐藏启动 PowerShell 的行为可直接从 loader 字节复核,意图是排除 LocalAppData、整个 C:\C:\Windows、自身文件、当前目录和 .png 扩展名。但字符串放在双引号中可能只产生字符串表达式,即使 cmdlet 被执行,Tamper Protection、策略和权限也可阻止生效。

双架构注入

loader 启用 SeDebugPrivilege 后每 3 秒轮询目标即时通讯工具进程,根据目标位数选择 x86 或 x64 反射注入:

RtlAdjustPrivilege(20, TRUE, FALSE, &old_state); // SeDebugPrivilege

for (;;) {
    pid = find_process_by_name("IM.exe");
    if (pid && payload_mutex_B_not_alive()) {
        write_current_hour_policy();
        if (target_is_x86(pid))
            inject_x86(pid);
        else
            inject_x64_from_wow64(pid);
    }
    Sleep(3000);
}

x86 目标使用 VirtualAllocEx → WriteProcessMemory → VirtualProtectEx → CreateRemoteThread。x64 目标由 32 位 WoW64 loader 经 Heaven’s Gate 解析 64 位 ntdll,调用 NtAllocateVirtualMemoryNtWriteVirtualMemoryNtProtectVirtualMemoryRtlCreateUserThread 完成注入。反射 blob 所有字节静态 +1,使用前 -1 恢复;内嵌 DLL 的 DOS magic 从 MZ 改为 0D 0A 以躲避简单 PE 扫描。外层 mutex 为 AAAAAAAAAAAAAAAAC,注入 DLL mutex 为 AAAAAAAAAAAAAAAAB

上述注入路径可直接从 loader 代码复核。loader 主动轮询某即时通讯工具的可执行文件,这个目标与 2026样本中的另一个即时通讯工具路径来自不同构建。loader 具备 x86 与 x64 两条完整远程注入路径,调用 Native API,不等于直接 syscall。

设计意图推断

2024-05 版 DLL 极简化,环境准备和防护对抗上移到 loader 层。目标进程不做 Raw Input 交叉验证和 TCP 自省检查,只需绕过输入来源校验即可。loader 接管注入和防护对抗后,DLL 只需保留最小核心功能。

小结

本次分析从一个无 PE 头的内存 dump 出发,通过代码特征逐层扩线,定位了银狐类生态中面向即时通讯工具的 Hook 组件谱系。我们获得了三个样本:2024-03-13 编译的 x64 DLL、2024-05-07 编译的双架构 DLL 及外层 loader、以及 2026 年从失陷机器取得的 dump(2026样本)。三个样本共享同一个核心手法:Hook GetCurrentInputMessageSource 把合成输入改写为硬件输入类别,originId 2→1 逻辑逐字节一致。

围绕这个核心功能,各版本的功能组合存在明显差异。2026样本构建了三层防御规避体系(输入来源伪装、Raw Input 屏蔽、TCP 表欺骗),是功能最丰富的全功能组件。2024-03 版引入 Module32NextW 模块枚举自隐藏,不具备 Raw Input/TCP 封堵。2024-05 版将 DLL 缩减至仅输入伪装,防护对抗和注入能力上移到 loader。三个样本之间有同源证据,但除 loader→内嵌 DLL 外无直接父子链,功能差异可解读为迭代升级或面向不同目标的定制裁剪。

这套 Hook 组件属于环境准备层,服务于上游自动化操作或远控操作。本地样本中未发现键盘记录、账号凭据窃取、屏幕截图或远控协议,上层意图需要其他载荷或主机遥测证明。整体与银狐类黑灰产使用云对象存储分发多阶段载荷、再接入 ValleyRAT/Gh0st 衍生远控的技术模式相符。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:腾讯安全威胁情报中心 腾讯安全威胁情报 腾讯安全威胁情报《面向即时通讯工具的输入伪装与检测绕过:银狐类生态中 Hook 组件的技术迭代》

评论:0   参与:  0