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

news2026/4/3 19:44:15

环境

  • 电脑 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其实都不支持,需要自己编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧节能节水设备远程监控解决方案

智慧节能节水设备远程监控解决方案,作为现代物联网技术与环保理念深度融合的产物,旨在通过高度集成的传感器网络、大数据分析及云计算平台,实现对各类节能节水设施的精细化管理和实时监控,从而大幅度提升资源利用效率,…

eNSP 华为三层交换机实现VLAN间通信

华为三层交换机实现VLAN间通信 三层交换机&#xff1a; <Huawei>sys [Huawei]sys SW-3 [SW-3]vlan batch 10 20 [SW-3]int vlan 10 [SW-3-Vlanif10]ip address 192.168.10.254 24 [SW-3-Vlanif10]int vlan 20 [SW-3-Vlanif20]ip add 192.168.20.254 24 [SW-3-Vlanif20]in…

Qt登录窗口设计

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标类 #include <QPushButton> #include <QLineEdit> //行编辑 #include <QLabel> #include <QTextEdit> #include <QMovie>class Widge…

专业名词理解(一):鲁棒性和泛化能力

目录 前言 一、鲁棒性&#xff08;Robustness&#xff09; 二、泛化能力&#xff08;Generalization&#xff09; 总结 前言 鲁棒性&#xff08;Robustness&#xff09;和泛化能力&#xff08;Generalization&#xff09;是机器学习和人工智能模型的重要特性&#xff0c;它…

CDD数据库文件制作(四)——服务配置(0x11)

目录 1.子功能创建2.会话切换配置2.1.根据诊断调查表进行信息提取(0x1101)2.2.会话转换配置(0x1101)2.3.根据诊断调查表进行信息提取(0x1102)2.4.会话转换配置(0x1102)2.5.根据诊断调查表进行信息提取(0x1103)2.6.会话转换配置(0x1103)2.7.会话切换配置完成后效果图…

R9 9900X R9 9950X评测:看完觉得7800X3D更香了

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; R9 9900X R9 9950X评测&#xff1a;能效提升&#xff0c;温度下降 R9 9900X R9 9950X基础规格 注&#xff1a;评测信息来自外媒Wccftech 老规矩&#xff0c;先介绍一下这两款锐龙9000旗舰CPU的…

【笔记1-7】Qt bug记录:error C2371: QStringList重定义;不同的基类型,Qt6无法使用QStringList

在Qt5工程升级到Qt6的过程中&#xff0c;出现了QStringList重定义的问题 一开始尝试在其他文件中使用QStringList&#xff0c;结果是Qt5.9.4版本怎么使用都没有问题&#xff0c;而Qt6.7.2在其他文件中写同样的代码也会有问题 通过调查Qt源码&#xff0c;发现是Qt6对qcontainer…

栈与计算—— 150、227、224※

150. 逆波兰表达式求值&#xff08;中等&#xff09; 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&a…

web前端之实现一只可爱的小杰尼乌龟、伪元素、动画

MENU 前言效果图htmlstyle 前言 代码段使用HTML和CSS创建一个“杰尼龟”的动画。 效果图 html <div class"squirtle"><div class"tail"></div><div class"body"><div class"stomach"></div><d…

了解数据库中常用存储引擎数据结构(1)

目录 引言 存储引擎和存储结构 两者的关系 存储结构 分类 1. 按数据组织方式分类 2. 按索引结构分类 3. 按存储介质分类 4. 按数据分布方式分类 5. 按数据冗余和备份分类 存储结构需要的特性 BTree 补充知识&#xff1a;Lock和Latch的区别&#xff08;存储引擎并发…

干货分享|如何使用Stable Diffusion快速打造瞬息全宇宙?

