一个名字听起来甚至有些"可怜"的恶意软件,正在全球极少数最敏感的机构内部悄悄扎根——而且可能已经藏了快一年。微软威胁情报团队近日揭开了一个代号为 NeedyMantis 的模块化恶意软件框架的真实面目,它不像勒索软件那样张扬,也不追求大规模的感染数字,它的目标只有一个:在成功入侵的网络内部,长期、隐蔽、随需应变地维持一个"后门"。
根据微软披露的信息,这个恶意软件出现在多起针对性极强的入侵事件中,受害者名单读起来让人不安——电信运营商、大学、医疗非营利组织、政府间机构以及政府承包商。换句话说,攻击者瞄准的都是掌握通信基础设施、前沿研究和公共服务命脉的目标。溯源信息显示,相关活动至少可以追溯到2025年10月,这意味着运营者一直在利用该框架进行长期的网络间谍活动,而非无差别敛财式的网络犯罪。
这场行动的曝光过程本身就颇具戏剧性。微软的研究人员最初是在追踪 DAEMON Tools 供应链攻击事件(微软将其追踪编号为 Storm-3069)的相关指标时,意外发现了 NeedyMantis 的踪迹。卡巴斯基此前曾披露,攻击者向通过官方安装程序分发的部分 DAEMON Tools Lite 二进制文件中植入了恶意代码。微软评估认为,Storm-3069 的攻击活动源自中国,但目前尚未将其正式归咎于某个特定的政府支持组织。更有意思的一个细节是:多起感染事件中出现的 NeedyMantis 样本存在差异,这似乎暗示着可能不止一个攻击者掌握并使用了这套恶意软件框架。
不过需要澄清的是,微软目前还没有发现 NeedyMantis 是通过被攻陷的 DAEMON Tools 供应链传播的。现有证据指向的是另一种模式——攻击者先通过其他途径拿到初始访问权限,再择机部署该恶意软件。这也意味着,不同受害机构遭遇的具体入侵入口可能各不相同。
微软在分析中还原了一次典型的入侵过程:操作员利用 Impacket 工具包从网络共享中复制合法软件、恶意 DLL 以及加密存档,随后在精心挑选的目标设备上执行整个软件包。这套手法的核心在于 DLL 侧加载(Side-Loading)——攻击者让合法应用程序去加载伪装成必需组件的恶意库。Poedit、curl、Vim、TightVNC 这些程序员和技术人员天天在用的工具,统统被当成了"掩护体",恶意文件则披上了 Microsoft Office、Broadcom、Intel、NVIDIA 等知名厂商库文件的外衣。
这种攻击方式之所以令防守方头疼,是因为它天然自带"白名单光环"。一个看起来签名有效、行为正常的合法程序,谁会去怀疑它顺手加载的那个库文件呢?
整个感染链条分为精心设计的多个阶段。第一阶段加载器会从自定义归档中提取第二阶段的载荷,而这个归档的偏移量、XOR 密钥、压缩方式乃至文件名在不同样本之间都会发生变化。这种"每个样本都变脸"的策略,让基于静态特征的检测手段和自动化分析沙箱的破解效率大打折扣。
在微软分析的样本中,一个名为 WinSparkle.dll 的恶意程序替换了 Poedit 的合法更新组件。这个加载器的反分析意识相当强:它用混淆的堆栈字符串隐藏 API 名称和常量,动态解析 Windows 函数,还专门选中了 ProcessDebugFlags 和 ThreadHideFromDebugger 两个选项来干扰调试器的挂接。完成环境检测之后,它会提取出一个名叫 encryptbase64.ps1 的文件。别被扩展名骗了——它看起来像个 PowerShell 脚本,里面装的却是 x64 shellcode,专门负责解码并解压 NeedyMantis 的主组件。主组件本身以一种精简的自定义可执行格式存储,这进一步增加了逆向分析的难度。
主组件一旦激活,便接管了后续的命令与控制(C&C)通信以及可下载模块的管理工作。其配置指向 corp.tripswithengine[.]com 这个域名,使用 443 端口,URI 路径为 /library/zip/。初次握手时,恶意软件会通过 HTTPS 请求中的 Set-Cookie 头,把经过压缩和 Base64 编码的系统详细信息发送出去——计算机名、用户名、正在运行的进程、父进程信息、已安装文件清单、完整进程列表,一次全数上交。随后通信会升级到 WebSocket 连接,并切换至一套自定义二进制协议,数据在传输中会依次经过 XOR 编码、压缩,以及可选的 RC4 加密处理。
从功能上看,NeedyMantis 可以接收加载或卸载模块、分发数据、禁用活动标志等命令,同时也会向控制端发送识别信息和心跳报文来维持连接。微软目前尚未确认那些被下载模块的具体功能,但这个架构设计本身已经说明问题:运营者可以随时为恶意软件添加新能力,而不必替换已经植入目标系统的核心程序。对于一个追求"长期潜伏、随需应变"的间谍框架而言,这是近乎理想的设计。
也正因为它只会出现在已经被攻破的系统里,NeedyMantis 的现身本身就是一个强烈的红色警报。对防守方而言,在日志中发现这个恶意软件,绝不应该止于"清除这一个文件",而应当立即启动完整的事件响应调查:凭证是否被盗用?攻击者是否在内部横向移动?是否还留有其他持久化机制?暂存服务器在哪里?在部署 NeedyMantis 之前,攻击者还做过哪些活动?
具体到排查动作上,安全团队应立即检查是否存在指向 corp.tripswithengine[.]com 的出站连接,留意异常的 DLL 加载记录、可疑的解码行为、Impacket 的执行痕迹,以及那些与合法应用程序放在一起出现的可疑文件。
在防御层面,微软给出的建议相当明确:启用云交付保护、第一时间阻止(first-seen protection)、网络防护、阻止模式下的 EDR(端点检测与响应)、自动攻击中断,以及攻击面缩减规则,从而拦截不受信任的可执行文件和混淆脚本。Defender 已经能够识别的威胁包括 TrojanDropper:Win64/NeedyMantis、Behavior:Win64/NeedyMantis,以及与 DLL 侧加载或 Impacket 活动相关的可疑告警。
这场行动的受害者画像——电信运营商、高校、医疗机构、政府间组织和政府承包商——决定了它的分量。保护这些敏感研究、公共服务和通信基础设施的安全团队,面对的不再是粗暴的勒索软件,而是一个愿意花近一年时间耐心等待、精细选择目标的对手。NeedyMantis 这个名字或许听起来无害,但它在网络内部所做的每一件事,都指向同一个目的:让攻击者"住"下来,并且住得越久越好。