斐讯k2刷固件记录 版本22.6.512.75(最新2020)

会有一股神秘感。 提交于 2020-10-26 12:50:30
尝试直接升级或降级

刷固件需要先刷breed。开始直接尝试系统自带的升级固件方式.
结果: 失败(原因:不安全的固件)
结论: 系统自带的升级固件的方式刷不了bread,

经过一番搜索,发现要先破解telnet

1.破解telnet

原来telnet不仅仅只是测试端口、还可以登上服务器.

简单来说就是, 系统设置、高级设置、定时更新、修改05元素对应的值为: “05 | /usr/sbin/telnetd -l /bin/login.sh”
点击网页上的保存,即可开启telnet。
详细过程参考 详细过程链接

此时如果一切正常那么在命令行 “telnet [路由器ip]” 就可以登陆进路由器系统。

windows需要在服务中开启telnet才行, mac也需要安装telnet( brew install telnet )

2. 刷breed

方法1(老版本有效)

参照破解telnet的方式修改元素值为如下, 并通过保存执行。
05 | wget http://breed.hackpascal.net/breed-mt7620-phicomm-psg1208.bin
05 | mtd unlock Bootloader
05 | mtd -r write breed-mt7620-phicomm-psg1208.bin Bootloader
但是此方法不可见结果,也不知道具体执行的结果是啥,操作结果不可感知。
ps. 外网文件下载可能比较慢,建议先下载好文件,然后建立局域网文件服务器【python -m httpServer】
ps. 不过好像这个网址还行,感觉麻烦或者操作有难度的可以略过,直接从外网下载。





方法2(该版本有效)

telnet 登陆到服务器
wget http://breed.hackpascal.net/breed-mt7620-phicomm-psg1208.bin
mtd unlock Bootloader
mtd -r write breed-mt7620-phicomm-psg1208.bin Bootloader


这个刷Bootloader的原理应该就是很简单,使用mtn ( 感觉类似flash工具 ) 直接将Bootloader内容覆写就完成了。但是可能官方在之前的版本更新中修复了方式1的bug,所以导致了执行第二条命令的时候 /bin/ash: mtd: not found
开始还有点困惑,但是满满看发现 /sbin/mtn 为一个软链接,链接到 /tmp/某个文件, 然后在/tmp目录下并没有这个文件。

此时就想重新装一下mtd工具,由于斐讯k2官方系统是基于openwrt-14.07,所以使用opkg更新,而opkg update时候发现请求不到源了,查看其源文件发现其源地址已经404了。
细看地址时候发现 https://archive.openwrt.org/barrier_breaker/14.07/ramips/ 目录下不存在m7620,但是有m7620a和m7620n。然后查询斐讯k2的cpu为mt760a

更改源文件[/etc/opkg.conf] 7620 为 7620a,并取消package源(第二个网址那一行)注释。

然后执行

opkg remove mtd
opkg install mtd
mtd unlock Bootloader
mtd -r write breed-mt7620-phicomm-psg1208.bin Bootloader

此时等待路由器重启即可进入breed

3.刷固件

具体网上选择很多,我这边用的是梅林固件直接下载地址,具体还没测试。

总结:

  1. 官方设置定时重启任务比较简单,可能就是cat 一个值到一个文件然后source一下;这就导致了sql注入的可能,因此在值后面加一个| 【任意命令】都会以root权限立即执行。
  2. 官方发现bug后,修复bug,但是修复的过程也太过潦草。直接将将安装的mtd移动到/tmp下,建立软链接到[path]目录下,在开发固件的过程中可以使用,在打包完成后直接删了/tmp目录下文件,这样在命令行sql注入方式升级固件就不行了。
  3. 由于恰好这个系统年代久远,openwrt官方维护网址更新了,导致此次更新breed曲折了一些。
  4. 感觉小路由器这类linux系统,结构相比桌面linux来说更简单一些,不会有很复杂的东西。这次解决这个问题的过程还蛮有意思的,记录一下。

下面是公众号,欢迎扫描二维码,谢谢关注,谢谢支持!

公众号名称: Python入坑NLP
公众号
本公众号主要致力于自然语言处理、机器学习、coding算法以及Python的一些知识分享。本人只是小菜,希望记录自己学习、工作过程的同时,大家一起进步。欢迎交流、分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!