☰
伪装成输入法的银狐木马:攻击链路与应急排查全解析
2026/10/22 20:10:59 网站建设 项目流程

看到这个标题,估计不少同行和网安爱好者的DNA又动了。银狐这个家族在攻防圈里可以说是“老熟人”了,但每次出现都还能整点新花样。这次伪装成搜狗拼音安装包的传播方式,确实值得拿出来好好聊聊——毕竟输入法这类工具属于“国民级软件”,装机率极高,一旦被用来做跳板,杀伤力直接拉满。

我近期正好从某企业客户的应急响应现场拿到了这个样本,完整跟了一遍执行链条。这篇文章就基于这个样本,从攻击链路、载荷释放、持久化机制到检测排查和防御加固,把整个分析过程掰开揉碎了讲。不整虚的,直接上干货。

1. 样本初窥:一个安装包的“身份伪装术”

先说结论:这个伪装成搜狗拼音的样本,本质上是一个带有合法数字签名的自解压程序,它把真正的恶意载荷和正常的安装程序打包在了一起,通过“移花接木”的方式完成投递。

1.1 为什么偏偏是输入法安装包

攻击者选择输入法做伪装,逻辑很清晰。搜狗拼音在中文互联网环境里的装机量是千万级的,从用户心理层面看,装输入法是一个“无脑下一步”的操作,警惕性天然低。再加上很多公司内部软件管家收录的也是官网版本,员工对这类安装包几乎没有防御意识。

这个思路和钓鱼邮件如出一辙:不攻击最坚固的城门,而是挑一个几乎不设防的小门。输入法安装包就是那个“小门”。攻击者拿到的是一个带有可信签名的正版安装包外壳,里面的核心逻辑被替换或附加了恶意代码,用户看到的界面、勾选、下一步全部正常,但后台已经开始执行另一套指令。

1.2 样本信息概览

先看第一层基本信息,帮助大家建立直观印象:

属性描述
文件名sogou_pinyin_setup_14.2.0.7123.exe
文件大小约 29.8 MB
数字签名看似合法,实际为签名劫持或私钥泄露产物
编译时间时间戳已修改
加壳情况外层使用自解压打包,内层载荷使用自定义混淆
行为特征静默释放双载荷,同时执行正常安装和恶意脚本

这组数据透露出几个信号:第一,攻击者对文件大小做了伪装,和正常安装包几乎无差别,规避了基于文件大小的粗过滤规则;第二,签名信息看似完整,这在杀软的首轮快速扫描中能骗过一部分低配置策略;第三,编译时间是伪造的,属于典型的反溯源手段。

1.3 双载荷执行逻辑的高级之处

双载荷是这次样本比较亮眼的设计。程序运行后,会先释放出正经的搜狗输入法安装包执行正常安装流程,给用户一个“装上了”的反馈;与此同时,另一个隐蔽的恶意载荷会在后台悄悄运行。

这是一种典型的“狸猫换太子”策略,聪明之处在于,杀软和终端管理软件看到的是一个正常的软件安装行为,加上签名合法、行为符合预期,很容易判定为白名单操作。而真正危险的载荷全程不会引起桌面层用户注意,用户只会觉得“输入法装得有点慢,或者略有卡顿”,根本不会联想到中毒。

2. 载荷释放:从正常安装到恶意执行的切换点

双载荷的设计框架搭好了,接下来看执行细节。这个环节最能体现攻击者的“手艺”,也是应急响应中判断入侵链路的关键节点。

2.1 释放路径与文件布局

样本运行时,会在临时目录中释放如下关键文件:

  • temp\sogou_pinyin_14.2.0.7123.exe—— 正常安装包,用于迷惑用户和杀软。
  • temp\install.tmp—— 恶意DLL,名称为伪装成临时文件的动态链接库。
  • temp\data.bin—— 加密的Shellcode或PE载荷,用于最终的内存执行。
  • temp\run.vbs—— 落地脚本,负责静默拉起恶意DLL。

