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