Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小米 4A 千兆版路由器禁 ping

小米 4A 千兆版路由器禁 ping

作者头像
AlphaHinex
发布于 2024-04-09 12:15:00
发布于 2024-04-09 12:15:00
53300
代码可运行
举报
文章被收录于专栏:周拱壹卒周拱壹卒
运行总次数:0
代码可运行

小米路由器的官方固件中并不支持设置禁 ping。

本文借助 OpenWRTInvasion 利用 Root Shell 漏洞实现小米4A千兆版路由器禁 ping。

OpenWRTInvasion

OpenWRTInvasion[1] 是一个可以获得小米路由器 Root Shell 权限的工具,支持多种路由型号和固件版本[2],也有一些写明 不支持的型号和固件版本[3]

以小米4A千兆版路由器为例,分为国内版、国际版,还有 v1、v2 版本,可参照 这里[4] 区分不同版本。

未写明支持或不支持的版本,也有能成功的可能,比如下面的过程是在 小米4A千兆版路由国内 v1 型号,固件版本为 2.28.58 上获得的 Root Shell 权限。

环境准备

该工具是 python + shell 脚本,如需在 Windows 环境中使用,可参考官方 README 中 Using Docker (also works on Windows)[5] 部分。

先从 GitHub 克隆仓库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/acecilia/OpenWRTInvasion.git
$ cd OpenWRTInvasion
$ git log
commit fcec03a49d78d700d62f7be82093bd8e349d9a55 (HEAD -> master, origin/master, origin/HEAD)
Author: BugC0der <60848096+BugC0der@users.noreply.github.com>
Date:   Mon Mar 13 01:15:11 2023 +0100

    Ensure correct line ending for script.sh when used from Windows (#171)

创建 conda 虚拟环境并安装依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ conda create -n openwrt python=3
$ conda activate openwrt
$ pip install -r requirements.txt

conda 工具安装配置可参照 JupyterLab 实战[6]

脚本执行

运行环境连接至小米路由器后,获得路由地址,如 192.168.31.169。之后执行如下过程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python remote_command_execution_vulnerability.py
Router IP address [press enter for using the default 'miwifi.com']: 192.168.31.169
Enter router admin password: xxxxxx
There two options to provide the files needed for invasion:
   1. Use a local TCP file server runing on random port to provide files in local directory `script_tools`.
   2. Download needed files from remote github repository. (choose this option only if github is accessable inside router device.)
Which option do you prefer? (default: 1)1
****************
router_ip_address: 192.168.31.169
stok: xxxxxxxxx
file provider: local file server
****************
start uploading config file...
start exec command...
local file server is runing on 0.0.0.0:50423. root='script_tools'
local file server is getting 'busybox-mipsel' for 192.168.31.169.
local file server is getting 'dropbearStaticMipsel.tar.bz2' for 192.168.31.169.
done! Now you can connect to the router using several options: (user: root, password: root)
* telnet 192.168.31.169
* ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-rsa -c 3des-cbc -o UserKnownHostsFile=/dev/null root@192.168.31.169
* ftp: using a program like cyberduck

通过本地文件服务将文件传输至路由时,可无需网络连接。

脚本执行成功后,可通过提供的三种方式连接至小米路由器,用户名密码均为 root

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-rsa -c 3des-cbc -o UserKnownHostsFile=/dev/null root@192.168.31.169
The authenticity of host '192.168.31.169 (192.168.31.169)' can't be established.
RSA key fingerprint is SHA256:VS1Ef5kgBMO6ghA+PD2lcKYM6cTOnwE/eO4PRUYV6Jg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.31.169' (RSA) to the list of known hosts.
root@192.168.31.169's password:


BusyBox v1.19.4 (2019-06-11 03:26:58 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


root@XiaoQiang:~# 

禁 ping

编辑 /etc/sysctl.conf 文件,加入或修改 net.ipv4.icmp_echo_ignore_all 字段值为 1,之后使配置生效即可。路由重启后也是禁 ping 状态。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@XiaoQiang:~# cat /etc/sysctl.conf|grep icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all=1
root@XiaoQiang:~# sysctl -p

后记

最初是想通过给小米路由刷 OpenWRT 固件看看能不能设置禁 ping,无奈按照官方 wiki —— Xiaomi Mi Router 4A Gigabit Edition[7] 尝试多次,每次写入 OpenWRT 官方固件后,路由器都会陷入橙灯常亮时而闪烁的状态。最终退而求其次在获得 Root Shell 权限后直接修改 sysctl 配置实现禁 ping。

将刷 OpenWRT 及变砖后的恢复过程记录如下,以备后续需要。

OpenWRT

  • 官方文档:Xiaomi Mi Router 4A Gigabit Edition[8]
  • 设备 SKU: DVB4218CN

2019 model is shielded

Warning Xiaomi is currently shipping Mi Router 4A Gigabit Edition devices without proper shielding since 2020. Be aware that those might cause problems due to radio interference. Nevertheless, it's flashable.

Installation[9] 部分下载 Factory image[10]

当前文档中,23.05.2[11] 版本 Factory imageSysupgrade image 是相同的镜像

文档中并未给出镜像文件的校验码,可在 固件选择[12] 界面选择适合设备的 OpenWRT 版本进行下载,下载后可对比 shasum256 码。

  • kernel:https://downloads.openwrt.org/releases/23.05.2/targets/ramips/mt7621/openwrt-23.05.2-ramips-mt7621-xiaomi_mi-router-4a-gigabit-initramfs-kernel.bin
  • sha256sum:da95d78bbb590e3f81e078d63bb1a3a129364c0a6a586caab9c5249ede183116
  • sysupgrade:https://downloads.openwrt.org/releases/23.05.2/targets/ramips/mt7621/openwrt-23.05.2-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin
  • sha256sum:66c58c3c05d4d43c88cb6f98e831ee0d518f80a248aba3314d7895983b91deff

下载镜像并通过 ftp(账号 root/root)上传至路由器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ curl https://downloads.openwrt.org/releases/23.05.2/targets/ramips/mt7621/openwrt-23.05.2-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin --output firmware.bin
$ ftp 192.168.31.169
Connected to 192.168.31.169.
220 Operation successful
Name (192.168.31.169:alphahinex): root
331 Specify password
Password:
230 Operation successful
ftp> cd tmp
250 Operation successful
ftp> put firmware.bin
200 Operation successful
150 Ok to send data
226 Operation successful
6579470 bytes sent in 0.519 seconds (12.1 Mbytes/s)

在路由器中校验镜像,并写入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@XiaoQiang:/tmp# /tmp/busybox sha256sum firmware.bin
66c58c3c05d4d43c88cb6f98e831ee0d518f80a248aba3314d7895983b91deff  firmware.bin
root@XiaoQiang:/tmp# mtd -e OS1 -r write firmware.bin OS1
Unlocking OS1 ...
Erasing OS1 ...

Writing from firmware.bin to OS1 ...
Rebooting ...

顺利的话,Rebooting 可能需要等待个十几分钟,不顺利可能就一直处于橙灯常亮,偶尔闪烁状态了……

百兆版好像也有类似的情况:Cannot flash OpenWRT on Mi Router 4A 100M (Chinese version) firmware 2.28.62[13]

Debrick

路由器变砖后,可使用官方提供的工具和固件进行恢复:

  • 【路由刷机教程】适用于小米路由器刷机工具[14]
  • 【客户端下载】小米路由器修复工具[15]
  • 【ROM下载】小米路由器4A千兆版[16]

下载:

  • Windows 版刷机工具[17]
  • 官方固件 2.28.62 版本(2019年6月30日)[18]

恢复过程可参考:https://forum.openwrt.org/t/xiaomi-mi-router-4a-gigabit-edition-r4ag-r4a-gigabit-fully-supported-and-flashable-with-openwrtinvasion/36685/747

Windows 环境设置静态 IP

  • IP:192.168.31.100
  • 子网掩码:255.255.255.0

连接路由

网线连接电脑及路由 LAN 口(不要连 WAN 口)

执行恢复

  • 打开修复工具,选镜像、网卡
  • 先给路由器断电,之后按住路由器上 reset 键通电,持续按住 8s 左右,路由器橙灯由常亮变成闪烁,修复工具弹出进度条开始写入固件
  • 写入完成后等待几分钟,蓝灯闪烁表示完成,断电重启路由即可

参考资料

[1]

OpenWRTInvasion: https://github.com/acecilia/OpenWRTInvasion

[2]

支持多种路由型号和固件版本: https://github.com/acecilia/OpenWRTInvasion?tab=readme-ov-file#supported-routers-and-firmware-versions

[3]

不支持的型号和固件版本: https://github.com/acecilia/OpenWRTInvasion?tab=readme-ov-file#unsupported-routers-and-firmware-versions

[4]

这里: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#how_to_tell_the_different_versions_apart

[5]

Using Docker (also works on Windows): https://github.com/acecilia/OpenWRTInvasion?tab=readme-ov-file#using-docker-also-works-on-windows

[6]

JupyterLab 实战: https://alphahinex.github.io/2024/01/14/jupyter-lab-in-action/

[7]

Xiaomi Mi Router 4A Gigabit Edition: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition

[8]

Xiaomi Mi Router 4A Gigabit Edition: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition

[9]

Installation: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#installation

[10]

Factory image: https://downloads.openwrt.org/releases/23.05.2/targets/ramips/mt7621/openwrt-23.05.2-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin

[11]

23.05.2: https://openwrt.org/releases/23.05.2

[12]

固件选择: https://firmware-selector.openwrt.org/?version=23.05.2&target=ramips%2Fmt7621&id=xiaomi_mi-router-4a-gigabit

[13]

Cannot flash OpenWRT on Mi Router 4A 100M (Chinese version) firmware 2.28.62: https://github.com/acecilia/OpenWRTInvasion/issues/176

[14]

【路由刷机教程】适用于小米路由器刷机工具: https://web.vip.miui.com/page/info/mio/mio/detail?postId=19134127&app_version=dev.20051

[15]

【客户端下载】小米路由器修复工具: https://web.vip.miui.com/page/info/mio/mio/detail?postId=19156828&app_version=dev.20051

[16]

【ROM下载】小米路由器4A千兆版: https://web.vip.miui.com/page/info/mio/mio/detail?postId=19166773&app_version=dev.20051

[17]

Windows 版刷机工具: http://bigota.miwifi.com/xiaoqiang/tools/MIWIFIRepairTool.x86.zip

[18]

官方固件 2.28.62 版本(2019年6月30日): http://bigota.miwifi.com/xiaoqiang/rom/r4a/miwifi_r4a_firmware_72d65_2.28.62.bin

JupyterLab 实战

macOS 路由设置

内网穿透?试试 ngrok

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 周拱壹卒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
低成本自制一个流量分享器
首先我解决的是,在有一个流量加密服务器的情况下,如何低成本的完成全局网络设备的数据加密传输问题。
云深无际
2021/10/20
9510
低成本自制一个流量分享器
用小米路由器自动折腾 PS4
在 用 PPPwn_cpp 在 Mac 上折腾 PS4 中,我们介绍了如何使用 PPPwn_cpp 在 Mac 上折腾 PS4。其实不只是 Mac,只要能运行 PPPwn_cpp 的设备,都可以用来折腾 PS4,比如小米路由器。
AlphaHinex
2025/01/13
1860
用小米路由器自动折腾 PS4
小米AC2100路由器刷机教程
之前家中免费的电信宽带免费升级到500M后,原有的360 P1百兆路由器很明显无法提供500M的网络速度,然后购买了一款小米AC2100路由器。
KINDYEAR
2022/07/12
10.1K1
小米AC2100路由器刷机教程
小米路由器4A刷OpenWRT软路由系统并实现远程访问详细流程
OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,可以让路由器变得更智能,简单的说,路由器刷了OpenWrt就相当于一个Linux系统带无线带多网卡的电脑。
YY的秘密代码小屋
2024/05/31
1.4K0
小米路由器4A刷OpenWRT软路由系统并实现远程访问详细流程
小米路由器3刷X-Wrt固件教程
之前写过一篇《小米路由器3刷潘多拉固件教程》,导致一些朋友不小心刷成砖了,在此给这些朋友道个歉。虽说刷机有风险,我也按照官方的教程写的,自己也没遇到什么问题,但是还是有很多朋友刷成砖了,那应该还是和我的教程有关系,在此只能和各位朋友说声对不起了。我现在也没啥解决办法,只能给朋友们推荐一篇《小米路由器3 TTL线救砖经验》,希望能让大家的路由器重焕生机。
乐百川
2020/02/23
7.4K1
小米路由器 - 高级玩法
最近在恩山看到了一篇文章,是利用 CVE-2023-26319 实现的,通过米家智能场景控制器(xqsmartcontroller)来打开 SSH,在所有支持米家智能场景控制器且未修复漏洞的固件上都可以用这种方式开启 SSH
FloatSheep
2024/08/16
5650
小米路由器 - 高级玩法
小米路由器3潘多拉固件刷机教程
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/88564078
乐百川
2019/07/02
19.5K0
小米路由器3潘多拉固件刷机教程
极路由4刷OpenWrt(LEDE)
scp -P 1022 breed-mt7621-hiwifi-hc5962.bin root@192.168.199.1:/tmp
霡霂
2019/03/12
11.2K0
极路由4刷OpenWrt(LEDE)
小米路由器mini折腾之刷不死uboot篇
u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序。他可以用来恢复小米路由器的固件,可以说只要刷了uboot,你的路由器基本上刷不死了。 以下操作都是在你获取了root信息后才可以实现。 2015年11月10日更: 刷uboot属于高危操作,如果你觉得刷了以后出现问题自己不一定Hold的住,请止步,谢谢合作! 如果造成不可挽回的损失,老高也没辙。。。 2015年9月17日更: 新版固件不要刷uboot了,会造成很多问题。 20
herve
2018/06/25
6.2K0
小米路由器4A 刷入 Breed 与 Padavan - wuuconix's blog
第二天一醒来我就拿出平板准备远程唤醒床下的笔记本,开始过上小康生活。但是却失败了。这让我非常纳闷。
wuuconix
2023/01/30
7.6K0
小米路由器4A 刷入 Breed 与 Padavan - wuuconix's blog
使用编程器救砖小米路由器4A千兆版的过程
之前在折腾路由器的时候不慎刷错了Breed(Bootloader),然后路由器就直接寄了,开不了机。所幸在网上查阅后发现有救砖的办法,自行购买了有关配件后着手救砖,并成功恢复。在这里做一个简要记录,如果你也遇到了这个问题,希望对你有所帮助。
KINDYEAR
2022/11/01
7.3K27
使用编程器救砖小米路由器4A千兆版的过程
小米路由器3 opkg安装
下载地址:http://sangbo.pub/soft/opkg/opkg 2、修改/etc/opkg.conf文件,替换为以下内容:
逍遥子大表哥
2021/12/17
1.7K0
谁说路由器老了就没用?小米R1D路由器刷为tomato固件,NAS、FTP、媒体服务器齐上线,甚至还有虚拟专用网络功能
正所谓生命不止,折腾不休,今天为大家刷一台小米R1D无线路由器,此路由器购买的时候自带一块1T笔记本硬盘
IT狂人日志
2022/05/18
7.3K0
谁说路由器老了就没用?小米R1D路由器刷为tomato固件,NAS、FTP、媒体服务器齐上线,甚至还有虚拟专用网络功能
小米路由器 3G mentohust 以及 SS 配置
正常情况下校园网的网速是 10mb/s,尤其是在使用华科的镜像源的时候,速度可以稳定在11+mb/s。 由于之前百兆路由器速度限制,只能达到2mb/s,因此更换了一个路由器。
Fred Liang
2018/08/02
3.6K0
极路由4增强版B70(HC5962)刷机
对于极路由大家应该都不算陌生,前两年很火,各大网站炒得沸沸扬扬。 Solli也没忍住,就入手了一台。前几年,斐讯K2,K2P,N1还有其他乱七八糟的路由器仿佛火山爆发一般喷涌而出, 随便搜一搜各式各样的APP琳琅满目。现在看来,这种东西和当时的斐讯K2P一样,都逃不过{倒闭}(daobi)的命运。
冬冬i
2022/12/22
7K0
极路由4增强版B70(HC5962)刷机
小米路由器 3G 开启 SSH 安装 MT 工具箱
下面是小米路由器折腾记录,包括开启 SSH,然后安装 MT 工具箱,主要是为了其中的两个插件,一个是去广告,一个是 SS 代理,不过附带竟然发现了 frp 插件,开心啊。下面就是具体的记录。
用户1065635
2019/11/28
8.6K0
小米路由器 Docker 折腾指北
等待 5~8 分钟,当路由器 System 指示灯亮为蓝灯闪烁或橙灯常亮时将路由器断电重启(Power 按键即可)
FloatSheep
2024/04/04
1.3K0
小米路由器 Docker 折腾指北
小米路由器 AX9000 开发版固件获取 SSH / 安装 MIXBOX & ENTWARE
小米路由器 AX9000 开发版固件直接获取 SSH - 南浦月 (nanpuyue.com)
FloatSheep
2023/02/01
7K4
小米路由器 HD(R3D) 折腾笔记
如果在刷机过程中,指示灯黄灯闪烁几秒后变为黄灯常亮状态,说明此次 U 盘刷机过程失败,请检查以上的刷机过程并重新进行刷机操作
cnguu
2020/10/23
10K0
如何让小米路由4C刷上Openwrt20【教程】
本教程需要wsl环境,需要在wsl中安装、配置好python3环境。以及后续编译固件需要访问国外网站 从中访问国外网站的工具,我使用proxychains,具体配置详情见百度~
ITJoker
2022/08/30
3.2K1
相关推荐
低成本自制一个流量分享器
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验