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

132 天前
 tool2dx

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

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

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

3142 次点击
所在节点    宽带症候群
10 条回复
ysc3839
132 天前
看源代码直接用 IDA Pro 反编译呀,用文本编辑器当然看不到。
tool2dx
132 天前
@ysc3839 我在琢磨琢磨,arm 有点点难。
asm
132 天前
@tool2dx 能下载下来,能的话,上传上来大家一起看看~
oneisall8955
132 天前
会不会写到配置文件里面呢?/etc 目录相关文件看看?
povsister
132 天前
一般来说密码是按 mac 算的,不过你都能看到明文字符,大概率丢 ida 就出来了
Routeros
131 天前
亲测没开。
peasant
131 天前
试了一下,小米 AX3000T 开了 8883 端口
everything411
131 天前
简单看了一下逻辑,感觉这个服务是给无线 mesh 用的,启动的时候的逻辑和 mesh 都有关系
defaw
131 天前
home assistant 的 upnp 插件可以连小米的路由器,可能就是走的这个端口,可以去看一下那个插件的源码
tool2dx
131 天前
又讲究了一下,把用户名/密码提取出来了。

说一下我的方法,主要就是转发路由器本身的 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