冰蝎v4.1被爆,被恶意服务端利用实现0-click凭据窃取

admin 2026-05-04 04:43:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 冰蝎v4.1客户端存在BasicInfo页面WebView未过滤服务端HTML的安全漏洞,恶意服务端可利用该漏洞通过外部资源加载实现零点击凭据窃取,攻击者能捕获用户真实IP、Windows用户名及NetNTLMv2哈希。文档提供了漏洞复现步骤和三种修复方案,包括HTML标签白名单过滤、替换为纯文本渲染及阻止外部资源加载。 综合评分: 78 文章分类: 漏洞分析,WEB安全,恶意软件,红队,安全工具


蜜罐同时在对应端口启动 HTTP 信标服务器和 SMB 捕获服务器(impacket)。

  1. 连接与触发

使用冰蝎客户端连接蜜罐的 WebShell 地址 冰蝎自动发送 Echo 握手 → 蜜罐返回正确的 Echo 响应(偏移校准) 冰蝎发送 BasicInfo 请求 → 蜜罐返回投毒的 BasicInfo 响应 客户端 MainWindowController 解密响应后直接调用 webengine.loadContent(basicInfoStr) WebView 渲染恶意 HTML,自动加载外部资源: HTTP 请求发往蜜罐的信标服务器 → 捕获真实 IP、User-Agent、Accept-Language file://蜜罐IP/share/… 触发 SMB 连接 → Windows 自动发送 NTLM 认证 → 捕获 NetNTLMv2 哈希 全程 无任何弹窗、无需点击、无需额外操作 3. 实测结果

单次连接触发 12 个独立的出站 HTTP 请求(CSS、img、iframe、object、embed、prefetch、preload、meta-refresh),以及 SMB 连接。已成功捕获:

# HTTP Beacon
IP: 192.168.31.56
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/606.1 (KHTML, like Gecko) JavaFX/8.0 Safari/606.1
Language: zh-cn,en-us;q=0.8,en;q=0.7

# NetNTLMv2 Hash (hashcat -m 5600)
Administrator::PC-20241022AZEN:aaaaaaaaaaaaaaaa:f3bfabebe9ac...:<blob>

原因分析 setJavaScriptEnabled(false) 仅禁用了 JavaScript 执行引擎,但 JavaFX WebView(底层 WebKit 606.1)的 HTML 标签解析、CSS 解析和外部资源加载功能完全独立于 JS 引擎,仍然正常运行。服务端返回的 basicInfo HTML 在传入 loadContent() 之前没有任何过滤。

数据流:

服务端响应(AES加密)→ 客户端AES解密 →&nbsp;JSON解析 →&nbsp;Base64解码basicInfo字段 →&nbsp;loadContent(原始HTML) →&nbsp;WebKit解析HTML标签 → 自动加载//

建议修复方案

方案一:HTML 标签白名单过滤(最小改动)

在 loadContent() 之前对 basicInfoStr 进行标签白名单过滤,仅保留格式化标签,移除所有带外部引用属性的标签:

// 在 MainWindowController.java 第&nbsp;192&nbsp;行之前添加 String sanitized = basicInfoStr .replaceAll("<(?!br|/br|font|/font|b|/b|i|/i)[^>]>",&nbsp;"") &nbsp;// 仅保留安全标签 .replaceAll("(?i)(src|href|data|background|style)\s=",&nbsp;"");&nbsp;//&nbsp;移除危险属性 webengine.loadContent(sanitized);

方案二:替换为纯文本渲染(推荐)

将 WebView 替换为 TextArea 或 Label,以纯文本方式展示服务端信息,从根本上消除 HTML 解析带来的攻击面:

// 替代方案:用 TextArea 代替 WebView
TextArea infoArea = new TextArea();
infoArea.setEditable(false);
infoArea.setText(basicInfoStr.replaceAll("<[^>]*>",&nbsp;"")); &nbsp;// 去除所有 HTML 标签

方案三(深度加固):阻止外部资源加载

如必须保留 WebView,通过自定义 WebEngine 配置阻止外部协议加载:

拦截 http://、https://、file://、ftp:// 等非 data: 协议的资源请求 或设置严格的 Content-Security-Policy:default-src ‘none’; style-src ‘unsafe-inline’ 补充说明 本 issue 以负责任披露的原则提交,目的是帮助项目改进安全性 该问题为 0-click 漏洞,操作者连接 WebShell 的瞬间即触发,无需任何额外交互 攻击前提是恶意服务端知道冰蝎通信密码(对于蜜罐/反制场景,密码由蜜罐设定,天然已知) 已开发完整 PoC 蜜罐脚本(Python),如需进一步的技术细节或 PoC 代码,请联系我

截图内容

github地址https://github.com/rebeyond/Behinder/issues/313

3. 如何使用好靶场

首先关注“好靶场微信公众号”然后发送bug,可以点击链接直接登录

4. 福利

福利1: 找到个人中心,邀请码输入0482d6d28539424c,白嫖14天高级会员。

福利2: 关注好靶场bilibili。拿着关注截图找到客服,领取5积分或者7天高级会员。

5. 每日限免

每日限免 为了能让更多的宝子可以免费的开启会员靶场,我们会在工作日随机开放一些靶场的限免,还请加群关注。

我们会在微信群、QQ群每天更新限免靶场,以及免费学习资料;任选一个群添加即可,所有的通知都会到位在交流群通知,请添加好友,我将邀请你加入“好靶场内部交流群”

6. 好靶场AI客服机器人

为方便学习还有提问,我们设计了好靶场Ai客服机器人,可以完成简单的客服能力,以及好靶场日常靶场提醒更新、根据你的询问推荐靶场

“噜噜大王”正式上线

大家点击左边的快捷工具,有一个AI助教功能,然后点开就可以和噜噜大王对话啦,由于是内测期间,仅限于年会员才可以进行使用。还需要进行微调,会随着大家的使用而进行优化;你可以尝试问一下关于打靶场的问题

🚀好靶场会员订阅

好靶场会员订阅 首先点击会员订阅 ,然后选择对应的套餐 ,选择对应的会员去支付 ,支付完成后即可会员到账


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:小叶Sec 《冰蝎 v4.1被爆,被恶意服务端利用实现 0-click 凭据窃取》

评论:0   参与:  0