网络安全 频道

NPM 恶意软件利用谷歌日历实现隐蔽 C2 连接

  Veracode 的研究人员发现了一起隐蔽的 NPM 恶意软件活动,该活动滥用了合法的谷歌日历平台,以实现与恶意命令与控制(C2)服务器的连接。

  Veracode 威胁研究团队在周四的一份报告中称,这个恶意的 NPM 包还使用了 Unicode 隐写术,将其恶意代码隐藏在不可见字符中。

  这个名为 “os-info-checker-es6” 的包,最初于 2025 年 3 月 19 日发布,最初仅执行打印操作系统详细信息等基本功能。

  然而,在 3 月 22 日至 23 日之间,发布了新的版本,这些版本在功能上看似无害,但由于使用了编码在不可见 Unicode 符号中的隐藏字符串而显得可疑。到了 5 月 7 日,隐藏字符串(在 1.0.8 版本中)被更改,加入了从存储在谷歌日历事件中的 Base64 编码 URL 检索并执行有效载荷的恶意机制。

  截至周四,该包每周大约有 566 次下载,并且还是另外四个包 —— skip-tot、vue-dev-serverr、vue-dummy 和 vue-bit —— 的依赖项,这四个包被认为属于同一活动的一部分。

  逆向工程隐藏的 Unicode

  代码中隐藏的部分专门使用了 Unicode 变体选择补充块(U+E0100 到 U+E01EF)中的变体选择符。变体选择符是 Unicode 符号,其本身完全不可见,但用于修改前面字符的外观。例如,此块中的某些字符用于显示日本行政系统中使用的日文汉字的替代版本。

  代码对一个看似竖线(|)的字符串使用了解码(decode())函数,但实际上这是一个 Base64 编码的字符串,随后通过 atob() 解码并用 eval() 执行。Veracode 发现,该字符串被编码在每个选择符的最后几个字节(例如 U+E01xx 中的 xx)中,偏移量为 0x10(减去 16)。

  在恶意版本 1.0.8 中,隐藏的代码被执行,以通过谷歌日历中间人检索额外的有效载荷。

  滥用谷歌日历平台存储 C2 信息

  Veracode 发现,攻击的下一阶段始于检索谷歌日历事件的短链接,<https://calendar[>. ]app[.<https://calendar[>. ]google/t56nfUUcugH9ZUkx9>。然后,恶意软件从谷歌日历事件 HTML 页面的 “data-base-title” 属性中抓取内容。

  “这意味着攻击者很可能创建了一个谷歌日历事件,并将 Base64 编码的 URL 作为该属性的值嵌入在事件的描述或标题中,”Veracode 解释道。

  从谷歌日历获取的 Base64 编码 URL 被解码,然后通过 eval() 执行从该 URL 获取的有效载荷。Veracode 表示,由于 C2 服务器可能进行了反分析检查,或者该活动已经结束,因此无法从解码的 URL 中获取并识别最终有效载荷。

  将谷歌日历用作初始执行和恶意 C2 连接之间的中间人,利用了谷歌日历的合法性,以迷惑安全工具并掩盖该包的恶意性质。

  Veracode 注意到,这种策略与概念验证的红队工具 Google Calendar Rat 有相似之处,尽管没有证据表明活动中的威胁行为者直接使用了该工具。Google Calendar Rat 直接利用谷歌日历事件的标题和描述字段进行 C2 通信,使得攻击者可以通过更新事件描述向被感染的目标传递命令。

  Veracode 已向 NPM 安全团队报告了 os-info-checker-es6 包 —— 截至周四下午,该包仍在 NPM 仓库中可用。

0
相关文章