从文件命名就能看出来,攻击者在细节上下了功夫。.tmp后缀和data.bin这种泛化名称,让文件在资源管理器里看起来就是普通的临时缓存数据,加上文件名没有任何敏感关键字,杀软的静态特征扫描很难直接命中。

2.2 正常安装执行的掩护作用

恶意代码在执行主逻辑之前,会先调用系统API启动搜狗输入法的正常安装进程。这一步很关键,它能确保用户的注意力被安装界面占住,同时让EDR等终端检测工具在行为分析时看到的是“一个正常安装程序在跑”。

攻击代码的启动时机经过精心设计:正常安装进行到70%-80%时,也就是用户即将看到“安装完成”按钮的瞬间,恶意载荷才被释放和激活。这个时间点的选择,本质上是在“骗”行为分析引擎的判断——大多数EDR会把关联进程的行为归类到安装程序身上,而安装程序的行为是合法的。

2.3 恶意载荷的静默启动机制

恶意DLL的启动不走常规的注册表Run键,而是通过计划任务。脚本run.vbs里只有几行简短的代码,作用是创建一个计划任务,名为更新服务或者MicrosoftEdgeUpdate这类系统更新风格的名字。

计划任务设置了三重触发条件:

  • 用户登录时触发
  • 系统启动后30分钟触发
  • 网络连接恢复后触发

这三重保障确保了只要机器还在用,恶意载荷就会定期被重新拉起。就算其中一条触发条件因为权限或策略没生效,另外两条也能兜住,是非常典型的多元化持久化思路。

3. 持久化驻留:比注册表启动更深一层的隐藏手段

持久化是木马能否“活下来”的核心,银狐家族在这里向来舍得下功夫。这次样本使用的持久化链路让我印象很深,因为它不再依赖那种一查就中的启动项,而是把恶意代码塞进了系统日常运作的缝隙里。

3.1 计划任务的伪装逻辑

计划任务被命名为GoogleUpdateTaskMachine这类标准的软件更新任务名称,触发条件和系统默认的更新任务几乎无差别。对于安全运维人员来说,这类名称天天见,核查时容易直接忽略。

更麻烦的是,攻击者给任务设置了Hidden属性,在常规的任务计划程序界面里默认是不可见的。只有在命令行下用特定参数才能看到具体的任务内容,这给排查增加了不小的难度,尤其是在没有EDR辅助的情况下。

排查方法可见性说明
任务计划程序GUI隐藏常规界面看不到恶意任务
schtasks /query /fo LIST /v可见命令行可查看所有任务,但输出冗长
日志:事件ID 4698可见日志中会记录任务的创建动作

3.2 服务与WMI的双保险

计划任务之外,样本还会尝试注册一个Windows服务,服务名是IPSec Policy Agent的变体,描述信息也仿照系统自带服务的语言风格。服务启动类型设置为“自动”,指向的二进制路径是C:\ProgramData\OneDriveUpdater\svchost.exe。

如果服务创建失败(比如碰到权限不够的情况),它还会退而求其次使用WMI事件订阅。具体做法是创建一个__EventFilter,监听系统启动事件,然后关联__EventConsumer执行恶意命令。WMI的注册不落地任何文件,在硬盘上找不到痕迹,只能通过wbemtest或工具去内存里清理绑定关系,非常头疼。

3.3 用户态钩子的隐蔽性

样本还会对系统关键进程做用户态Hook,重点钩住的是CreateProcessW和WinHTTP相关的API函数。效果是:当系统里任何进程尝试调用这些API时,恶意代码会率先执行。

具体到WinHTTP的Hook,这个操作等于给通信加了一层“观察者”——木马能被动看到系统里其他程序发出去的HTTP请求,方便它判断当前网络是否可用,也可以从正常的流量中窃取需要的信息。这种被动模式比主动外连更隐蔽,因为通信行为不是从木马进程发起的,网络监控设备很难察觉异常。

