近期发现的 npm 包 "fezbox" 通过二维码从攻击者服务器获取窃 Cookie 恶意软件。该包伪装成实用工具库,借助这种新颖的隐写技术,从受感染设备中窃取用户凭据等敏感数据。
二维码再添恶意用途
二维码传统上为方便使用而设计,用于承载营销内容或分享链接,但攻击者已为其找到新用途——在二维码内部隐藏恶意代码。
本周,Socket 威胁研究团队发现一款名为 "fezbox" 的恶意包被发布至 npmjs.com(全球最大的 JavaScript 与 Node.js 开源包仓库)。该恶意包包含隐藏指令,会先获取一张内含二维码的 JPG 图片,随后对图片进行处理,运行攻击流程中的第二阶段混淆载荷。
据 npmjs.com 数据显示,在仓库管理员下架该包前,其下载量至少已达 327 次。
fezbox 恶意软件包在 npmjs.com 上
反向存储恶意 URL 规避检测
已确认,以 1.3.0 版本为例,恶意载荷主要存在于包内的 dist/fezbox.cjs 文件中。Socket 威胁分析师 Olivia Brown 解释:" 文件中的代码经过了压缩,格式化后可读性会显著提升。" 代码中的条件判断语句会先检测应用是否运行在开发环境中。
这通常是一种隐蔽策略。威胁者不想在虚拟环境或非生产环境中暴露行踪,因此常会为漏洞利用的运行时机和方式设置防护栏。若未处于开发环境,代码会在 120 秒后解析并执行来自反向字符串所指向的二维码中的代码。
在 CJS 文件中反向存储的恶意链接
上图截图中的字符串反转后为:hxxps://res [ . ] cloudinary [ . ] com/dhuenbqsq/image/upload/v1755767716/b52c81c176720f07f702218b1bdc7eff_h7f6pn.jpg
Brown 表示,将 URL 反向存储是攻击者的隐蔽手段,目的是绕过代码中查找 " 以 http ( s ) :// 开头的 URL" 的静态分析工具。
二维码藏混淆代码,专攻 Cookie 窃取
恶意网址返回的二维码
上述 URL 指向的二维码有别于日常营销或商务场景中常见的二维码——它的密度异常高,承载的数据量远超普通二维码。
事实上,测试发现,普通手机摄像头无法稳定识别该二维码。威胁者专门设计这款条码,用于传递可被 "fezbox" 包解析的混淆代码。
Brown 解释,该混淆载荷会通过 document.cookie 读取 Cookie 数据:" 随后它会获取用户名和密码,这里同样使用了字符串反转的混淆手段(如将 password 写为 drowssap)。"
若窃取的 Cookie 中同时包含用户名和密码,载荷会通过 HTTPS POST 请求将信息发送至 https://my-nest-app-production [ . ] up [ . ] railway [ . ] app/users;若不满足条件,则静默退出,不执行任何操作。
攻击创新点:无需人工介入的二维码滥用
此前,我们已见过无数二维码在社会工程学骗局中的应用——从虚假问卷到伪造 " 停车罚单 " 等,但这类场景均需人工介入(例如用户扫描二维码后被引导至钓鱼网站)。
而 Socket 本周的发现展现了二维码滥用的新套路:受感染设备可通过二维码与命令控制(C2)服务器通信,且在代理或网络安全工具看来,这种通信与普通的图片传输流量并无二致。
传统隐写术常将恶意代码隐藏在图片、媒体文件或元数据中,而此次攻击更进一步,印证了威胁者会利用任何可用载体实施攻击的趋势。
登录后才可以发布评论哦
打开小程序可以发布评论哦