小米路由器4A刷openwrt
目录
闲逛看到 openwrt 支持小米路由器 4A,并且现在 4A 的二手价格十分美丽,遂决定淘一个二手小米路由器 4A 刷 openwrt,解放目前在使用的树莓派。
Serial 刷机已不可用
我淘到的小米路由器 4A 生产时间是 2019.6
,固件版本为 2.18.51
。一开始,我按照 openwrt 官网给出的方法——拆机连接 serial。但是发现有两个问题:
- serial 连接的 TX 一直是高电平,无法发送数据给路由器,也就没有办法在出现启动选项时进行选择;
- serial 连接时给路由器上电,路由器不能正常启动,表现在启动时路由器电源灯应为橙色,但却是低亮度的蓝色,serial 收到一个字节数据后再无数据。这样当路由器上电、电源灯变为橙色后再连接 serial,也来不及在 “Erasing SPI Flash…” 后及时断开电源;
想来是小米在这个版本的固件里已经封堵了 serial 刷机。
利用远程代码执行漏洞刷机
几经周折后,在 github 发现了 acecilia/OpenWRTInvasion 这个项目。该项目利用小米路由器固件的漏洞 CVE-2019-18370 执行 shell 开启 telnet,在 telnet 连接中刷机。亲测 2.18.51
版本固件可以利用。
首先按照项目 readme 文件所述准备好运行环境,并需要让路由器有互联网连接。运行脚本时,需要填写路由器的 IP 地址和 stok 参数。stok 参数是一个认证 token,登录路由器管理 web,在 url 中可以获取。
telnet 开启成功后,使用 telnet 登录路由器,用户名为 root
,无密码。
进入 /tmp
目录,从 openwrt 官网下载最新固件(当前最新版本为 19.07.3)
|
|
为了保证不会刷成砖头,下载完成后验证文件 md5,结果应该是 3ff6d8a909cb24c6a5ccada57a894a26
|
|
刷固件(非常建议操作前先备个份)
|
|
完成后重启路由器,openwrt 就刷好了。
个人体验
和树莓派相比,4A 在 openwrt 的管理后台加载数据时要慢一些。但毕竟 4A 的配置和价格摆在那,还有 5G WiFi,总体来说还是比较满意。