win客户端黑盒挖掘"

admin 2026-10-22 01:37:31 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

win客户端黑盒挖掘

原创

鬼麦子
鬼麦子

鬼麦子

2024年5月6日 18:22
陕西

在小说阅读器读本章

去阅读

强烈建议各大厂商自查客户端内嵌Chrome版本号、沙盒开启情况!

最近白捡了几个因为Chrome低版本导致的RCE漏洞

基于上面两篇文章,进行实践以及细节讲述,主要内容:

win PC客户端黑盒如何判断内嵌Chrome版本以及沙盒开启情况,寻找客户端伪协议接口和客户端js接口,并且进行漏洞挖掘。

使用工具

  • Chrome
  • procexp.exe   进程资源管理器 查看进程信息
  • Chrome RCE exp   漏洞利用

  • http://192.168.72.6/chrome\_exp/1.html   <89的Chrome exp

  • http://192.168.72.6/chrome\_exp/2.html   <95的Chrome exp
  • http://192.168.72.6/chrome\_exp/3.html   便于调试的html页面,主要功能执行js。

  • Metasploit   漏洞利用工具

  • Fiddler  通过http/s请求包,查看程序Chrome版本

win客户端开发框架分类

  • Electron nodejs语言
  • QT框架  C++语言
  • CEF C/C++语言

本质还是功能既漏洞,发现功能是挖洞的第一步,很多时候使用这三种开发框架进行win客户端开发,都会有Chrome,我们主要侧重如何使得客户端里内嵌的Chrome页面变得可控。

示例

微信rce示例

用老版本微信,简单展示因为Chrome低版本导致的rce漏洞。

使用procexp进程管理工具,判断目标软件是否开启Chrome沙盒,以及Chrome内嵌版本情况。

WeChatWeb.exe --type=renderer --no-sandbox --client-id=wechat --disable-databases --primordial-pipe-token=CEE93D149A6809C561C64C4AB497AA75 --user-agent-extra=\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2875.116 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63010200)\" --lang=en-US --lang=zh-CN --locales-dir-path=\"C:\\Users\\010101~1\\AppData\\Roaming\\Tencent\\WeChat\\All Users\\CefResources\\2585\\locales\" --log-file=\"C:\\Users\\010101~1\\AppData\\Roaming\\Tencent\\WeChat\\log\\cef.log\" --resources-dir-path=\"C:\\Users\\010101~1\\AppData\\Roaming\\Tencent\\WeChat\\All Users\\CefResources\\2585\" --enable-pinch --device-scale-factor=1 --num-raster-threads=2 --content-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --mojo-channel-token=123EAEB84ACA38AF13AB31328578CE49 --mojo-application-channel-token=CEE93D149A6809C561C64C4AB497AA75 --channel=\"9464.1.217022444\\635529677\" --fix-fasa --mojo-platform-channel-handle=4140 /prefetch:1

如图所示,通过进程管理工具,发现该进程的参数存在 --no-sandbox ,以及UA版本是Chrome/53.0.2875.116,所以就存在因为内嵌Chrome版本较低,并且未开启沙盒,导致客户端RCE漏洞。

在实际该类漏洞挖掘中,第一步就是通过进程管理器,判断Chrome版本和沙盒开启情况,当然,有Chrome 0day的大佬不需要。

electron代码示例

伪协议

在目标客户端并没有类似微信这种社交功能时,可以考虑从别的方式入手,比如伪协议。

从代码层原理示例功能具体实现,以及挖洞思路,这里用electron简单开发了一个名为Nndercurrent\_No3.exe的应用程序。

向win注册表注册了一个名为myapp1的伪协议。

在实际黑盒挖掘中,可以直接用注册表搜索应用程序名来判断该程序是否存在伪协议。

如图就说明,该程序存在伪协议。

伪协议参数

接收通过伪协议传来的url参数值,并且用该客户端窗口打开这个url。

通过浏览器打开myapp1://?url=http://192.168.72.6/chrome_exp/3.html   就使得该应用程序跳转进设置的这个url页面,在这类漏洞实际挖掘中,大多数时候需要一个特定url域的xss或者url跳转,进行特权域检测绕过。

寻找伪协议参数,可以通过去该程序的web站点分析js,或者进行反编译逆向,或者在github进行搜索。

拿tg举例:

然后对这些参数进行安全测试。

漏洞挖掘

