这是一个 MQTT 的订阅式服务,默认端口都是打开的,可以查询和订阅路由器当前流量数据之类的。
但是,它启动配置文件里,嵌入了一个小米二进制的用户认证插件,叫 libmqtt_auth_plugin.so ,猜不到用户名和密码.
用文本编辑器查看,有一些 miwifi_gen_random/miwifi_gen_sha/miwifi_get_wl_mac 名字的函数,完全查不到源代码,真是遗憾。
1
ysc3839 95 天前 via Android 1
看源代码直接用 IDA Pro 反编译呀,用文本编辑器当然看不到。
|
4
oneisall8955 95 天前
会不会写到配置文件里面呢?/etc 目录相关文件看看?
|
5
povsister 95 天前 via iPhone
一般来说密码是按 mac 算的,不过你都能看到明文字符,大概率丢 ida 就出来了
|
6
Routeros 95 天前
亲测没开。
|
7
peasant 95 天前
试了一下,小米 AX3000T 开了 8883 端口
|
8
everything411 95 天前
简单看了一下逻辑,感觉这个服务是给无线 mesh 用的,启动的时候的逻辑和 mesh 都有关系
|
9
defaw 95 天前
home assistant 的 upnp 插件可以连小米的路由器,可能就是走的这个端口,可以去看一下那个插件的源码
|
10
tool2dx OP 又讲究了一下,把用户名/密码提取出来了。
说一下我的方法,主要就是转发路由器本身的 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== |