这看起来只是又一个普通的 UI 库。名为 ansi-universal-ui 的包声称是 “适用于现代 Web 应用的轻量型模块化 UI 组件系统”,但在专业的描述和版本历史背后,隐藏着一个复杂的信息窃取恶意软件 —— 安全研究机构 Aikido 将其命名为 “G_Wagon”。
该恶意包于 2026 年 1 月 23 日 被发现,它并非简单脚本,而是一个多阶段攻击平台,目标直指开发者环境中最有价值的机密信息。
攻击始于这个具有欺骗性的 npm 包。在普通开发者眼中,ansi-universal-ui 看似合法无害,但一旦安装,它就会执行一段 “高度混淆的载荷”,并下载专属的 Python 运行时,以此绕过本地环境限制。
这款恶意软件的数据窃取胃口极大。报告显示,它会窃取浏览器凭据、加密货币钱包、云服务密钥(AWS/Azure/GCP 等)以及 Discord 令牌,并将这些数据上传至一个 Appwrite 存储桶。
报告梳理了其攻击演进时间线:仅两天内,攻击者就发布了 10 个版本,可见其通过 “试错迭代” 完善攻击功能的过程:
- 第一天:攻击者测试基础功能。1.0.0 版本为 “使用 npm 的 tar 模块搭建的初始框架”,随后迅速发布多个版本修复依赖项和重定向问题。
- 第二天:攻击者全面激活恶意功能。1.3.5 版本新增了命令与控制(C2)服务器 URL;到 1.3.8 版本时,该恶意软件已集成 “完整的 Python 载荷及浏览器注入功能”。
研究人员指出:“这个恶意软件的特别之处在于,我们能完整看到它的开发过程。攻击者两天内发布 10 个版本,每个版本都揭示了攻击构建的一部分。”
“G_Wagon” 的技术复杂度远超普通脚本小子编写的恶意软件。其 Python 代码中嵌入了一个 “大型 Base64 编码数据块”,解码后发现是经过 XOR 加密的 Windows 动态链接库(DLL)。
这款恶意软件并非简单运行,而是深度植入系统:它利用 NtAllocateVirtualMemory 和 NtCreateThreadEx 等高级原生 API,将该 DLL 注入浏览器进程。“恶意软件内置了完整的 PE 文件解析器,会遍历导出表查找名为‘Initialize’的函数 —— 这是注入后执行的入口点。”
攻击者显然瞄准了高价值目标。针对大型文件,恶意软件会 “将数据分割为 5MB 的分片”,确保即使是海量窃取的数据也能可靠上传。“开发者显然为拥有大量敏感数据的受害者做好了准备。”
对于可能已安装 ansi-universal-ui 包的开发者,研究人员敦促立即采取彻底的应急措施:
- 删除 node_modules 目录并卸载该恶意包;
- 检查用户主目录中是否存在 .gwagon_status 文件—— 这是感染的直接证据;
- 轮换所有凭据,重点包括浏览器保存的密码、云服务密钥(AWS/Azure/GCP)及 SSH 密钥。








发表评论
您还未登录,请先登录。
登录