EMQX后台插件命令执行

EMQX后台插件命令执行

原创 yudays yudays实验室 2025-04-09 22:56

欢迎转发,请勿抄袭
        EMQX(简称 EMQ)是一款完全开源、高度可伸缩且高可用的分布式 MQTT 消息服务器。它不仅支持 MQTT 协议,还支持其他 IoT 协议如 CoAP/LwM2M 等,适用于物联网(IoT)、机器对机器(M2M)通信以及移动应用程序。常用于物联网设备与web控制的系统。

前置条件

1、有账号密码

2、版本<5.8.6 版本

靶场制作

准备一个EMQX环境,本次测试环境使用docker部署。

docker pull emqx/emqx-enterprise:5.5.1
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

运行容器后访问
http://ip:18083
登录页面如下:

使用默认口令admin/public(提示密码需要修改,点击跳过即可)

可根据左下方确认版本。

制作恶意插件

以kali系统镜像制作编译插件环境

1、配置网络代理,需要下载依赖

export http_proxy=http://192.168.160.1:10809
export https_proxy=http://192.168.160.1:10809

2、安装相关软件以及依赖

sudo apt update
sudo apt install -y build-essential autoconf libncurses5-dev libssl-dev libwxgtk3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev cmake
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
source ~/.bashrc
asdf --version

3、安装erlang、rebar3

asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
asdf install erlang 25.3
asdf global erlang 25.3
wget https://s3.amazonaws.com/rebar3/rebar3
chmod +x rebar3
sudo mv rebar3 /usr/local/bin/

4、创建插件

rebar3 new emqx-plugin my_emqx_plugin

5、修改恶意执行脚本

vim my_emqx_plugin/src/my_emqx_plugin.erl

6、编译插件并复制出来

make -C my_emqx_plugin rel

cp my_emqx_plugin/_build/default/emqx_plugrel/my_emqx_plugin-1.0.0.tar.gz .

7、执行恶意插件

将刚才生成的恶意插件上传到后台,并启动插件。

执行完后到服务器查看tmp目录

tis:高版本默认不开启插件安装功能。安装什么插件就得执行允许安装什么插件的命令。

参考:

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

文章声明:该工具、教程仅供学习参考,请勿非法使用。否则与作者无关!