Deforum也是一款文生视频插件&#xff0c;它把提示词跃迁和运镜结合到一起&#xff0c;生成的视频让人仿佛穿越不同时空&#xff0c;因此又被称作瞬息全宇宙。本节将介绍使用Deforum生成视频的方法。 在使用Deforum时&#xff0c;由于设置参数非常多&#xff0c;初次使用时很难…

【C语言篇】编译和链接以及预处理介绍(下篇)

文章目录 前言#和###运算符##运算符 命名约定#undef命令⾏定义条件编译#if和#endif多个分支的条件编译判断是否被定义嵌套指令 头文件被包含头文件被包含的方式本地文件包含库文件的包含 嵌套文件包含 其他预处理指令 写在最后 前言 本篇接前一篇【C语言篇】编译和链接以及预处…

fvm 管理多个 flutter 版本

前言&#xff1a; flutter SDK 版本更新还是比较快的&#xff0c;新的特性带来了新的体验&#xff0c;更新频繁也是好的事情。一方面说明 flutter 社区活跃&#xff0c;另一方面 说明 flutter 进化的脚本并没有停下。这样也会带来另一个问题&#xff0c;如果多个项目 使用了不…

详解Python 66 个内置函数!附代码

大家好&#xff0c;想掌握Python编程语言&#xff0c;从零基础的小白晋升为大神&#xff1f;没问题&#xff01;接下来我们将以轻松有趣的方式&#xff0c;逐一解锁Python的66个内置函数&#xff0c;每一步都将结合实际应用场景、函数功能解析及简洁代码演示&#xff0c;带你深…

超全面!Midjourney用户手册中文版!详解模型、命令、参数与高级用法

前言 引言 大家好&#xff0c;我是包大。 最近正在上手体验目前网上很火的 AI 绘画工具 Midjourney&#xff0c;在优设和 B 站上找了很多教程来看&#xff0c;现在基本可以上手用它生成很多好玩的图片了。 这里私心推荐一下优设网的 AI 绘画专题&#xff0c;专题里已经积累了…

Docker详细讲解

2013年发布至今&#xff0c; Docker一直广受瞩目&#xff0c;被认为可能会改变软件行业。 但是&#xff0c;许多人并不清楚 Docker 到底是什么&#xff0c;要解决什么问题&#xff0c;好处又在哪里&#xff1f;今天就来详细解释&#xff0c;帮助大家理解它&#xff0c;还带有简…

【Linux操作系统】进程概念

目录 一、进程概念1.1 什么是进程 二、task_struct内容分类2.1 标识符2.2 进程状态2.2.1 进程排队2.2.2 关于进程状态的表述——运行、阻塞、挂起2.2.3 Linux中具体的进程状态2.2.4 孤儿进程 2.3 进程优先级 三、Linux的调度与切换3.1 进程切换3.2 进程调度 四、环境变量4.1 ma…

产品文档全攻略:分类、价值及创建技巧

作者 | Josh Fechter 产品文档是产品附带的资料。这些文档包含产品工作的详细信息、使用指南、免责声明以及与产品相关的其他重要详细信息。 产品文档是一个广义的术语&#xff0c;并不仅仅是为了供消费者使用。产品文档还包括供内部组织使用的产品或服务的信息。这些文档文件…

KETTLE调用http传输中文参数的问题

场景&#xff1a;检查服务器异常&#xff08;hive&#xff09;服务&#xff0c;就通过http发送一条短信到手机上&#xff0c;内容类似&#xff1a;【通知】 S T A R T D A T E h i v e 服务检测异常 {START_DATE}_hive服务检测异常 STARTD​ATEh​ive服务检测异常{DB_ID}&#…

我的点赞功能(完整分页查询步骤)和快速刷题开发

文章目录 1.我的点赞分页展示1.分页查询工具类1.PageInfo.java 需要分页查询的就继承它&#xff0c;传值的时候pageNo和pageSize可以为空2.PageResult.java 根据条件从数据库中查询信息&#xff0c;然后设置这里的四个值即可得到分页查询结果 2.sun-club-application-controlle…