最近刚把家里的主路由器换成了红米 AX5,不得不说新团队做的路由器确实比老团队好用不少,我也因此成功用上了 WiFi 6.
期间换下来的小米路由器 3C 因为信号稀烂,网速慢 balabala,反正就是垃圾一个。
方案是跟小米路由器青春版相同的 MT7628AN 。性能肯定不指望了,不过刷好 padavan 以后应该可以给酷播云当 AP 用,或者给我的 Switch 当加速器用也行。
准备工作
相关路由器
首先需要准备一个能联网的路由器作为上级路由(因为要在路由器上下载文件),且因为必须要在路由模式下才能破解(中继模式不行),所以这里我使用老早就刷了 padavan 的小米路由器青春版作为上级路由,其中青春版接在 LAN 口,3C 接在 WAN 口(小孩开大车(大雾
PS:图中为错误示范,请注意
出了个意外,那根白色的供电线接触不良差点出事,现已换线。
系统
准备一个 Linux 发行版环境(推荐物理机,虚拟机也行,WSL 听说也可以),多数建议 Ubuntu 但因为我使用的是 Manjaro,这里只提供 Arch 系的教程。
开始
路由器
首先先在路由器上这台,3C 上将固件降级到 2.9.217 开发版或者 2.14.45 稳定版(低于这个版本的刷到这个版本,好像不用刷也行),用于利用漏洞开出 telnet 。
然后改为路由模式(中继模式开不出 telnet)
我直接重置了用户数据,避免出现各种奇奇怪怪的 bug 。
最后将电脑连接到需要刷机的小米路由器上。
Linux
安装 Python 3(有些教程里是说需要 Python 3.6,实测我现在用的 3.9.1 也可以)
pacman -S python # Arch 系中默认为 python3
然后克隆 OpenWRTInvasion 项目并安装依赖(如果经常编译的话可能已经安装了所需要的依赖)
git clone https://github.com/acecilia/OpenWRTInvasion
cd OpenWRTInvasion
pip3 install -r requirements.txt
依赖安装完毕后运行
python3 remote_command_execution_vulnerability.py
填入路由器管理后台地址,小米路由器默认的后台地址为 192.168.31.1
,可以直接回车默认。
接下来则是输入 stok
值,此时进入小米路由器后台,登录后这个值可以在地址栏找到。
输入完毕后回车确认,如果能够连接一般稍等片刻提示你输入账号密码,默认账号:root,密码:root 。
一般此时就可以通过 telnet 访问路由器的远程终端了,但如果提示 Connection refused.
或者为 code:1629
请往下接着看。
(放心吧这里我也被坑了一天)
由于国内网络环境的原因,GitHub 的 Raw 是被和谐掉的,也就没有办法通过路由器来下载所需要的文件。
(当然你可以选择在上级路由挂梯子来解决,但我的不知道为什么挂梯子没有效果)
但由于所需要的文件也仅仅只是保存在项目仓库中,所以在本地启动一个 Web 服务器也可以达到相同的效果。
看到这里你是不是想把 NGINX 拿出来现场开一个 Web 服务器了?这地方用 NGINX 太麻烦了,没必要。只需要通过 Python 自带的 SimpleHTTPServer 在当前目录现场开一个 Web 服务器就行:
#Python 2
python -m SimpleHTTPServer 8080
#Python 3
python3 -m http.server 8080
注:Python 2 与 Python 3 的启动方式并不一样,请注意版本区别。
然后在仓库目录中找到 script.sh
修改第 27 行和第 54 行代码:
# 第 27 行
curl -L "https://(device IP):8080/script_tools/busybox-mipsel" --insecure --output busybox
# 第 54 行
curl -L "https://(device IP):8080/script_tools/dropbearStaticMipsel.tar.bz2" --output dropbear.tar.bz2
其中 device IP 为你所使用的电脑的局域网 IP 地址,如果开启 Web 服务器时端口被占用可以更换端口,只需要在相对应的位置修改即可。
刷机
现在通过命令行进入 Telnet:
telnet 192.168.31.1
输入账号:root,密码:root
不习惯 Telnet 也可以使用 SSH
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -o UserKnownHostsFile=/dev/null root@192.168.31.1
密码:root
输出内容为这些说明成功进入:
成功进入路由器命令行后首先需要备份 EEPROM,稍后会用到,如有必要请一定要保存好(DLC):
首先查看路由器的分区:
cat /proc/mtd
然后找到 Fatcory
将该分区备份为 eeprom.bin
(我发现备份错了,发现的时候 MAC 和 SN 已经没了,悲)(现在正在苦逼得恢复 MAC 地址,反正也不准备刷回原版了)
dd if=/dev/mtd3 of=/tmp/eeprom.bin
mtd3
并不一定是 EEPROM 分区,具体请以路由器为准
然后通过 WinSCP 或 FileZilla 等支持 FTP 协议的软件将 eeprom.bin
取出(位于 tmp
目录下,文件较多请耐心寻找):
然后回到路由器的终端,下载 breed:
cd /tmp
wget --no-check-certificate https://breed.hackpascal.net/breed-mt7688-reset38.bin
mv breed-mt7688-reset38.bin breed.bin
如果 wget 无法下载,也可以在你当前的电脑手动下载,然后将文件名更名为 breed.bin
后通过 WinSCP 或 FileZilla 上传到 tmp
目录下。
确认 EEPROM 备份成功后,刷入 breed:
mtd write breed.bin Bootloader
确认 breed 刷入成功后拔下路由器电源,并将路由器网线从 WAN 口接到 LAN 口,另一端接到电脑上,按住 Reset 按钮(用牙签、卡针等尖细工具捅写有 Reset 的孔)后通电,按住 5-10 秒后松开,进入 breed,此时路由器指示灯不亮。
(Linux 环境中出了点意外,转为 Windows 环境)
打开浏览器输入 192.168.1.1
进入 breed 控制台:
点击固件更新,勾选 EEPROM 后选择先前备份的 eeprom.bin
上传并确认更新。
此时不需要重启,回到 breed 控制台,勾选固件,选择 MI-3C_3.4.3.9-099.trx
,上传并确认更新,中途不能断电不能关机,刷入完成后会重启路由器,此时查看路由器指示灯,若为蓝色说明开机成功。
使用
在浏览器输入 192.168.2.1
,输入用户名和密码。
该固件默认用户名:admin
默认密码:admin
默认 SSID:MI-3C_0000
默认 Wi-Fi 密码:1234567890
进入系统管理 --> 配置管理,分别点击 路由器设置 (NVRAM)
下 恢复出厂设置
的重置按钮和路由器内部存储 (/etc/storage)
下 恢复出厂设置
的重置按钮,进行双清:
最后请享用这个固件(信号差是硬伤,没得救)。
下载
由于参考资料中的固件版本较旧,我自己编译了一版固件,可以正常使用,该固件源码来自 hanwckf/rt-n56u,与 hiboy 等维护者的固件有所区别,同时该固件是以默认配置文件编译,功能较少,如有需求可结合该项目在 /rt-n56u/trunk/configs/templates/MI-3C.config
中修改后自行编译。
蓝奏云(包含我个人编译的固件、原版 2.9.217 开发版固件、原版 2.14.45 稳定版固件:
https://liaronce.lanzout.com/b00o7v8qh
密码:1a51
目前已经发现的问题
1 、由于没有为 3C 针对性的配置,路由器在后台关机后指示灯依然为蓝色,需手动断电
后续
2021-01-17 22:16:手动输入路由器背后的 MAC 地址后能够正常上网,有线连接和无线连接均正常,但 SN 是真找不回来了,算了反正不准备用回原版固件了(原版固件太垃圾了)
参考资料
https://www.right.com.cn/forum/thread-4017759-1-1.html
https://www.right.com.cn/forum/thread-4036056-1-1.html
https://github.com/acecilia/OpenWRTInvasion/blob/master/README.md
Comments 4 条评论
博主 2468856286
下载链接进不去了,可以重新给一个么
博主 正在摸鱼的 LiarOnce
@2468856286 很抱歉现在才看到回复,链接已更新:
https://liaronce.lanzout.com/b00o7v8qh
密码:1a51
博主 Atsunori
可以在 padavan 的固件加一个可以用 v2ray 的功能吗?恩山论坛的那个只能用 SS
博主 hank9999
我直接拆的 flash|´・ω・)ノ
编程器刷的
我还有个小米路由器 3,硬改的 spi