小米路由器4A千兆版刷openWRT保姆级教程

环境

  • 电脑 Win/Mac/Linux
  • 小米路由器4A 千兆版
  • Python3 环境
  • 网线

工具&固件

下面演示用到的工具和固件都可以在文末打包获取。

  • OpenWRTInvasion

    针对多款小米路由器的 root shell 漏洞:4A 千兆、4A 百兆、4C、3Gv2、4Q、miWifi 3C……

  • Breed(不死鸟)

    Breed 是由 HackPascal 开发的 Bootloader(引导装载程序),最大的特点是支持通过访问网页刷机,刷机失败后可以直接重置而不会导致机器变砖。

    小米路由器4A 使用的 CPU 是 mt7621,可以在 https://breed.hackpascal.net/ 下载,名称为 breed-mt7621-pbr-m1.bin

  • openWRT

准备Python3

去Python官网下载安装Python3,

安装完Python后执行安装pip和需要的依赖

python3 -m pip install --upgrade pip  # 升级最新的pip
pip install pycryptodome
pip install requests

刷机

1.开启SSH

需要先开启路由器的 SSH,小米的固件只有开发版支持 SSH,但是现在所有的版本基本都不会放出开发版;所以只能通过破解的方式开启(开启后不支持保修);

因为小米路由器系统存在 CVE-2019-18370 漏洞,所以可以通过该漏洞开启 SSH;需要使用项目 acecilia/OpenWRTInvasion 提供的脚本工具,我已经下载好放链接🔗里了,当然有Git环境也可以自己从项目 acecilia/OpenWRTInvasion 拉取;

  • 获取最新工具(直接用博主提供的懒人工具包的可忽略此步)
git clone https://github.com/acecilia/OpenWRTInvasion.git
  • 安装依赖
cd OpenWRTInvasion
pip3 install -r requirements.txt
  • 执行脚本

    通过 WiFi 或有线的方式连接到路由器,然后进入命令行,执行以下命令,运行 remote_command_execution_vulnerability.py 脚本;执行脚本时需要输入路由器的地址和后台访问密码;地址如果没有改动默认就是 192.168.31.1,或者访问 miwifi.com也可以直接访问到;如果选择了离线模式,会在本地启动一个 ftp server

  • 登录

开启SSH访问权限后我们在命令行执行telnet登录,用户名密码都是root

telnet 192.168.31.1
# 通过ssh也可 ssh root@192.168.31.1

2.备份原厂固件

在开刷之前我们一定要先对设备的原厂固件进行备份,防止后期变砖或者无法刷回小米路由。

cat /proc/mtd&&dd if=/dev/mtd0 of=/tmp/all_backup.bin
#或者依次执行下面命令 自选备份Bootloader和eeprom
cat /proc/mtd
dd if=/dev/mtd0 of=/tmp/all_backup.bin
dd if=/dev/mtd1 of=/tmp/Bootloader.bin
dd if=/dev/mtd3 of=/tmp/eeprom.bin

执行后文件会存在tmp目录,备份all_backup.bin文件,大小约为16M,非常重要,后面如果恢复原厂固件需要用到!!!

3.刷入breed(不死鸟)

上传breed-mt7621-pbr-m1.binftp://192.168.31.1/tmp/

对比MD5

cd /tmp
md5sum breed-mt7621-pbr-m1.bin

期望MD5:24e62762809c15ba3872e610a37451a3**,如果不一样请重新上传文件,防止变砖刷不回!

确认以上步骤!至少备份固件 all_backup.bin 16MB !上传 breed.bin 均完成后!

刷入breed!在telnet中输入 mtd write /tmp/breed-mt7621-pbr-m1.bin Bootloader 这一步完成后会断网,很快。需要用网线,将网线插入wan口(你原来光猫接到路由器的口,拔下来用连电脑的网线插进去)在浏览器中输入 192.168.1.1 ,如果能进入breed后台,就可以随便造了。

如果没能进入breed后台,请将路由器断电,先按住复位键不放,然后路由器通电,等5到10秒钟松开复位键,浏览器输入192.168.1.1就能进入breed后台,以后想换固件也是这样进。

4.刷openWRT

在刷入openwrt前,我们先在固件备份中备份 编程器固件 以及 EEPROM!然后点固件更新->常规固件,选择固件(你准备好的openwrt.bin固件或其他固件),选择你刚刚备份的 EEPROM 文件,这两个选好后,点上传,等待上传完成后会自动重启,在浏览器输入192.168.31.1等着就行。接下来的用户名和密码大概率为 root/password 如果不对,请询问固件作者。

至此,恭喜你的设备已成功刷完openWRT!!!

刷回官方

将连接电脑的网线插入路由器wan口,将路由器断电,然后按住复位键不放,路由器通电,等5到10秒钟松开复位键,浏览器输入192.168.1.1进入breed后台。选择固件更新->编程器固件,选择上文备份的 all_backup.bin 16MB 确认勾选自动重启,取消勾选保留现有Bootloader,取消勾选 保留现有EEPROM 点上传,等待一会后,192.168.31.1会变回原来的小米路由器后台,并且失去breed,如果想再刷需要重新解锁telnet以及重新刷入breed

