文章总结: 黑客利用27个恶意npm包将npm仓库与CDN转化为高信誉钓鱼托管平台。攻击者采用反爬虫、鼠标轨迹检测及AitM技术绕过MFA,针对特定行业商务人员。建议企业监控非开发终端对npmCDN的异常访问,评估供应链信任,并部署FIDO2硬件密钥以防御此类威胁。 综合评分: 88 文章分类: 供应链安全,威胁情报,社会工程学,安全意识
深扒 27 个恶意 npm 包:自带反爬虫、识别鼠标轨迹,现在的钓鱼攻击都这么卷了吗?
原创
Hankzheng
技术修道场
2025年12月31日 08:44 广东
大家好,做开发这么多年,我们对 npm 的恐惧通常来自于 npm install 那个回车键敲下去的一瞬间——生怕拉下来一个带着挖矿脚本或者勒索病毒的恶意依赖,直接把生产环境给炸了。
但如果现在的黑客根本不需要你安装这些包,就能利用 npm 搞垮你的公司,你信吗?
最近,安全研究机构 Socket 披露了一起非常有意思(当然也很吓人)的攻击活动。黑客上传了 27 个恶意 npm 包,但他们的目的竟然不是为了混入你的代码库,而是把 npm 仓库和 CDN 当成了免费、抗封锁的“钓鱼网站托管商”。
这思路,不得不说,确实有点“脑洞大开”。今天咱们就来硬核拆解一下,这帮黑客是怎么利用基础设施玩“寄生”攻击的。
01 不求“安装”,只求“托管”
传统的供应链攻击,大都是搞“李逵变李鬼”,比如把包名写错一个字母,坐等开发者手滑安装。
但这次发现的 27 个包,比如 onedrive-verification、secure-docs-app 这种名字,听起来就很“企业级”。然而,黑客压根没指望开发者去下载它们。
他们的玩法是这样的:
-
上传恶意包:
把包含钓鱼页面的 HTML 和 JS 代码打包上传到 npm。
-
白嫖 CDN:
利用 jsDelivr、unpkg 这些公共 CDN 服务。这些服务会自动为 npm 包提供全球分发链接。
-
构造钓鱼链:
黑客给受害者(通常是销售或商务人员)发邮件,链接直接指向 CDN 上的 HTML 文件。
为什么要这么做?
做过运维的兄弟都知道,传统的钓鱼网站域名很容易被封,IP 也很容易被拉黑。
但是,谁会去封杀 unpkg.com 或者 jsdelivr.net 呢?
这些都是合法的、高信誉的域名。通过这种方式,黑客相当于获得了一个免费、高速、且极难被防火墙拦截的静态资源托管服务。这简直就是把 npm 当成了他们的 AWS S3 或 GitHub Pages 在用,而且还完全隐身。
02 细节魔鬼:反爬虫与 AitM 攻击
如果只是托管个静态页面,那技术含量也太低了。让我觉得这帮黑客是“练家子”的,是他们在前端代码里埋下的反分析(Anti-Analysis)逻辑。
为了防止安全厂商的扫描器和爬虫自动检测到钓鱼页面,他们在 JS 里做了极其猥琐的判断:
1. “蜜罐”表单字段(Honeypot Fields) 他们在页面里藏了一些对人类用户不可见的表单字段。正常用户看不到自然不会填,但自动化爬虫通常会遍历 DOM 把所有输入框都填满。一旦后端发现这个隐藏字段有值,立马判定为机器人,终止攻击。
2. 活体检测 代码会监听客户端的事件。只有检测到真实的鼠标移动(Mouse movement)或者触摸操作(Touch input),钓鱼脚本才会真正执行,跳转到凭证窃取页面。沙箱环境大概率会在这里挂掉。
3. AitM(中间人攻击)与 Evilginx 研究发现,这些包里的域名与著名的开源网络钓鱼工具包 Evilginx 存在关联。这意味着这不仅仅是一个简单的“高仿”登录页,而是一个 AitM 攻击。它能实时代理受害者和微软服务器之间的流量,甚至能够绕过普通的 MFA(多因素认证),直接截获 Session Cookie。
03 甚至还是“定点爆破”
这还不是最骚的。研究人员在分析源码时发现,代码里竟然硬编码了 25 个具体的电子邮件地址!
这些目标主要分布在奥地利、德国、英国、美国等地的制造业、工业自动化和医疗行业。而且,针对的不是我们要这种搞 IT 的“苦逼”,而是客户经理、销售代表和业务拓展人员。
为什么是销售? 因为销售人员通常需要频繁接收外部文件(发票、合同、图纸),警惕性相对较低。黑客可能是通过爬取大型国际展会(如 Interpack)的参展商名单,结合社工库,精准定位了这些“肥羊”。
04 这种“寄生”正在成为趋势
其实,利用包管理器做基础设施并不是第一次了。但现在的趋势是,恶意包越来越“外科手术式”精准:
不再无脑破坏(加密勒索),而是定向窃取 Git 配置、CI 构建产物;甚至延迟执行,利用
setTimeout躲过早期的静态分析。
最后:我们能做什么?
作为技术人员,这种攻击给我们敲响了警钟。虽然这次受害者主要是非技术人员,但作为企业的安全守门人,我们需要意识到:
- CDN 请求日志是盲区:检查一下公司的流量日志,有没有非开发部门的设备频繁请求
npm相关的 CDN 域名?这本身就很反常。 - 供应链信任需重估:既然 npm 可以被滥用,PyPI、NuGet 也是同理。
- MFA 不是万能药:面对 AitM 攻击,普通的短信验证码或 App 确认是不够的,有条件的企业应该考虑上 FIDO2 硬件密钥。
技术在进步,黑客也在进化。 以前我们防的是“安装”,现在还得防“访问”。各位老铁,守好你们的网关,这场仗是越来越难打了。
⚠️ 附:部分恶意包名(如在日志中发现请立即阻断)
adril7123, assetslush, onedrive-verification, secure-docs-app, sync365, ttetrification… (完整列表见 Socket 报告)
觉得这篇文章有用的,别忘了点个【在看】和【转发】 让更多兄弟避坑!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:技术修道场 Hankzheng《深扒 27 个恶意 npm 包:自带反爬虫、识别鼠标轨迹,现在的钓鱼攻击都这么卷了吗?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论