每一个小米路由器,都会开放 TCP 8883 端口,可惜认证通不过,只能看不能用,好气!

2024-08-18 15:11:33 +08:00
 tool2dx

这是一个 MQTT 的订阅式服务,默认端口都是打开的,可以查询和订阅路由器当前流量数据之类的。

但是,它启动配置文件里,嵌入了一个小米二进制的用户认证插件,叫 libmqtt_auth_plugin.so ,猜不到用户名和密码.

用文本编辑器查看,有一些 miwifi_gen_random/miwifi_gen_sha/miwifi_get_wl_mac 名字的函数,完全查不到源代码,真是遗憾。

3546 次点击
所在节点    宽带症候群
10 条回复
ysc3839
2024-08-18 15:30:22 +08:00
看源代码直接用 IDA Pro 反编译呀,用文本编辑器当然看不到。
tool2dx
2024-08-18 16:23:06 +08:00
@ysc3839 我在琢磨琢磨,arm 有点点难。
asm
2024-08-18 16:36:35 +08:00
@tool2dx 能下载下来,能的话,上传上来大家一起看看~
itechify
2024-08-18 17:25:52 +08:00
会不会写到配置文件里面呢?/etc 目录相关文件看看?
povsister
2024-08-18 17:28:30 +08:00
一般来说密码是按 mac 算的,不过你都能看到明文字符,大概率丢 ida 就出来了
Routeros
2024-08-18 20:29:34 +08:00
亲测没开。
peasant
2024-08-18 20:35:50 +08:00
试了一下,小米 AX3000T 开了 8883 端口
everything411
2024-08-18 20:41:46 +08:00
简单看了一下逻辑,感觉这个服务是给无线 mesh 用的,启动的时候的逻辑和 mesh 都有关系
defaw
2024-08-18 21:27:39 +08:00
home assistant 的 upnp 插件可以连小米的路由器,可能就是走的这个端口,可以去看一下那个插件的源码
tool2dx
2024-08-19 10:20:56 +08:00
又讲究了一下,把用户名/密码提取出来了。

说一下我的方法,主要就是转发路由器本身的 8883 端口握手流量,到 PC 上解密,然后查看用户名/密码,由于 MQTT 是明文,只要把 SSL 卸载了,很容易看到明文。

第一步,转发路由器本机流量到内网 PC
iptables -t nat -A OUTPUT -p tcp --dport 8883 -j DNAT --to-destination 192.168.2.8:443

第二步,启动 PC 上的 SSL 调试程序,载入 mqtt 对应的自签名 ca 和 rsa key
ca 文件和证书/密钥都在/etc/mosquitto/mosquitto.conf

第三步,等待路由器的内置客户端来连接
我这里是/usr/sbin/xq_info_sync_mqtt, 重启一下就会自动连接

第四步,导出明文。MQTT 有三个,分别是 clientid, username, password, 导出如下:
xq_cap_192.168.2.1
XQd2hbROOjxchXJY_FFFFFFFFFF_CED843CAFA26
X7NO7ri3D+LhJNIay6osoHm0mlYi0vWDXtocGWKsq0GtqWNKBJE4cTLwhb2TQU2n6uWYAJSwIpL8kJvIzByhnQQ==

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1065871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX