网络安全Kali学习系列 · 第58篇

IoT 协议安全与硬件调试

UART / JTAG / SWD · MQTT · Modbus · CoAP
📋 本篇导读
  • 硬件调试接口:UART / JTAG / SWD
  • 常用 IoT 协议:MQTT / CoAP / Modbus
  • 协议安全测试工具与方法
  • Shodan 与 IoT 资产测绘

一、硬件调试接口

IoT 设备的 PCB 上通常留有调试接口,通过这些接口可以获取 Shell、提取固件、分析运行时数据。

1.1 UART 串口

项目 说明
引脚定义 TX(发送)、RX(接收)、GND(地)、VCC(电源,通常不用接)
常见波特率 9600 / 115200 / 38400 / 57600(115200 最常见)
所需工具 USB 转 TTL 模块(CH340G / CP2102 / FT232RL)
识别方法 找 PCB 上标有 TX/RX 的焊盘,或 4/5/6 pin 排针
Bash · UART 连接命令
1
2
3
4
5
6
# screen 方式(最简单)
screen /dev/ttyUSB0 115200
# minicom / picocom 方式
picocom -b 115200 /dev/ttyUSB0
minicom -b 115200 -D /dev/ttyUSB0

1.2 JTAG / SWD

接口 用途 常见引脚
JTAG 芯片级调试、Flash 读写、边界扫描 TCK / TMS / TDI / TDO / TRST / GND
SWD ARM 专用调试接口,引脚更少 SWCLK / SWDIO / GND / VCC
💡 调试器选择
J-Link(商业,功能强)、ST-Link(ST 芯片)、FT2232H(通用 USB 转 JTAG)、Black Magic Probe(开源 GDB 调试器)

1.3 Flash 芯片读取

Bash · Flash 读取工具
1
2
3
4
5
6
# flashrom(通用 Flash 读写工具)
sudo apt install flashrom
flashrom -p ch341a_spi -r firmware.bin
# CH341A 编程器(便宜好用,SPI Flash)
# 配合 SOIC8 测试夹免拆读取

二、常见 IoT 协议

2.1 协议对比

协议 端口 特点 常见风险
MQTT 1883 / 8883 发布/订阅,轻量级 弱口令、未授权访问、明文传输
CoAP 5683 (UDP) HTTP 简化版,UDP 传输 无认证、UDP 放大攻击
Modbus 502 (TCP) 工业控制协议,无认证 无认证无加密、可直接控制设备
ONVIF 80 / 554 网络摄像头标准协议 弱口令、信息泄露
UPnP 1900 (UDP) 即插即用设备发现 SSDP 放大、端口映射滥用

2.2 MQTT 安全测试

Bash · MQTT 测试命令
1
2
3
4
5
6
7
8
9
# 安装 mosquitto 客户端
sudo apt install mosquitto-clients
# 测试无密码连接(匿名访问)
mosquitto_sub -h 10.0.0.10 -t "#" -v
# -t "#" 订阅所有主题
# 发布消息
mosquitto_pub -h 10.0.0.10 -t "device/led" -m "on"

2.3 Modbus 安全测试

Python · Modbus 读取与控制
1
2
3
4
5
6
7
8
# pip install pymodbus
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('10.0.0.10', port=502)
client.connect()
result = client.read_holding_registers(0, 10)
print(result.registers)
client.close()

三、IoT 资产测绘

3.1 Shodan 搜索

Text · Shodan 常用搜索语法
1
2
3
4
5
6
7
# 搜索特定协议设备
port:1883 product:"MQTT" # MQTT 设备
port:502 modbus # Modbus PLC
port:554 has_screenshot:1 # RTSP 摄像头
"Server: ipcamera" # IP 摄像头
"title:路由器" port:80 # 家用路由器
"d-link" "admin" "password" # D-Link 设备

3.2 专用扫描工具

工具 功能 用途
nmap 端口扫描 + 服务识别 基础资产发现
masscan 高速端口扫描 大范围资产测绘
routersploit 路由器漏洞利用框架 路由器漏洞验证
iot-scanner IoT 设备专项扫描 IoT 设备识别

四、常见 IoT 漏洞类型

漏洞类型 典型场景 危害
默认弱口令 admin/admin、root/123456 等 直接接管设备
未授权访问 管理后台无认证、调试接口开放 信息泄露/控制
命令注入 Web 接口拼接到 shell 命令 远程代码执行
硬编码密钥 固件中写死 AES/WiFi/后台密码 批量设备被控
明文传输 MQTT/HTTP/Modbus 无加密 数据窃听/篡改
UPnP 端口映射 路由器自动将管理端口映射到公网 内网暴露到公网

五、小结

🔑 本篇要点
  • 硬件调试三大接口:UART(串口 Shell)、JTAG/SWD(芯片级调试)、Flash 直读
  • UART 最容易上手,找 TX/RX/GND 焊盘,USB 转 TTL 模块即可
  • 常见 IoT 协议:MQTT(1883)、CoAP(5683/UDP)、Modbus(502)、ONVIF、UPnP
  • IoT 协议普遍缺乏认证和加密,是最大的安全隐患
  • Shodan 可搜索公网暴露的 IoT 设备,常用搜索语法:port + product
  • IoT 最常见漏洞:默认弱口令、未授权访问、命令注入、硬编码密钥
下一篇预告
第 59 篇:Wi-Fi 审计 — aircrack-ng 套件
无线安全:WPA/WPA2 破解、监听、Deauth 攻击
网络安全Kali学习系列 · 第58篇 · IoT协议安全与硬件调试