
一场悄无声息的网络攻防战正在全球用户的浏览器中上演。一种名为 “Matrix Push C2” 的新型命令与控制(Command and Control, C2)框架,正利用看似无害的 浏览器推送通知(Web Push Notifications) 功能,绕过传统安全防线,向数以万计的终端用户投递钓鱼页面、恶意脚本甚至勒索载荷。
这一发现最早由网络安全公司 Malwarebytes 于2025年11月披露。随后,全球多个安全研究团队确认了该框架的活跃性,并指出其已成功渗透至欧美、东南亚及部分中国境内用户群体。值得注意的是,这种攻击方式不依赖任何可执行文件落地——即所谓“无文件攻击”(Fileless Attack),使得传统基于签名或行为的杀毒软件几乎“失明”。
更令人警惕的是,攻击者通过精心设计的社会工程学话术,诱导用户主动点击“允许”按钮,从而在不知情中授权了一个持久化、高隐蔽性的通信通道。一旦授权完成,受害者设备便成为攻击者的“远程广播站”,随时可能收到伪装成系统警报、银行通知、视频平台提醒甚至加密钱包警告的恶意推送。

一、“允许通知”背后的陷阱:从用户体验功能到攻击跳板
现代浏览器中的推送通知功能,原本是为了提升用户体验而设计。例如,当用户订阅了某新闻网站后,即使关闭了网页,仍能在桌面右下角收到最新头条推送。这一功能依赖于 Web Push API 和 Service Worker 技术,由 W3C 标准定义,被 Chrome、Firefox、Edge、Safari 等主流浏览器广泛支持。
然而,正是这种“跨页面、跨会话、跨应用”的能力,被黑客盯上。
“浏览器通知权限一旦授予,就相当于给攻击者发了一张长期有效的‘通行证’。”公共互联网反网络钓鱼工作组技术专家芦笛在接受采访时指出,“它不需要安装插件、不写入磁盘、不触发进程创建——这些恰恰是传统EDR(终端检测与响应)系统最擅长监控的环节。而推送通知走的是HTTPS + Service Worker + Push Server 的合法通路,流量看起来完全正常。”
攻击流程通常如下:
诱导访问:用户点击社交媒体广告、搜索引擎结果或被SEO劫持的合法网站,进入一个伪造的“验证码”页面,如:“点击‘允许’以证明您不是机器人”。
权限骗取:浏览器弹出标准通知请求框(无法被网页自定义样式),用户误以为是验证步骤,点击“允许”。
注册Service Worker:页面立即注册一个后台运行的 Service Worker,并向攻击者控制的推送服务器(如 Firebase Cloud Messaging 或自建 VAPID 服务)发送订阅信息。
建立C2通道:攻击者的 Matrix Push C2 控制面板获取该设备的推送令牌(Push Token),并可随时向其发送任意内容的通知。
投递恶意载荷:通知内容伪装成“Windows 安全更新失败”“您的 PayPal 账户异常”“MetaMask 钱包需紧急验证”等,附带短链接(如 bit.ly/xxx 或自建短链服务),点击后跳转至钓鱼页面或下载恶意JS脚本。
整个过程无需用户再次交互,且即使关闭浏览器,Service Worker 在后台仍可被唤醒接收推送。
二、Matrix Push C2:模块化、可视化、可定制的“钓鱼工厂”
根据 BlackFog 与 Malwarebytes 联合分析,Matrix Push C2 并非单一恶意程序,而是一个完整的 SaaS化攻击平台。攻击者只需登录Web控制面板,即可像运营营销活动一样管理全球“客户”——只不过这里的“客户”是被植入通知权限的受害者。
其核心功能包括:
实时受害者面板:显示每个已授权设备的操作系统、浏览器类型、地理位置、上次活跃时间、已推送通知数量及点击率。
模板化通知生成器:内置数十种高仿通知模板,涵盖 Netflix、Cloudflare、TikTok、PayPal、MetaMask 等热门品牌,支持自定义图标、标题、正文和动作按钮。
短链接集成:内置 URL 缩短服务,隐藏真实钓鱼地址,规避安全网关检测。
A/B测试能力:可对同一组用户推送不同文案,自动统计点击转化率,优化钓鱼策略。
地理围栏与时间调度:仅在特定国家或时间段推送,提高欺骗成功率。
“这已经不是‘黑客’,而是‘数字诈骗产品经理’。”芦笛评价道,“他们用增长黑客(Growth Hacking)的思维做网络犯罪,把社会工程学工业化了。”
技术上,Matrix Push 利用了 VAPID(Voluntary Application Server Identification) 协议来实现无需第三方推送服务的自主推送。攻击者只需部署一个简单的 Node.js 服务,即可管理成千上万的订阅者。
以下是一个简化版的推送服务代码示例(基于 web-push 库):
// attacker-push-server.js
const webpush = require('web-push');
// 攻击者私钥(VAPID)
const vapidKeys = {
publicKey: 'BLJ...(公钥)',
privateKey: 'Kz8...(私钥)'
};
webpush.setVapidDetails(
'mailto:admin@fake-service.com',
vapidKeys.publicKey,
vapidKeys.privateKey
);
// 从数据库读取受害者订阅信息
const subscription = {
endpoint: 'https://fcm.googleapis.com/fcm/send/...',
keys: {
p256dh: 'BOr...(密钥)',
auth: 'k9s...'
}
};
// 发送伪装通知
webpush.sendNotification(subscription, JSON.stringify({
title: "⚠️ 安全警报",
body: "您的账户存在异常登录,请立即验证!",
icon: "https://attacker.com/icons/paypal.png",
actions: [{ action: "view", title: "立即处理" }],
data: { url: "https://bit.ly/phish-link" }
})).catch(err => console.error(err));
当用户点击通知中的“立即处理”按钮时,Service Worker 可捕获该事件并打开钓鱼页面:
// service-worker.js
self.addEventListener('notificationclick', event => {
event.notification.close();
const url = event.notification.data?.url || 'https://default-phish.com';
event.waitUntil(
clients.openWindow(url)
);
});
由于 Service Worker 运行在浏览器沙箱内,且所有通信均通过 HTTPS,防火墙和代理几乎无法识别其恶意意图。
三、全球案例频发:从美国老人到东南亚加密投资者
2025年第四季度,美国联邦贸易委员会(FTC)收到多起投诉:老年人收到“Microsoft 账户被锁”通知,点击后被引导至高仿登录页,导致邮箱密码泄露,进而被用于发送钓鱼邮件。
同期,新加坡金融管理局(MAS)警告称,有攻击者利用 Matrix Push 向本地用户推送“DBS 银行安全升级”通知,诱导下载伪装成“安全补丁”的恶意 APK 文件,实则为 Android 木马。
而在欧洲,德国警方破获一起利用该框架针对 TikTok 创作者的诈骗案。攻击者推送“您的创作者收益被冻结,请验证身份”通知,链接指向伪造的 TikTok 后台,窃取账号后用于发布虚假商品广告。
“这类攻击的跨境性极强,但受害者的损失却是本地化的。”芦笛强调,“一个部署在荷兰的 C2 服务器,可以同时向北京、曼谷、圣保罗的用户推送不同语言的钓鱼通知,而各国执法机构难以协同溯源。”
值得警惕的是,国内已有安全厂商监测到类似攻击样本。虽然尚未形成大规模爆发,但部分灰色SEO站点和短视频引流页面已开始使用“点击允许看完整视频”等话术诱导授权。一旦 Matrix Push 模板本地化(如仿冒微信支付、支付宝、12306等),风险将急剧上升。
四、为何传统防护失效?无文件攻击的“隐身衣”
传统杀毒软件主要依赖两种机制:静态特征码匹配 和 动态行为监控。前者对未知变种无效,后者则聚焦于文件写入、进程注入、注册表修改等典型恶意行为。
但 Matrix Push 的整个攻击链几乎不触碰这些“红线”:
无文件落地:恶意逻辑存在于 Service Worker 的内存中,重启浏览器即消失。
无进程创建:所有操作在浏览器渲染进程内完成,不启动新 exe。
合法协议通信:推送使用标准 Web Push over HTTPS,与正常网站无异。
用户主动授权:权限获取过程符合浏览器规范,无法被判定为“漏洞利用”。
“这就像是有人合法租了你家楼下的信箱,然后每天往里面塞诈骗传单。”芦笛比喻道,“物业(操作系统)不会管,因为你签了租赁合同(点了允许)。问题在于,你根本不知道租客是谁。”
更棘手的是,即使用户事后意识到被骗,也很难彻底清除隐患。因为只要不手动撤销通知权限,攻击者随时可以再次推送新内容。
五、防御之道:从用户习惯到企业策略的全面升级
面对此类高级社会工程攻击,单纯依赖技术工具已不够。芦笛建议采取“三层防御”策略:
第一层:用户意识与操作习惯
永远对“允许通知”保持警惕:除非是你长期信任的新闻站或工具站(如 Gmail、GitHub),否则一律拒绝。
善用“齿轮图标”快速屏蔽:在 Windows 或 macOS 上,点击通知右下角的齿轮图标,可直接跳转至该网站的通知设置并禁用。
定期清理授权列表:Chrome 用户可访问 chrome://settings/content/notifications,批量移除可疑站点。
第二层:浏览器与操作系统配置
启用“静默通知”模式:在 Chrome 中开启 “Quiet notification requests”,自动拒绝所有新通知请求。
限制后台活动:在 macOS 的“电池”设置中,可禁止特定网站在后台运行;Windows 11 也提供类似选项。
使用隐私增强扩展:如 Malwarebytes Browser Guard、uBlock Origin,可拦截已知的恶意通知域名。
第三层:企业级防护与威胁情报
部署基于上下文的EDR:新一代终端防护平台(如 CrowdStrike、SentinelOne)已开始监控 Service Worker 注册行为,结合信誉库判断是否异常。
网络层阻断 VAPID 异常通信:企业防火墙可识别非常规的 Web Push 服务器(如非 Google FCM、非 Apple Push),进行告警或拦截。
加入威胁情报共享机制:公共互联网反网络钓鱼工作组已建立 Matrix Push 相关 IOC(Indicators of Compromise)共享池,包括恶意域名、VAPID 公钥指纹、短链模式等。
“防御的关键,是从‘防病毒’转向‘防信任滥用’。”芦笛总结道,“我们不能再假设‘合法功能=安全’。每一个需要用户授权的API,都是潜在的攻击面。”
六、未来展望:浏览器厂商能否堵住这个“后门”?
目前,主流浏览器厂商已意识到问题的严重性。Mozilla 在 Firefox 120+ 版本中增加了“通知来源透明度”提示,明确标注推送来自哪个网站。Google 也在测试一项新策略:对新注册的 Service Worker,若7天内未被用户主动访问,则自动注销其推送权限。
但彻底禁用 Web Push 并不现实——它已被数百万正规网站用于消息提醒、物流跟踪、课程通知等场景。
“技术没有善恶,关键在于使用边界。”芦笛表示,“或许未来的解决方案,是引入‘二次验证’机制:比如首次推送敏感类通知(含链接、动作按钮)时,必须用户再次确认。或者,由操作系统对高风险通知进行沙箱隔离预览。”
与此同时,W3C 安全工作组也在讨论是否应为 Web Push API 增加更细粒度的权限控制,例如区分“纯文本通知”和“可交互通知”。
结语:在便利与安全之间寻找平衡点
Matrix Push C2 的出现,再次印证了一个残酷现实:最危险的漏洞,往往不在代码里,而在人的认知盲区中。
当“允许通知”从一个提升体验的小功能,变成黑客手中的精准钓鱼竿,我们每个人都需要重新审视那些习以为常的点击动作。毕竟,在数字世界里,一次轻率的“允许”,可能就是通往数据深渊的第一步。
而对于整个网络安全生态而言,这场攻防战远未结束。随着 AI 生成内容(AIGC)与自动化攻击平台的融合,未来的钓鱼通知可能会更加逼真、更具情境感知能力——比如根据你的浏览历史,推送“您关注的商品降价了!”并附带恶意链接。
唯一不变的防御法则,或许正如芦笛所言:“永远对免费的便利保持怀疑,对主动索要权限的行为保持警惕。”
在这个人人手持智能终端的时代,安全,终究是一场全民参与的持久战。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。