0%

小米ac2100路由器输入openwrt固件

小米ac2100路由器输入openwrt固件

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

固件下载

2021/9/8最新消息:

Openwrt官方已经从21.02.0版正式支持小米/红米AC2100。官网下载地址:

1
https://firmware-selector.openwrt.org/?version=21.02.1&target=ramips%2Fmt7621&id=xiaomi_mi-router-ac2100

需要文件

1
2
3
4
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-kernel1.bin
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-rootfs0.bin
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-sysupgrade.bin
先刷入前面两个文件,之后用sysupgrade.bin更新一下即可。
开启ssh,并更改密码

利用官方固件的漏洞,通过Web注入漏洞开启SSH实现刷机

  1. 版本准备
    带漏洞的官方固件,只有一个版本的固件有漏洞,版本号为AC2100 2.0.7*版本。
    之后的版本漏洞已经修复,要刷机需要降级到带漏洞的版本(有人说是小米有意无意放出的那么一个版本,反正国际上一大堆玩小米路由的玩家)。
    降级只需用官方更新方法手动刷入即可。带漏洞的版本在官方网站上下载:

    1
    2
    红米RM2100:http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/rm2100/miwifi_rm2100_firmware_d6234_2.0.7.bin
    小米R2100:http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/r2100/miwifi_r2100_firmware_4b519_2.0.722.bin
  2. 漏洞注入:降级到漏洞版本后,通过下面web命令开启SSH

使用管理员密码登录,路由器的web界面

1
http://192.168.1.1/cgi-bin/luci/;stok=<STOK>/web/home#router

这里的关键是号,每台机器不同,甚至每次登录都不同,拷贝下来备用。
在浏览器地址栏中输入以下链接代码,注意替换掉部分:

1
http://192.168.1.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B

返回{“code”:0}即代表成功,如果返回401错误,原因可能是版本不正确或者值错误或者链接输入不完整等。

更改管理员root密码的方法:通过如下命令更改root密码为admin,在浏览器地址栏中输入以下链接代码,注意替换掉部分(有时stok值会发生改变,建议重新返回登录页面复制最新的stok值):

1
http://192.168.1.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
  1. 登录SSH进行刷机:

重启后,通过winscp登录192.168.1.1用户为root密码为刚才改过的admin。先把openwrt的两个rom文件(xxx-kernel1.bin和xxx-rootfs0.bin)上传到路由器tmp目录。

再用putty登录192.168.1.1进行刷机操作,输入如下命令进行刷机:

1
2
3
nvram set uart_en=1&&nvram set bootdelay=5&&nvram set flag_try_sys1_failed=1&&nvram commit
mtd write /tmp/xxx-kernel1.bin kernel1
mtd -r write /tmp/xxx-rootfs0.bin rootfs0

注意上面rom文件的文件名,把xxx替换成你自己用的rom文件名。

刷完后将重启,刷机大功告成,之后便是openwrt路由的设置了。