OpenWRT固件源相关

  • OpenWRT

    一般情况都安装 OpenWRT 或者是魔改后的 OpenWRT,小米路由器本身也是魔改的 OpenWRT。
    OpenWRT官网下载地址:https://downloads.openwrt.org/releases/21.02.3/targets/ramips/mt7621/
    默认账户:root

  • OpenWRT魔改

    可以使用 unkaer/Actions-OpenWrt-Xiaomi-R4A 自行构建(需要一个多小时),会预先安装中文和部分常用软件,实测可以正常工作。

  • Padavan

    据说小米路由器使用老毛子固件更稳定,我也没有具体去考证,也不知道是不是真的。反正我是比较喜欢用 Padavan,无论是界面还是稳定性都不错(还有个使用老毛子的原因是 2022-07-24 Breed 进行了重大更新,OpenWrt 不再支持直接用底包刷固件了。)!Padavan官网源码:https://bitbucket.org/padavan/rt-n56u/src/master/
    Padavan下载地址:https://opt.cn2qq.com/padavan/
    默认账户:admin
    默认密码:admin

Ps:原厂固件xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin

#版本号改23.05.4成你自己的,在luci状态界面查看版本或者命令: cat /etc/openwrt_*
src/gz openwrt_core http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//targets/ramips/mt7621/packages                           
src/gz openwrt_base http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//packages/mipsel_24kc/base                                
src/gz openwrt_luci http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//packages/mipsel_24kc/luci                                
src/gz openwrt_packages http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//packages/mipsel_24kc/packages                        
src/gz openwrt_routing http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//packages/mipsel_24kc/routing                                                      
src/gz openwrt_telephony http://mirrors.ustc.edu.cn/openwrt/releases/23.05.4//packages/mipsel_24kc/telephony 

懒人工具包:

链接: https://pan.baidu.com/s/1RyR5qFUYYUDy5fzsmZL1tg?pwd=np9a 提取码: np9a
–来自百度网盘超级会员v8的分享

进阶:

配置zerotier

注册zerotier账号 - 新建network - 复制network id

配置config

config目录:/etc/config/zerotier 内容:

CODE
config zerotier sample_config
        option enabled 0

        # persistent configuration folder (for ZT controller mode)
        #option config_path '/etc/zerotier'

        #option port '9993'

        # Generate secret on first start
        option secret 'generate'

        # Join a public network called Earth
        list join '8056c2e21c000001'

我们需要改两处内容,option enabled 01 启用, list join '8056c2e21c000001'80xxxxx 内容改为你的 network id

改好保存后可以重启一次路由,如果你的zerotier network是私有的(Private),需要在zerotier后台勾选上你的设备。

配置网段

Interfaces 接口中添加类似 ztr2q3rmku 这样的接口,并新建配置一个防火墙。

将防火墙设置为全部允许,并添加转发目标 wan

在zerotier后台添加路由表:

你设备的网段zerotier分配给设备的ip
192.168.110.0/24172.22.11.22
192.168.31.0/24172.22.11.22
192.168.41.0/24172.22.11.23

以上表有两个 openwrt 设备,ip 分别是 172.22.11.22 / 172.22.11.23 ,而 172.22.11.22 有两个网段,分别是 192.168.110.0/24 / 192.168.31.0/24 那我就可以通过另一个设备,连上zerotier后 直接访问 192.168.110.2,192.168.110.3 这样的设备,以及 192.168.31.1 这两个网段中的所有设备。

结语:

有很多地方都略过了,比如zerotier后台的一些操作,这些网上都有,我以前的文章页写过,这里就不多赘述了。如果后面有空,会再讲讲自构建你的openwrt,因为像这个小米路由器4a千兆版有很多ipk其实都不支持,需要自己编译。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要刷小米路由器4A千兆版的OpenWrt固件,你可以按照以下步骤进行操作: 1. 首先,确保你的电脑上已经安装了Mac系统。 2. 在浏览器中搜索并下载小米路由器4A千兆版的OpenWrt固件文件,通常是一个以.img或.bin为扩展名的文件。 3. 连接你的Mac电脑和小米路由器4A千兆版,可以使用网线或者Wi-Fi连接。 4. 打开终端应用程序(Terminal)。 5. 在终端中,输入以下命令以进入路由器的管理界面: ``` ssh root@192.168.31.1 ``` 如果提示输入密码,请使用默认密码:`admin`。 6. 确保你的路由器已经连接到互联网,以便下载和安装OpenWrt固件。你可以使用以下命令检查连接状态: ``` ping -c 3 www.baidu.com ``` 如果能够正常接收到回复,则表示连接正常。 7. 在终端中,输入以下命令以备份原始固件: ``` mtd -r write /tmp/原始固件文件名.bin firmware ``` 注意将“原始固件文件名.bin”替换为你下载的原始固件文件的实际文件名。 8. 等待备份完成后,输入以下命令以刷入OpenWrt固件: ``` mtd -r write /tmp/OpenWrt固件文件名.bin firmware ``` 注意将“OpenWrt固件文件名.bin”替换为你下载的OpenWrt固件文件的实际文件名。 9. 等待刷写完成后,输入以下命令以重启路由器: ``` reboot ``` 10. 等待路由器重启完成后,你的小米路由器4A千兆版就成功刷入了OpenWrt固件。 请注意,在刷写固件的过程中,务必确保电源稳定,避免中途断电或干扰。同时,刷写固件有一定风险,如果操作不当可能导致设备损坏,请谨慎操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿谷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值