windows工具

红米 AX6000 最强 CPU 的硬路由|解锁 SSH 安装 ShellClash 教程

2023-03-10 23 次阅读 1395 字 · 4 分钟

准备工作


红米AX6000Mac/Linux/windows(windows开启本机的telnet功能:控制面板——卸载程序——启用或关闭Windows功能——勾选telnet功能——确定)固件:miwifi_rb06_firmware_7ddeb_1.0.60.bin

固件降级


下载Redmi AX6000 1.0.60固件需要利用老版本的漏洞才能开启ssh, 所以需要手动降级到1.0.60版本,如下图上传下载的固件然后点升级
红米 AX6000 最强 CPU 的硬路由|解锁 SSH 安装 ShellClash 教程升级到1.0.60版本
在这个升级过程会报如下错误: 出于安全考虑,不允许选择低于当前版本的固件进行升级。解决方法是在地址栏的url最后一个0改成1或者1改成0,然后回车就可以直接升级了。

获取token


登陆小米路由器admin,浏览器地址栏stok=后面部分就是token, 这个token是每次登录都会变化,后面都会用到这个token。如果重新登录后,都要重新复制这个token.

红米 AX6000 最强 CPU 的硬路由|解锁 SSH 安装 ShellClash 教程获取token

开启开发者模式



更改路由器的crash分区,使其进入到开发者模式



将下面的URL里面的stok=token的token替换成上面获取路由器的token值,然后复制到到浏览器并且按enter打开

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

浏览器返回{“code”:0},表示成功。

通过浏览器重启路由器



在浏览器地址栏输入下面的url, 和上面的做法一样,将stok=token的token替换成上面获取路由器的token值

http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

设置Bdata参数



设置参数telnet_en、 ssh_en、uart_en



重启后,要重新获取token, 然后在浏览器地址栏输入下面的url, 将stok=token的token替换成上面获取路由器的token值

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

重启路由器



在浏览器地址栏输入下面的url, 和上面的做法一样,将stok=token的token替换成上面获取路由器的token值

http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

通过telnet开启ssh



在终端输入telnet 192.168.31.1, 可以看到Are you 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



开启新窗口,使用ssh登录路由器,输入指令开启ssh并修改密码为admin:

ssh root@192.168.31.1

不过ssh登录的时候如果报下面的错误no matching host key type found. Their offer: ssh-rsa, 是因为OpenSSH 7.0以后的版本不再支持ssh-rsa (RSA)算法, 解决方法是手动加上

# vi ~/.ssh/config
Host redmi
  HostName 192.168.31.1
  User root
  Port 22
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa

或者
#  ssh -oHostKeyAlgorithms=+ssh-rsa  root@192.168.31.1

从telnet开启的ssh,路由器重启会失效,添加一个开启自动运行的脚本,来实现自动开启ssh。如果恢复出厂设置或重新刷机后需要重新添加.
mkdir /data/auto_ssh && cd /data/auto_ssh
touch auto_ssh.sh
chmod +x auto_ssh.sh

创建auto_ssh.sh文件,使用vi输入下面的内容并保存
#!/bin/sh

host_key=/etc/dropbear/dropbear_rsa_host_key
host_key_bk=/data/auto_ssh/dropbear_rsa_host_key

if [ -f $host_key_bk ]; then
    ln -sf $host_key_bk $host_key
fi

channel=`/sbin/uci get /usr/share/xiaoqiang/xiaoqiang_version.version.CHANNEL`
if [ "$channel" = "release" ]; then
    sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
    /etc/init.d/dropbear restart
fi

if [ ! -s $host_key_bk ]; then
    i=0
    while [ $i -le 30 ]
    do
        if [ -s $host_key ]; then
            cp -f $host_key $host_key_bk 2>/dev/null
            break
        fi
        let i++
        sleep 1s
    done
fi

将auto_ssh写入固化
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

关闭开发者模式


ssh连接上路由器后,输入指令关闭开发者模式

mtd erase crash
reboot

修复时区异常



如果路由器时区异常,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

注意事项



升级固件后,可能需要通过telnet重新开启ssh. 不过目前我还没遇到过这种情况,在开启ssh后,我是直接将1.60的固件自动升级到1.67,ssh还是开启了,密码也是admin

评论(0)

8 + 2 =
← 返回首页