GitHub 上的假安全工具:两千余台 Windows 主机被植入后门
一场持续两年、最初以加密钱包用户为目标的行动,如今把注意力转向了调查恶意软件的人。根据 Doctor Web(Dr.Web)于 11 月 5 日发布的研究,已有两千多台 Windows 系统通过伪装成安全工具的恶意 GitHub 仓库被入侵。诱饵并不粗糙:其中包括针对 Fscan 网络扫描器输出的解析、清理与格式化脚本,用于扫描自动化和安全测试的仓库,以及处理日志的实用工具。
瞄准本该更懂行的人
值得注意的是目标的变化。Dr.Web 称,最早的受感染仓库出现在大约两年前,围绕区块链游戏、机器人和作弊工具构建,恶意代码藏在 Visual Studio 项目文件中。当前的这波攻击保留了相同的投递机制,但把包装换成了分析人员在一天工作中确实会克隆的东西。这些仓库甚至附有安装 Visual Studio 并克隆项目的说明,从而降低了经验较少用户的门槛。BleepingComputer 的报道指出,该行动已持续约两年。代码藏在哪里
恶意逻辑并不在审查者通常会阅读的那部分仓库里。在 .csproj 文件中,它位于项目编译前执行的 PreBuildEvent 例程中。在多数人视作可随意丢弃的编辑器状态的 .suo 文件中,它以 PowerShell 命令的形式出现。在 Go 和 Python 源码中(其中一个样本名为 FscanOutput_v2.2.py),代码被推到大量空白字符之后,Dr.Web 称这个老办法至今仍然有效。这一被标记为 PowerShell.Packed.270 的第一阶段会写入 C:\Users\Public\Pictures\t.ps1 这类路径,并解密一个名为 Quixo.7z 的压缩包下载链接,该压缩包会解压到 C:\ProgramData\Windows.Microsoft.Photos。Microsoft.exe 是一个 Electron 应用
该压缩包投放的是 Microsoft.exe,被检测为 Trojan.Loader.3261,基于 Electron 构建。它模块化、带版本号(报告撰写时为 1.4.5),行为像一款持续维护的产品:下载第二个加密包 Nexara.7z,把系统信息发送到 Telegram 机器人,建立持久化,尝试提升权限,并关闭 Windows Defender、UAC、通知、系统还原和卷影复制服务,同时添加 Defender 排除项。随后它把后续阶段注入合法进程,包括 RegAsm.exe、dwwin.exe 和 dwm.exe。这份分析清楚地表明,该攻击即使对经验丰富的用户——包括信息安全专业人员——也构成严重威胁。- Dr.Web
两种规避模式与一条备用路径
加载器内置了多种规避检查的方式。Dr.Web 描述了主要的 Mode3 路径和 Mode2 备用路径:- 把 explorer.exe 伪装成加载器的父进程。
- 通过修改注册表值 VerifiedAndReputablePolicyState 关闭智能应用控制。
- 从磁盘重新加载 ntdll.dll 以清除安全产品的钩子,并使用 Halo's Gate 进行直接系统调用。
- 在内存中修补 EtwEventWrite 和 AmsiScanBuffer,使该进程的事件跟踪和脚本扫描失效。
- 若主路径失败,则退回为 regasm.exe 和 dwm.exe 添加 Defender 排除项,再用 PowerShell 解密并注入模块。
载荷收集了什么
最后几个阶段是一个后门、一个剪贴板劫持程序和一个信息窃取器。BackDoor.AsyncRAT.115 的两个副本被注入到不同端口,Dr.Web 称这使得两名操作者可以同时控制同一台机器。Trojan.InjectNET.14 把 Trojan.Clipper.688 放进 regasm.exe,用于替换剪贴板中的加密钱包地址,并通过 Telegram 回传截图和主机信息。JS.Stealer.191 会先检查沙箱和虚拟机,然后收集浏览器数据、FileZilla XML 配置、MobaXterm.ini、Total Commander 的 wcx_ftp.ini、VPN 设置、即时通讯文件、游戏账号和 Discord 令牌。数据经压缩后通过同一个 Telegram 机器人外传。拆除安全网
加载器还会尝试卸载 ESET、McAfee 和 Malwarebytes,并把杀毒厂商域名写入 hosts 文件,使这些产品无法连接更新服务器。它会删除 system32\drivers\etc 中除一小份白名单之外的所有内容,Dr.Web 称这是为了阻止用户创建和使用备份。样本中未使用的代码指向另一个组件——一个名为 WUDFHost.exe 的未完成 Electron 项目,它可能创建服务以实现持久化,并在 Microsoft.exe 被删除后重新下载它。为什么复制粘贴工具是供应链问题
这一切都不需要零日漏洞或精巧的利用手法。它需要的只是一个有截止日期的人、一个搜索引擎,以及一个足够像他所需要的东西的仓库。安全工具尤其容易中招,因为其中许多规模很小、由单一作者编写,并以人们预期会直接运行的源码形式分发。扫描器输出解析器正是分析人员会下载、粗略浏览然后执行的东西。任何通过链接获得的二进制文件都是如此:来源比文件看起来是否有用更重要。我们关于通过 Tor 验证下载的指南介绍了校验和与签名习惯,可让这类替换更难成功。实用习惯
几项检查本可以在多个环节截断这条链条:- 阅读构建钩子。调用 PowerShell 的 PreBuildEvent、postinstall 脚本或 Makefile 步骤是代码,不是配置。
- 从固定提交构建工具,并把该提交与你审查过的提交做对比。
- 在不共享剪贴板、不挂载宿主目录的一次性虚拟机中运行不熟悉的工具。
- 把 .suo、.user 等编辑器状态文件当作可执行内容对待,因为在这场行动中它们确实如此。
- 警惕附有面向新手的安装说明的仓库;那是分发策略,不是好意。










