小米ac2100路由器输入openwrt固件

发布时间 2023-10-14 14:24:56作者: 技术颜良
 

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

固件下载

2021/9/8最新消息:

官网说明https://openwrt.org/toh/xiaomi/mi_router_ac2100

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

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

需要文件

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实现刷机

版本准备

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

红米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

漏洞注入:降级到漏洞版本后,通过下面web命令开启SSH

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

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

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

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值):

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

登录SSH进行刷机:

重启后,通过winscp登录192.168.1.1用户为root密码为刚才改过的admin。(如不能sftp找台虚拟机用scp命令拷贝,能跟路由网络通即可)先把openwrt的两个rom文件(xxx-kernel1.bin和xxx-rootfs0.bin)上传到路由器tmp目录。

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

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路由的设置了。

 

###安装后无法登录ui

 

 

家用拨号宽带
uci set network.wan.proto=pppoe //设置wan口类型为pppoe
uci set network.wan.username=SZ6800000712444
uci set network.wan.password=712G12444    //这两行设置就是宽带账号
uci commit //保存配置到 /etc/config/network 和 /etc/config/wireless
opkg update // 更新软件列表
opkg list-installed // 查看已安装软件
opkg install luci // 安装LUCI
opkg install luci-i18n-base-zh-cn // 支持中文
输入以下命令开启支持web服务的uhttpd,并设置其为自启动:
/etc/init.d/uhttpd enable # 开机自启动
/etc/init.d/uhttpd start # 启动uhttpd
这样就可以通过 lan口的ip登陆路由器的网页管理界面了。

echo "nameserver 114.114.114.114">/tmp/resolv.conf
rm -f /var/lock/opkg.lock