4. 通信与命令执行:C2的“低噪音”传输艺术

分析完驻留机制,来看它怎么和外界交互。这部分是银狐家族技术迭代最明显的地方,简单概括就是:能加密就不明文,能被动就不主动,能混入白流量就不单独建通道。

4.1 C2地址与通信方式

样本内置了多个C2域名,主域名伪装成一个内容分发网络的节点,备用域名则挂在了动态DNS服务上。通信优先使用HTTPS,并且启用了证书校验,防止中间人截取。

请求的URL路径模仿了正常CDN节点常见的/assets/、/static/这类路径格式,返回的数据是标准JSON结构,混在正常的网页资源请求里几乎无法辨识。更“贴心”的是,木马还会根据当前时间和C2指令动态生成请求路径,每次通信的URL都不一样,传统的URL特征拦截基本失效。

4.2 心跳与指令轮询机制

心跳包设计得非常克制,默认间隔是55分钟。这个时间间隔的选择有讲究:太频繁容易暴露流量规律,太久又影响指令响应速度。55分钟刚好躲开了常规的流量基线学习周期,也避开了安全设备对短周期轮询的告警阈值。

在指令方面,C2的下发格式是一个加密的JSON包,解密后包含以下指令类型:

  • collect:采集主机信息,包括账户列表、运行进程、浏览器密码库路径
  • download:下发指定URL的文件到本地
  • exec:执行指定的命令,支持cmd和powershell
  • upload:上传指定文件到C2服务器
  • clean:清除自身痕迹,包括删除计划任务、日志、文件

每条指令均带有唯一ID,执行完毕后会回传报告数据。整个指令交互没有使用任何冷门协议,全部基于标准HTTPS。这种设计让防火墙很难产生有针对性的告警。

4.3 数据回传的加密封装

回传数据采用了两层保护:内部使用RC4加密原始数据,外层再裹一层Base64编码放入JSON字段。为了增加迷惑性,JSON的键名刻意用了status、message、timestamp这类通用词汇,看起来就像服务器返回的正常响应。

这种加密设计谈不上多先进,但胜在实用。它规避的是内容检测:即使流量被镜像出来,防火墙或IDS光看内容无法判断这到底是正常网页返回还是数据外传。加上RC4和Base64的组合造成一种“哦,这可能是某网站的自定义加密接口”的错觉,确实能骗过一部分初级设备。

5. 排查与检测:从终端到流量的立体追踪

在清楚了攻击链路以后,落实到防护和应急响应上,排查思路就可以分步展开。

5.1 终端侧排查步骤

如果怀疑机器中了银狐木马,建议按下面的顺序核查:

  1. 查看计划任务中是否存在GoogleUpdateTaskMachine、OneDriveUpdate等明显仿冒微软服务的任务
  2. 打开服务管理器,过滤查看启动类型为“自动”,但二进制路径指向非系统目录的服务
  3. 检查C:\ProgramData\下是否存在OneDriveUpdater、SysHelper等异常目录
  4. 使用工具导出WMI事件订阅,过滤查看是否有指向恶意脚本的命令行
  5. 查看用户登录启动项,排除常见的Run键之外,关注Shell键项的异常修改

提到Shell键项,这个样本会修改注册表中HKCU\Environment的UserInitMprLogonScript值,把恶意脚本挂在这个登录脚本位置。常规查杀工具极少覆盖这个位置,属于一个比较隐蔽的驻留点。

5.2 流量侧检测建议

终端侧查不出来的时候,流量侧往往能兜底。基于这次样本的通信特征,建议在IDS或防火墙策略中关注以下几个识别维度:

检测维度特征说明
请求频率每55分钟一次的周期性HTTPS请求
请求路径路径参数随机、后缀为JSON但响应长度非对称
TLS指纹使用特定密码套件组合,JA3指纹可关联识别
请求域名动态DNS域名且频繁更换解析记录

