你大概不会想到——你信任的那个Notepad++插件,可能正在替你装一个 Cobalt Strike beacon。
最近 Palo Alto Networks 的 Unit 42 团队扔出来一份长报告:他们把针对 Notepad++ 用户的供应链攻击扒了个底朝天,而且一次曝光了两条独立、并行、各干各的攻击链。一条来自东南亚背景的 Lotus Blossom 国家级 APT,另一条是臭名昭著的 UAC-0099 团伙(之前踩过 ShadowPad、ShadowPad 2.0 那几个雷)。
这不是”又一个挖矿木马”。这是冲着东南亚的政府、电信、能源、金融、制造业和软件开发行业去的。

两条攻击链,是怎么搭起来的?
第一条链:Lotus Blossom(2025 年 6 月至 12 月)
手法不复杂,但很阴:
先渗透 Notepad++ 共享主机或者分发用的更新服务器 在合法更新包里塞一个伪装的 nppPluginList.dll 写入 Lua 脚本,靠 Lua 解释器把 Cobalt Strike beacon 注入到内存里 用 DLL 侧加载(DLL side-loading)走标准 Windows 加载链,肉眼根本看不出来
走的是”信任即风险”那条路——你装的是官方插件,你点的是官方更新,但中间有一个环节被污染了。
第二条链:UAC-0099
走的是更经典的”插件投毒”路子:直接往 Notepad++ 插件仓库上传看起来正常的工具,等用户自己装。一旦装上,持久化机制+DLL 劫持,一次性拉起整个工具链。
两条链技术风格完全不一样,但目标用户群高度重叠——这意味着 Notepad++ 在这两帮人眼里,就是一块还没啃干净的肉。
为什么是 Notepad++?
可能有人会问:一个记事本替代品,至于吗?
还真至于。
GitHub 上 notepad-plus-plus/notepad-plus-plus 这个仓库有 28,812 个 star、5,309 个 fork。最新稳定版是 v8.9.7(2026 年 7 月 14 日发布),叫 “Slava Ukraini”。
这个数字意味着两件事:
一是开发者社区用得极其广泛,几乎所有做渗透、做分析的电脑里都有一个 二是它的插件体系有第三方依赖,分发链一旦出问题,波及面极大
攻击者盯上 Notepad++,本质上是盯上了开发者这台终端机的”信任边界”。你装了它,你信任它,你不再怀疑它——这就是最好的初始访问(initial access)向量。

几个值得我们停下来想一想的点
第一,开源的”透明”不等于”安全”。 Notepad++ 本身是开源的,源码透明、SHA256 校验一应俱全。但攻击打的不是主程序,是分发链、是插件生态。开源解决的是代码可审计问题,没解决分发链的治理问题。
第二,”国家级 APT”这四个字越来越不值钱,也越来越值钱。 Lotus Blossom 这次攻击周期长达半年多,能持续这么久,意味着攻击者在分发链层面拿到了持续性访问。这种程度的耐力,背后通常是有组织、有预算、有耐心。
第三,开发者自己就是攻击目标。 你以为自己是终端用户,其实你是组织里最高价值的入口之一。你本地的 Git 凭证、SSH key、容器镜像 pull secret、Notepad++ 里缓存过的 API token——这些随便哪个被拿到,都是一起更大事故的起爆器。
现在能做什么
- 检查 Notepad++ 插件目录
(通常是 %ProgramFiles%\Notepad++\plugins\)。把不认识、不用的全删了。 - 更新到 v8.9.7
——这个版本对分发链做过加固,老版本风险更大。 - 核对 SHA256
——Notepad++ 官方每次发布都会给哈希,这是最简单的完整性校验手段。 - 少装第三方插件
——尤其那些”看起来很香但作者你完全不认识”的工具。 - 把 Notepad++ 当成”开发环境”对待
,不要当记事本。终端监控、EDR 这些该上的上。
说到底,Notepad++ 这事不是孤例。VS Code 插件被供应链投毒的事情去年就发生过一波,这次轮到 Notepad++。
开源工具越普及,盯上它的人就越多。我们能做的,不是回到 Notepad.exe 时代,而是把”我装了这个”这件事,重新当作一个安全决策来对待。
下一次打开编辑器之前,先问自己一句:这个插件,我真知道它从哪儿来的吗?
开源派知识星球文章推荐


↓ 点击阅读原文,查看相关链接 ↓
夜雨聆风