EMQX命令执行后渗透

admin 2025年5月19日17:14:37评论1 views字数 1013阅读3分22秒阅读模式

欢迎转发,请勿抄袭

        上一期说到EMQX后台插件命令执行,但是这个命令执行结果是无法回显示,那么如何通过暴露的mqtt服务进行利用呢?命令执行容易,后利用很难(出网情况就不用折腾了)。

        mqtt是一种轻量级的消息协议,专门用于在低带宽、不可靠网络或双方之间需要进行简单通信的场景下传输消息。用于物联网设备之间通讯。采用发布主题和订阅主题方式通讯。

利用方式一:

        使用mqtt协议将命令执行结果通过发布主题形式回显。使用python编写一个mqtt程序,采集执行的结果发布。同时订阅收到的命令执行。编译好的可执行文件,通过插件的方式上传并执行。将执行文件放到my_emqx_plugin/src

EMQX命令执行后渗透

并添加以下命令在命令执行处添加执行的命令。

EMQX命令执行后渗透

回到emqx后台管理,将刚编译好的插件上传执行,多数会提示失败(因为执行到rce那一步,会卡住下面的执行)但是目标程序已经运行。

EMQX命令执行后渗透

执行完后,在主页看到上线情况。

EMQX命令执行后渗透

可通过mqttx客户端进行连接对客户端进行操控利用。

EMQX命令执行后渗透

rce执行程序发布一个tx/test主题,订阅rx/test主题。mqttx则要相反,订阅tx/test主题,发布rx/test主题。

EMQX命令执行后渗透

到这一步已经实现了通过mqtt协议将命令执行结果回显。如果卸载不了插件,使用mqtt里面的命令执行起一个rce,再关掉插件起的rce,就可以卸载插件了。

EMQX命令执行后渗透

利用方式二:

        使用mqtt协议特性通过发布主题形式传输数据,达到内网穿透。我这里使用一个http代理去修改,因为http也是一个请求返回一个响应。服务端httpserver->httpserver-mqtt,客户端httpclient->httpclient-mqtt。流程图

EMQX命令执行后渗透

编译好可执行文件,将httpserver和httpserver-mqtt通过插件方式上传到目标机器。

EMQX命令执行后渗透

使用利用方式一中的命令执行功能,将可执行文件执行。

EMQX命令执行后渗透

EMQX命令执行后渗透

此时还没运行可以看到只有两个连接,添加一个1.sh的文件。目的是为了两个可执行文件同时执行。

EMQX命令执行后渗透
EMQX命令执行后渗透

执行1.sh后,会将server和servertomqtt的两个个可执行文件执行。通过面板发现已经成功运行。

EMQX命令执行后渗透

使用连接客户端进行连接访问隧道。

EMQX命令执行后渗透

成功通过隧道代理访问里面内部资源,默认172.17.0.1为宿主机器ip。

EMQX命令执行后渗透

mqtt数据流

EMQX命令执行后渗透

EMQX命令执行后渗透

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

原文始发于微信公众号(sec0nd安全):EMQX命令执行后渗透

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月19日17:14:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   EMQX命令执行后渗透http://cn-sec.com/archives/4042772.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息