早前在淘宝上买了两个极路由1S,其中一个计划用来刷OpenWRT固件,收到货之后迫不及待的开始拆机。
拆机看看内部情况,有点失望,CPU居然把MT7620换成了阉割版的MT7628A。
硬件配置情况:
主控(MT7628NN)、Flash(winbond 25Q128)、RAM(UNILC SCN18T16160 AF-25D)
登陆到路由器页面居然只支持在线升级,看来要刷自己的固件只能到设备上用命令操作了。
极路由新的固件默认是不开SSH和Telnet的,并且通过TTL接串口还不能登录进shell命令行,更坑的是申请开发者模式还必须激活15天之后,强迫症患者怎么能等你这么久,看来只能找别的方式开启SSH了。
以下是一些通用的操作,应该适合所有的极路由产品(没有实测)。
如何开启SSH服务?
极路由自带的就是OpenWRT系统,因此在设备上开启SSH需要执行以下命令即可。
/etc/init.d/dropbear enable && /etc/init.d/dropbear start
所以要想办法找到执行shell命令的入口,我能想到的办法只有通过插件进行shell注入了。
极路由为了安全性是会严格审查发布到云市场上的插件,避免插件安装存在shell命令注入的漏洞,并且插件支持的参数会对dropbear关键字做大写转换,因此通过参数传递dropbear相关的命令这种方式不可行了。但是百密一疏,还是有的插件可以支持命令输入,把上述开启SSH的命令放到脚本,然后运行脚本就可以。详细步骤如下:
步骤一:把shell脚本放到路由器的文件系统内
把开启ssh的命令制作成shell脚本,然后通过如下方法放入设备内。
#!/bin/bash
# 启动SSH并设置自动启动
sed -i 's/1022/22/g' /etc/config/dropbear
/etc/init.d/dropbear enable
/etc/init.d/dropbear start
方法1 - 利用外部存储设备
把脚本拷都U盘或者SD卡上(我选的是SD卡),插入卡槽。设备会自动挂载SD卡到/tmp/storage/mmcblk0/目录。
方法2 - 利用路由器本身的文件共享功能
在PC上访问\HIWIFI\mobile,将脚本放到当前目录下。对应到设备的路径是/tmp/data/hwf_download/mobile/。
方法3 - 在路由器上安装FTP插件,利用本地PC访问
安装vsftpd插件,选择FTP的跟路径(我选的是/tmp/storage/),通过FTP软件把脚本进去。
步骤二:利用插件在极路由上执行脚本
插件 - 定时重拨
定时重播利用了openwrt上计划任务crontab来实现,支持规则自定义。规则的最后一个参数就是要执行的动作。我们可以利用它执行我们的脚本。
目前这个插件已经下架,不能直接在插件市场上找到。可以在进入某个插件后将url中sid修改为sid=118284854查找出来并安装。
规则参数:
* * * * * sh /tmp/storage/test.sh
点击启动服务,这样等待大约1min就会执行脚本开启SSH了。
插件 - 抓包
在插件市场找到抓包插件,安装后参数输入:
–help; sh /tmp/storage/test.sh; tcpdump -i br-lan
点击运行服务即可。
如何用SSH登陆?
通过上面的步骤,已经可以成功开启SSH服务了。使用putty、xshell等软件登录即可。
账号:root
密码:路由器管理密码
端口:22
登陆进来就看到上图内容,说明SSH登陆成功。终于可以尽情的蹂躏它了。