在打开该测试页面后。

  1. 如果如图UA显示Chrome版本低,并且有对应版本的Chrome exp,就可以试试Chrome的漏洞。

  2. 根据挖洞经验,electron都可以考虑进行node的命令执行试试,存不存在开发人员因为某些原因,可以直接执行nodejs命令执行的情况。

利用node系统库执行cmd命令const { exec } = require('child_process');exec('calc', (error, stdout, stderr) => {  if (error) {    alert(`Error executing command: ${error.message}`);    return;  }  if (stderr) {    alert(`Standard Error: ${stderr}`);  }  alert(`Standard Output: ${stdout}`);});
  1. 寻找客户端js接口

如该程序,我就注册了一个名为electronAPI的客户端js接口,在实际该类漏洞挖掘中,如何发现js接口,也有很多种方式。

  1. 打开该程序目录,寻找web类资源文件,发现js接口。
  2. 逆向反编译
  3. Fiddler全局http/s代理,发现内嵌页面的url,在js里找。
  4. 通过js脚本暴力盲测

遍历js,发现window对象的可疑接口

寻找客户端js接口var viewElement = document.getElementById('view');for (var key in window) {    if (window.hasOwnProperty(key)) {     var propertyValue = window.key;    var propertyText = key;    var propertyNode = document.createTextNode(propertyText);        viewElement.appendChild(propertyNode);    viewElement.appendChild(document.createElement('br'));    }}

发现了electronAPI这个接口,再进行下一步发现。

var viewElement = document.getElementById('view');for (var key in window.electronAPI) {  if (window.electronAPI.hasOwnProperty(key)) {    var propertyValue = window.electronAPI[key];    var propertyText = key;    var propertyNode = document.createTextNode(propertyText);    viewElement.appendChild(document.createElement('br'));    viewElement.appendChild(propertyNode);  }}

command这个字符就有价值进行盲测试一试。

window.electronAPI.command('calc')

End

整个流程,先判断目标软件是否是存在Chrome内嵌的情况,Chrome版本以及沙盒开启情况,并且内嵌的web页面是否可控,然后以上方式,或者其他方式进行功能发掘,之后分析这些功能是否存在安全漏洞,当然不止RCE,还有很多什么任意文件读取,uxss,信息泄露之类,win\mac\Android同理。


win客户端黑盒挖掘" 网络安全文章

win客户端黑盒挖掘"

该文档详细介绍了Windows客户端黑盒漏洞挖掘方法,重点分析如何通过进程管理器判断内嵌Chrome版本及沙盒开启状态,演示了通过伪协议接口和客户端JS接口实现页面控制的技术路径,并提供了Electron框架下的RCE漏洞利用实例。文档包含完整的工具链使用说明和实战案例,强调功能发现是漏洞挖掘的第一步,适用于各类客户端安全测试场景。
网络爬虫过程中5种网页去重方法简要介绍" 网络安全文章

网络爬虫过程中5种网页去重方法简要介绍"

本文简要介绍了网络爬虫中五种网页去重方法。为避免重复抓取导致效率低下,常用策略包括:1\\.将已访问的URL存入列表或数据库进行查询判断;2\\.使用集合(set)快速存储和查询,但内存占用较大;3\\.对URL进行MD5编码以压缩存储空间;4\\.采用bitmap方法进一步压缩内存,但存在哈希冲突风险;5\\.使用布隆过滤器(bloomfilter),通过多个哈希函数在减少内存的同时降低冲突概率,适用于大规模爬虫。
garak:给大模型做一次安全体检" 网络安全文章

garak:给大模型做一次安全体检"

本文介绍了NVIDIA开源的garak工具,它是一个用于系统性扫描大模型安全漏洞的评估套件,可在模型上线前探测其失败边界。文中详细阐述了LLM面临的六大安全威胁:提示注入、越狱、数据泄露、幻觉、毒性生成和错误信息。同时,文章解释了garak的核心工作流程,并提供了安装步骤与实战扫描示例,最后还对其与其他同类工具进行了对比。
蓝队AI研判平台" 网络安全文章

蓝队AI研判平台"

该文档介绍奇安信推出的蓝队AI研判平台`威胁分析数字专家v1.3.0`,该平台面向网络安全运维、应急响应和威胁狩猎场景,支持域名、IP、病毒样本、漏洞等多类型安全线索的一站式分析。平台具备自然语言交互、自动化任务拆解和多源证据综合研判能力,内置基础线索研判、漏洞风险管理、高级溯源取证等标准化模块,可提升安全事件处置效率。文档建议用户试用该免费平台。
评论:0   参与:  0