视频教程

youtube播放地址:https://youtu.be/4AnapDDMlyI
参考博文:https://0xf4n9x.github.io/2022/10/20/clash-unauth-force-configs-csrf-rce/index.html

视频文稿(忽略)

当你通过Clash或者Clash.meta进行科学上网的时候
不小心打开了这个网址
网址跳转到了百度首页
你感觉什么事情都没有发生
但实际上你的电脑可能已经中了木马病毒
被我控制了
本期就来讲讲
不安全的Clash配置会导致什么问题
以及如何安全的配置使用Clash
1月份的时候
clash for windows出了一个RCE漏洞
当时我也发视频提醒大家要提高警惕
其实上个视频的漏洞
clash内核也有一半的责任
因为是clash的路径穿越
导致clash for windows的配置文件被覆盖
这个漏洞可以在任何clash有权限的位置写入文件
会造成一些安全问题
由于是内核漏洞
Windows Linux MacOS
只要是使用clash内核通通都中招了
要比我们之前视频中演示的
只针对clash for windows的漏洞更严重
4月16号 clash发布了一个小版本更新
修复了路径穿越的漏洞
但很多人并没有意识到这个安全问题
可能不会升级到新版本
所以还是有必要出个视频给大家提个醒
另外clash.meta是clash的分支项目
所以也存在路径穿越的漏洞
并且clash.meta目前还没有修复
不当的配置很容易被攻击
大家需要提高警惕
上期漏洞演示光弹个计算器
大家感受不到威胁
这次给大家实际演示一下
漏洞被利用后会有什么样的危险
我们就以还没有被修复的clash.meta为例
我开了两台虚拟机
左边是受害者
右边是攻击者
受害者使用的代理工具是clash Verge
这是clash.meta常见的GUI界面
和clash for windows类似
只配置了一个机场订阅
其他都是按软件默认设置使用的
Verge是1.3.2最新版
默认使用的内核是Clash
4.16是已经修复漏洞的版本
不过我相信大家既然已经使用Verge
应该会选择Meta内核
所以我们先将内核切换为clash.meta
假设我是攻击者
给你发了一条普通的网址链接
网站的内容可以自定义
可能会非常劲爆
也可能只是一个简单的跳转
总而言之 我会通过一些话术诱导你点击
即使你有一定的网络安全意识
也会觉得只是打开一个网页
并不会有什么危险
于是你打开了网站 跳转到了百度首页
你并没有感觉到任何异样
但其实你的电脑已经通过Clash
偷偷下载了一段恶意指令
这段恶意指令将会在你运行powershell
或者重启电脑后自动执行
并且软件代理界面也被篡改为系统被入侵的字样
假设此时在我的诱导下
你打开了powershell
窗口一闪而过
恶意指令已经被执行
我的远程控制软件将会收到你的上线提示
此时你就已经中了木马病毒
你的一举一动完全在我的掌控之中
我可以利用远程控制软件
给你的电脑发送指令
按照惯例先给你弹个计算器
也可以监控你的电脑屏幕
并且可以对你的电脑进行控制
由于分辨率的原因
鼠标位置有点不对
忽略这个细节
还可以随意浏览你电脑里的文件
包括上传下载文件
是不是觉得挺恐怖的
确实很恐怖
如果你的电脑安装了杀毒软件
这些高风险的行为会被拦截
但这种情况已经非常危险了
说明病毒已经到了家门口
万一绕过了杀软没被拦截到就中招了
所以不能完全依靠杀软
最好是从根源解决问题
造成这个问题的根源
就是clash内核的路径穿越漏洞
由于clash可以通过RESTful api来控制内部设置
并且支持CORS
CORS意为跨域资源共享
也就是不同的域名可以共享相同的资源
导致可以在任何网站上调用Clash的API
但这并不是缺陷
而是为了方便我们使用WEBUi
比如Clash官方的dashboard或者yacd
你能直接在网站上配置Clash得益于CORS
但是CORS也容易造成跨域攻击
dashboard网站可以调用API
我随便做一个网站当然也可以调用了
网页在跳转到百度之前
先调用了Clash更换配置文件的API
你电脑里的Clash会加载我网站里的配置文件
而我的配置文件里包含了Proxy Provider
也就是节点提供者
Clash将会去这个网址里面下载节点信息
而这个网址里面除了有节点信息
还有我精心构建的恶意指令
到这一步其实都没有太大问题
因为光下载了恶意指令
没有执行的话并不会中招
问题就出在clash的路径穿越漏洞
这些恶意指令可以被下载到电脑里的任何位置
比如开机自启的位置
或者powershell的默认配置位置
当你重启电脑或者打开powershell的时候
就会自动加载恶意指令
这样就中病毒了
知道了问题所在
那么要怎么防止这个问题呢
最简单的方式就是升级clash内核到最新版本
因为最新版已经修复了该漏洞
但如果你使用的是clash.Meta
由于还没有修复该漏洞
需要通过设置来防止跨域攻击
实施跨域攻击的前提是可以访问你的clash API接口
我们只需要让攻击者访问不到接口就行了
进入设置页面
点击外部控制 9090就是API的访问端口
默认都是9090
我们只需要将默认端口改成其他端口
就能阻止绝大部分的跨域攻击了
如果你担心端口被扫到
还可以设置API的授权密码
这样基本上就能完全杜绝跨域攻击
如果你使用的是clash for windows
那么只需要点击这里
将内核升级到最新版本即可
如果你有特殊情况不想升级
也可以修改API接口防止被跨域攻击
来到设置页面
开启随机API接口
默认情况下应该已经自动开启了
更进一步
可以点击这里生成授权密码
这样就算是配置好了
即使使用有漏洞的版本
也无需担心跨域攻击
如果你有在使用我的节点测速工具nodesCatch
在使用clash内核进行测速的时候
会出现401未授权错误
这是因为我的测速软件没有单独设置配置目录
共用了clash的配置
但测速的时候又没有填写密码
就会造成未授权错误
这个问题要解决很容易
但不幸的是最后一版源码被我弄丢了
以后也不会再有更新了
所以如果你要使用测速工具的话
就不要设置授权密码
另外我当时说的最极端的情况
指的就是跨域攻击
当时觉得问题不大
但是路经穿越漏洞是我没有预料到的危害
还有一些朋友不使用GUI
而是直接调用clash内核
这种情况也很多 尤其是Linux用户
用clash做透明网关
这些用户需要手动修改配置文件里的外部控制
端口和授权密码
总之目的就是不要让别人能轻易访问到你的clash API接口
安全这方面多重视都不为过
很多人的安全意识非常薄弱
所以电信诈骗才会那么猖獗
如果你认为是制造焦虑的话
看完下面这个情况就不会这么认为了
打开这个链接
搜索出了8,000多条结果
这些是什么
是在公网开放的clash API的肉鸡
我敢肯定 这些人99.9%没有升级到最新版
所以大部分都存在路径穿越漏洞
而且由于暴露在公网环境下
根本就不需要诱导他们去点击什么链接进行跨域攻击
可以直接通过API提交恶意指令到服务器
这个我就不演示了
我并不是教大家怎么去入侵
而是让大家提高网络安全意识
如果你有在VPS或者家里的Linux设备上使用clash
注意检查有没有在公网暴露API接口
如果你平时没注意的话
这个列表中很有可能就有你的服务器
这些暴露了接口的服务器
我们可以简单的查看到它的clash相关配置
比如节点信息
或者日志信息
另外还有一定存在路径穿越漏洞的clash.meta
同样也有700多条结果
这些对于黑客来讲都是任人宰割的肉鸡

最后修改:2023 年 06 月 04 日 09 : 06 AM