斐訊k2刷韌體記錄 版本22.6.512.75(最新2020)

2020-10-25 17:00:40
嘗試直接升級或降級

刷韌體需要先刷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的一些知識分享。本人只是小菜,希望記錄自己學習、工作過程的同時,大家一起進步。歡迎交流、分享。