JWR钓鱼框架使用实时WebSocket控制和AES加密来窃取银行凭证
作者:虾咪 | 发布时间:2026-08-18阅读数:
JWR 是一个专为实时欺诈而构建的钓鱼框架。它能把伪造的支付或银行页面变成实时通道,让犯罪分子实时看到受害者输入的详细信息逐一出现。 该攻击活动利用冒充未付通行费通知、包裹快递费用或快递提醒的短信进行传播。受害者点击链接后,会进入一个以假乱真的登录页面,框架在此收集银行卡信息、账户凭据、身份证件和验证码。 Cisco Talos 识别了 JWR,同时安全研究员 Andrea Fortuna 也单独指出,钓鱼攻击如何将一个微小的初始失误放大为更严重的安全危害。数据甚至能在受害者点击“提交”按钮之前就到达操作者手中。 Cisco Talos 在与 Cyber Security News(CSN)分享的报告中表示,该框架很可能与被称为 “The Outsider” 的中文网络钓鱼即服务生态有关联。Talos 基于客户端脚本和功能的相似性,对这一关联给出了中等置信度评估。
JWR 钓鱼框架利用实时 WebSocket 控制
JWR 使用持久化 WebSocket 连接与服务器持续通信。其客户端使用 AES-CTR 对流量进行加密,借此遮蔽通信内容,同时操作者实时控制欺诈会话的每个阶段。 JWR 会为每个受害者分配唯一会话 ID,并运行后台 Worker 在受害者在不同页面间跳转时保持连接不中断。这使整个骗局感觉不像普通的表单填写,而更像一个引导式的结账流程,印证了所谓实时钓鱼服务的说法。

工作流程(来源:Cisco Talos)
超过 40 条操作者命令可引导访客依次经历登录页面、个人信息、银行卡数据、短信验证码、PIN 码或银行应用审批提示等步骤。操作者还可以显示一条伪造的“支付失败”消息并索要另一张银行卡,从而在不暴露欺诈行为的情况下获取更多信息。
JWR 能够捕捉输入过程中的部分密码、银行卡号和一次性验证码。会话结束时,它会把数据发送给攻击者,并将受害者重定向到真正的官方网站。这个细节可能会延缓受害者的怀疑,同时帮助犯罪分子在近乎实时的时间内迅速采取行动。
该框架内置了模仿支付、购物和银行服务的模板,还能从购物车中重建商品详情。这种真实感很重要,因为受害者看到的是熟悉的商品、金额和品牌标识,而非明显的仿冒页面。类似的多步骤欺诈行为曾在一次银行盗窃活动分析中被记录。
短信钓鱼诱饵加剧银行风险
Talos 观察到 JWR 通过冒充东南亚和中东地区的通行费征收机构、邮政或快递服务的短信进行传播。这些诱饵围绕一笔小额未付费用或延迟包裹制造紧迫感,赌的是匆忙的受害者会先点击、后核实。这一攻击活动尤其危险,因为它并不止步于获取密码。它还会试图收集完整的支付卡信息、PIN 码、登录凭据、一次性密码、身份记录、证件图片、Cookie 和设备信息。这些数据可用于账号接管、支付欺诈以及进一步的身份滥用。 对企业组织而言,封堵已知钓鱼网站是必要的,但远远不够。安全团队应关注异常浏览器连接、在认证页面上的快速跳转、以及向陌生域名发出的请求。他们还应为持久连接被阻断时可能出现的备用网络请求做好准备,因为犯罪工具包的适应能力正变得越来越强。 用户不应使用意外消息中的链接来处理通行费、快递费或账户问题,而应打开官方应用或亲自输入已知的网站地址。

JWR 客户端程序的反混淆视图,其中包含硬编码的简体中文状态消息(来源:Cisco Talos) 任何已经输入过数据的人都应联系银行、更换重复使用的密码,并检查近期交易记录。 银行可以通过交易提醒、针对异常登录的风险检查,以及关于当前诈骗的明确警示来降低损失。更广泛的风险意识至关重要,因为伪造通行费消息的诈骗采用了同样的施压手段,而 GitHub Pages 上的银行钓鱼诱饵则展示了犯罪分子能够以多快的速度轮换令人生信的钓鱼基础设施。JWR 表明,钓鱼页面正在演变为实时欺诈控制台。当受害者看到熟悉的 Logo、仿真的购物篮并收到索取验证码的请求时,可能会以为支付正在被核实,但实际上,是一个操作者在幕后操控每一个页面,并窃取账户数据。
失陷指标(IoCs):
| 类型 | 指标 | 描述 |
|---|---|---|
| 文件路径 | static/js/ws-worker.js | 用于维持钓鱼框架 WebSocket 连接的 Web Worker |
| 会话标识符模式 | JWRCVV-{Date.now()}-{random1}-{random2} | 用于创建受害者会话标识符的格式 |
| WebSocket 路径 | webSocket/QT/{sessionId}/khkjsahfjkwhakjlsdwdddddd88 | JWR 客户端使用的已观测 WebSocket 连接路径 |
| API 端点 | api/open/addClick | 受害者到达信标,传输指纹数据 |
| API 端点 | api/open/getSyncSettings | 用于获取攻击者控制的配置设置的端点 |
| API 端点 | api/open/pollInstruction | 用于接收操作者指令的 HTTP 长轮询回退机制 |
| API 端点 | api/open/addCvv | 数据外传端点 |
| API 端点 | api/open/the_final_interface | 用于传输完整采集表单数据的最终 POST 端点 |
| 检测签名 | Js.Phishing.JwrFramework-10060456-0 | ClamAV 针对 JWR 列出的检测签名 |
| Snort 规则 ID | 66924, 66925, 66926, 66927, 66928 | 用于检测和拦截的 Snort 2 与 Snort 3 规则 |
注意: IP 地址和域名均已被有意去毒化(例如 [.]),以防止意外解析或自动超链接。仅在受控的威胁情报平台(如 MISP、VirusTotal 或你的 SIEM)中重新恢复原始格式。







