红米AX6000永久获取SSH权限(Redmi AX6000)
前提条件:文章源自今夕何夕兮-https://www.ginc.site/toss901.html
首先查询netmode值:文章源自今夕何夕兮-https://www.ginc.site/toss901.html
http://192.168.31.1/cgi-bin/luci/;stok=0123456/api/xqnetwork/get_netmode
其中 stok=0123456 是路由器后台地址栏的stok值。文章源自今夕何夕兮-https://www.ginc.site/toss901.html
正常应该返回:{"netmode":4,"code":0}文章源自今夕何夕兮-https://www.ginc.site/toss901.html
如果netmode为4,就可以进行下面的操作。文章源自今夕何夕兮-https://www.ginc.site/toss901.html
Redmi AX6000固件版本:1.0.60文章源自今夕何夕兮-https://www.ginc.site/toss901.html
默认网关:192.168.31.1
文章源自今夕何夕兮-https://www.ginc.site/toss901.html
一、软件准备
1、所需设备:一台电脑;一台Redmi AX6000,电脑与路由器之间使用网线或者无线wifi连接。文章源自今夕何夕兮-https://www.ginc.site/toss901.html
2、所需软件:Windows Terminal(Win10用户在Microsoft Store下载即可)或其他终端软件,比如,Termius,MobaXterm,等等。本文以Windows Terminal为例;文章源自今夕何夕兮-https://www.ginc.site/toss901.html
3、所需固件:
文章源自今夕何夕兮-https://www.ginc.site/toss901.html其中两个文件:Redmi AX6000 1.0.60,Redmi AX6000 1.0.48(备用);
4、开启本机的telnet功能:控制面板——卸载程序——启用或关闭Windows功能——勾选telnet功能——确定。
具体方法:Win10开启telent功能
5、路由器初始密码的计算:找到Redmi AX6000的SN码。(网址后加)得到初始密码,将其永久保存下来,路由器恢复出厂设置后会用到;
6、本机内网IP地址:有很多方法能查到本机的内网IP地址,这里不再赘述,以下都假设设备地址为:192.168.31.10。
7、路由器的stok:打开路由器的web端管理界面,输入管理员密码,从上方地址栏即可获得stok。
例如,管理界面地址为:
http://192.168.31.15/cgi-bin/luci/;stok=030b24d39b1a4a549aa12dac23c52313/web/home#router
则stok=030b24d39b1a4a549aa12dac23c52313,也即stok为030b24d39b1a4a549aa12dac23c52313。
注:每次路由器重启,stok值都会改变。
二、固件降级
从web端的管理界面将Redmi AX6000的固件版本降级到1.0.60
三、开启Redmi AX6000的开发者模式
1、更改路由器的crash分区,使其进入到开发者模式
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20
其中,将stok=token中的token替换成路由器的stok。
例如,我的stok为030b24d39b1a4a549aa12dac23c52313,则输入到浏览器地址栏的链接为:
http://192.168.31.1/cgi-bin/luci/;stok=030b24d39b1a4a549aa12dac23c52313/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20
2、特殊方法重启路由器
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
其中,将stok=token中的token替换成路由器的stok即可。
四、设置Redmi AX6000的Bdata参数
1、设置参数telnet_en、 ssh_en、uart_en
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20set%20uart_en%3D1%20%3B%20bdata%20commit%20%3B%20
其中,将stok=token中的token替换成路由器新的stok即可。
2、特殊方法重启路由器
在浏览器地址栏输入:
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
其中,将stok=token中的token替换成路由器新的stok即可。
五、通过telnet开启ssh
在Windows Terminal中输入指令:
telnet 192.168.31.1
输入后会直接进入【ARE U OK】的界面,表示telnet成功。
进入telnet后,输入指令开启ssh并修改密码为admin:
bdata set boot_wait=on bdata commit nvram set ssh_en=1 nvram set telnet_en=1 nvram set uart_en=1 nvram set boot_wait=on nvram commit sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear /etc/init.d/dropbear restart echo -e 'admin\nadmin' | passwd root
六、永久开启 ssh
新开一个Windows Terminal窗口,ssh连接进去:
注:此处是新开一个窗口,不要从telnet界面进行ssh连接。
ssh root@192.168.31.1
输入密码admin,即可登入ssh。
目前从telnet开启的ssh,路由器重启会失效,因此添加一个开启自动运行的脚本,来实现自动开启 ssh。缺点就是恢复出厂设置或重新刷机后需要重新添加。
注:此处需要路由器联网才可以执行成功。
mkdir /data/auto_ssh && cd /data/auto_ssh curl -O https://cdn.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
七、关闭Redmi AX6000的开发者模式
新开一个Windows Terminal窗口,ssh连接进去:
ssh root@192.168.31.1
输入密码admin,即可登入ssh。
输入指令清除crash分区并重启:
mtd erase crash reboot
八、修复时区异常
用上述方法开启ssh后,可能会导致路由器时区异常,在ssh中执行以下指令即可:
uci set system.@system[0].timezone='CST-8' uci set system.@system[0].webtimezone='CST-8' uci set system.@system[0].timezoneindex='2.84' uci commit
九、注意事项
每次升级固件或重置固件都需要执行以下指令:
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear /etc/init.d/dropbear restart echo -e 'admin\nadmin' | passwd root
新开一个Windows Terminal窗口,ssh连接进去:
注:此处是新开一个窗口,不要从telnet界面进行ssh连接。
ssh root@192.168.31.1
输入密码admin,即可登入ssh。
登入后输入以下指令:
mkdir /data/auto_ssh && cd /data/auto_ssh curl -O https://cdn.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
参考链接: 【保姆级教程】 [OpenWrt Wiki]、[Github lemoeo]
转载请注明来自:今夕何夕兮
本站原创内容版权遵循 CC-BY-NC-SA4.0 协议授权,本站部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