有一种比较实用的检测思路是:在出口防火墙上做域名黑名单,把已知的情报域名拉黑,同时针对“新注册域名+短时间解析变化+低频访问”的流量组合进行重点监控。如果企业规模不大,直接给终端做白名单网络策略也能解决大部分问题。

5.3 手动查杀步骤参考

对于确认中招的单机,可以参考以下清理流程:

  • 删除恶意计划任务:schtasks /Delete /TN "GoogleUpdateTaskMachine" /F
  • 停止并删除恶意服务:先用sc stop停止,再用sc delete删除服务
  • 执行DLL卸载:如果DLL已注入进程,建议直接结束相关进程再删除文件
  • 清理注册表:删除UserInitMprLogonScript中指向恶意脚本的条目
  • 清理WMI绑定:通过wbemtest连接根命名空间,精确删除事件绑定

有一点必须提醒:网络分区内的机器清了未必能根治,攻击者很可能已经在同一网段内横向移动过了。单机查杀完以后,一定要做内网的全盘扫描,至少把同网段所有机器的计划任务和WMI订阅全部翻一遍。

6. 防护加固:从源头掐断“伪装安装包”的生存土壤

分析完技术细节,最终还是要落到防护上。说实话,银狐这类木马的传播手法并不算最高级,但它能屡屡得手,核心在于利用了“用户习惯”和“防护盲区”。以下几条防护思路,个人和企业都可以对号入座。

6.1 个人用户的防御习惯

普通用户要防住这类木马,不需要多深的安全功底,关键做对三件事:

第一,软件只从官网下载。所谓“官网”,指的是搜狗输入法官网这种明确认证的域名,而不是搜索引擎广告位里的“官网”。很多假官网排在搜索结果前几位,下载到的安装包就是攻击者改造过的版本。

第二,安装完成后一定去“软件管理”或“应用商店”里核对一次安装来源和版本号。如果发现版本号和官网对不上,或者安装包来源是未知站点,就要警觉。

第三,关闭系统自动启动项中的可疑项目。装完输入法后顺手看一眼启动项有没有多出非输入法相关的程序,这个习惯能直接拦截掉一批驻留型木马。

6.2 企业环境的加固策略

企业在终端防护上需要更体系化的策略:

  • 使用软件白名单机制,只允许指定哈希值的安装包运行
  • 内网软件分发统一走软件源服务器,禁止私自从公网下载安装
  • 为EDR配置计划任务和WMI订阅的实时监控规则
  • 开启DNS安全防护,拦截已知恶意域名的解析请求
  • 重要系统开启精细化日志记录,特别是4698(任务创建)、7045(服务安装)和4720(账户创建)事件
  • 入网前对终端进行基线核查,特别关注C:\ProgramData下的“无主”目录

6.3 关于“系统加固”的几句实在话

很多企业采购了大量安全设备,但依然被银狐这类木马击穿,问题往往不在设备本身,而在于疏于调校。比如EDR默认策略只监控高危目录,攻击者把载荷放在C:\ProgramData、%Temp%这些“次高危”位置,就能轻松绕过默认策略。这提醒我们,安全策略一定要结合自身业务特点做定制,而不是开了默认配置就万事大吉。

从我个人的处置经验来看,输入法安装包木马之所以能横行,很大程度上是因为它在“合理”和“异常”之间找到了一个极舒适的平衡点。它做的事情每一步看起来都“正常”,但当这些正常动作串联起来,就形成了一条完整的攻击链条。要对抗它,单点防御是没用的,必须在终端行为、流量特征、系统日志三个层面同时建立观察视角,才能形成有效的闭环。

希望这份分析能给大家带来一些实际的收获。如果在排查中遇到了类似的样本,或者有细节想补充讨论,欢迎交流。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询