mqtts 介绍
mqtts 介绍
背景介绍
最近在学习车联网相关知识,碰巧媳妇公司CTF题目中有一道车联网的题目,题目方向是MQTT,正好可以深入研究一下。
mqtts介绍
mqtts是一款mqtt安全测试工具,github地址:https://github.com/SPuerBRead/mqtts
主要功能包括如下:
- 匿名登陆 (批量)
- emqx embox_plugin_template
- 任意用户名密码登陆 (批量)
- 用户名密码爆破 (批量)
- 获取服务端信息
- 尽可能获取所有topic信息
- 获取证书信息
使用
支持协议类型
- TCP
- SSL
- WS
- WSS
使用说明
自动探测(包含匿名登陆、任意用户名密码登陆、用户名密码爆破,此处爆破使用的是内置密码字典)
./mqtts -t 127.0.0.1 -p 1883 -au
比如EXMQ默认允许匿名登录,测试结果如下:
指定字典,不指定字典会从本地自动加载username.txt和password.txt两个文件。./mqtts -t 127.0.0.1 -p 1883 -b -nf username.txt -pf password.txt
获取服务端信息
./mqtts -t 127.0.0.1 -p 1883 -s
获取topic信息
./mqtts -t 127.0.0.1 -p 1883 -ts -w 60
批量测试
./mqtts -tf ./target.txt -au
其他参数见 ./mqtts -h
批量扫描文件格式(空格分割,*必填项)
*host *port protocol clientId username password
实际测试
1、通过端口扫描,发现目标开放1883端口,使用NMAP等进行端口扫描
功能强大的nmap是支持MQTT协议的识别的,可以直接通过nmap进行识别MQTT协议。另外,除上面提到的默认端口外,有的管理员会修改默认端口,这时也可以尝试1884,8084,8884等临近端口以进行快速探测,或前面增加数字等作为组合,如果针对单个目标,则可以探测全部端口。如果进行大规模的扫描或者提升扫描效率,则可以使用masscan、zmap、RustScan等先进性端口扫描,在使用nmap进行协议识别即可。
nmap举例命令如下:sudo nmap -p1883,8083,8883 -sS -sV --version-intensity 9 -Pn --open target_ip
2、使用mqtts测试目标
爆破没啥可以讲解的了,就看谁的字典强大了,也可以使用mqtts内置的用户名和密码字典。
3、该项目多年没有维护了,对于topic,获取服务信息已经无效,个人测试的mqtt服务端是EMQX,仅供参考。
参考
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!