MQTT 协议
测试工具
MQTT-PWN
仓库太久没更新,很多依赖只能在 Python 3.6 下安装,并且还需要 PostgreSQL 数据库才能启动,所以使用 Docker 部署启动最快捷省事,由于安装过程比较复杂这里记录一下
安装
- 克隆仓库
git clone https://github.com/akamai-threat-research/mqtt-pwn.git - 修改
Dockerfile文件
因为jessie版本已经停止支持,所以需要修改源为archive.debian.org- 在 RUN apt-get update 前加入如下代码:
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && echo "deb http://archive.debian.org/debian/ jessie main" >/etc/apt/sources.list && echo "deb-src http://archive.debian.org/debian/ jessie main" >>/etc/apt/sources.list && echo "deb http://archive.debian.org/debian-security jessie/updates main" >>/etc/apt/sources.list && echo "deb-src http://archive.debian.org/debian-security jessie/updates main" >>/etc/apt/sources.list - 在
apt-get install后添加--force-yes
修改后Dockerfile如下:
FROM python:3.6-jessie RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && echo "deb http://archive.debian.org/debian/ jessie main" >/etc/apt/sources.list && echo "deb-src http://archive.debian.org/debian/ jessie main" >>/etc/apt/sources.list && echo "deb http://archive.debian.org/debian-security jessie/updates main" >>/etc/apt/sources.list && echo "deb-src http://archive.debian.org/debian-security jessie/updates main" >>/etc/apt/sources.list RUN apt-get update RUN apt-get install --force-yes software-properties-common less vim -y ENV INSTALL_PATH /mqtt_pwn RUN mkdir -p $INSTALL_PATH WORKDIR $INSTALL_PATH COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . - 在 RUN apt-get update 前加入如下代码:
- 构建 mqtt-pwn
docker-compose up --build --detach - 运行 mqtt-pwn
docker-compose run cli

Nmap
MQTTX
常见攻击点
未授权订阅
可以使用 nmap 的脚本对端口进行探测
nmap <主机> -p1883 --script=mqtt-subscribe.nse
如不存在未授权订阅结果为
PORT STATE SERVICE
1883/tcp open mqtt
|_mqtt-subscribe: Connection rejected: Not Authorized
存在未授权订阅则会显示
PORT STATE SERVICE
1883/tcp open xxx version x.x.x
| mqtt-subscribe:
| Topics and their most recent payloads:
| ……
|_ ……
如:

暴力破解
bruteforce --host <主机> --port <端口>

connect -o 192.168.111.131 -u test -w test
参考
Welcome to MQTT-PWN! — MQTT-PWN 1.0 documentation
记录一次对MQTT协议的渗透测试经历 - spmonkey
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。