一加6刷入kali nethunter

D3eatYl發表於2022-02-14

Installing Kali NetHunter On the OnePlus 6

準備工具:

adb: https://jingyan.baidu.com/article/22fe7cedf67e353002617f25.html
twrp: https://www.twrp.me/(需要下載相同版本的.img與.zip)
magisk: https://github.com/topjohnwu/Magisk
kali nethunter映象: https://www.kali.org/get-kali/#kali-mobile
OnePlus6 Oxygen線刷包(寫這篇blog的時候kali要求的Oxygen版本是10)
payload_dumper: https://github.com/vm03/payload_dumper
(一加6-線刷救磚工具(以備不時之需): http://www.oneplusbbs.com/thread-4446250-1.html)
(建議準備個梯子)

ps: 寫這篇blog時裝置已不在身邊,所以圖片比較少,等日後想起來了再補上吧

刷入第三方Recovery: twrp

twrp下載

進到twrp官網,右上角有Devices,進去找到自己的裝置,建議選擇美版的下載

要下載.img與.zip兩個檔案

oneplus開啟usb除錯

進入到oneplus關於手機頁面,連續點選版本號,根據提示進入到開發者模式

找到開發者選項,開啟裡面的"OEM解鎖","高階重啟"與"USB除錯",此時注意裝置上若有彈窗要選允許USB除錯

刷入twrp

可先把需要的包全部儲存到手機裝置中,如果忘記了某個包後續可使用adb push 本機路徑 目標路徑傳到裝置上,這裡先把後續需要用到的包列出來

twrp_install.zip
Oxygen10.zip  (Oxygen線刷包)
nethunter.zip (nethunter映象)

裝置與電腦連線,adb devices檢視有沒有連線上裝置,使用adb reboot fastboot進入到fastboot模式

fastboot flash boot twrp.img刷入boot分割槽,按鎖屏鍵確定啟動,將會看到twrp的啟動畫面

解鎖,點選安裝,刷入twrp_installer.zip完成twrp固化,但要注意每次刷入新的包時都要重新刷一遍twrp_installer.zip防止其被官方recovery覆蓋。

刷入Oxygen10

進入twrp,點選清除,完成雙清(或者點高階清除勾選前四個,四清)

點選安裝,刷入Oxygen10(如果當前卡槽刷入失敗,可以嘗試切換到另一個卡槽再次嘗試刷入)

關於刷入的卡槽(即oneplus6中的A/B分割槽):若當前是在A分割槽(即A分割槽為活動分割槽),在刷入Oxygen時會將Oxygen刷入到非活動分割槽即B分割槽,而刷入成功後要記得在重啟中將當前活動分割槽切換到B分割槽再重啟進入到系統(進入系統是進入到當前活動分割槽中的系統),否則會提示當前分割槽未安裝系統,而在後面安裝nethunter時,會將nethunter刷入到當前的活動分割槽,所以在刷入完nethunter後無需切換分割槽,直接啟動進入系統即可

再次刷入twrp installer

點選安裝,再次刷入twrp_installer.zip,防止twrp被覆蓋

進入Oxygen系統,但切記不要聯網

進入Oxygen10,但在初始化過程中切記不要聯網,否則可能會卡谷歌驗證,等初始化結束後再聯網應該就沒有大問題了。

root準備

提取boot.img

將刷入的Oxygen系統的線刷包解壓,找到裡面的payload.bin檔案

使用payload_dumper對payload.bin進行提取(python payload_dumper payload.bin,執行成功後會在payload_dumper資料夾下找到output資料夾,裡面即是提取出的檔案),找到提取出的boot.img

使用magisk patch boot.img

安裝magisk app

將前面提取出來的boot.img匯入到裝置中

使用magisk patch boot.img(即下圖的"安裝"),並將得到的magisk_patched-****.img下載到電腦上(日誌中會顯示檔案路徑)

刷入nethunter映象並root

我選擇的是kali官網提供的nethunter映象包(?才不想去重新編譯改編譯bug)

刷入nethunter

切記,刷nethunter時不要清除/data下的資料(建議不清除任何資料),刷nethunter時會檢測你data下是否有資料,如果你/data下沒有資料會導致刷入失敗(也就是讓你先進入系統,完成初始化操作後再刷入nethunter)

重啟進入到Recovery模式,即進入到twrp中

刷入nethunter.zip

刷入成功後暫不要進入系統,直接進行root

進行root

在twrp中依次選擇重啟,進入到fastboot模式(有的也叫刷機模式?)

當裝置進入了fastboot模式後

電腦上輸入fastboot flash boot magisk_patched-****.img刷入magisk patch的boot分割槽

按下鎖屏鍵確認

沒有意外的話將會看到啟動畫面了(將會看到nethunter帥氣的開機畫面)

進入到系統後電腦上輸入adb shell,在oneplus的命令列模式下輸入su賦予root許可權,在裝置的彈窗上選擇允許

至此,root完成

禁用oneplus系統更新

進入系統後應該就可以找到nethunter程式了,進去後點選kali Chroot Manager啟動Kali Linux chroot

完成後在下面的Kali Services中把ssh服務開啟(我這裡勾選了開機自啟),這樣就可以連線到kali的命令列了(雖然後面好像用不到)

開啟NetHunter終端,選擇ANDROID進入Android終端,輸入su -c pm disable com.oneplus.opbackup並執行,禁用oneplus的自動更新

Have Fun

隨後nethunter還需進行一些初始化操作,開啟nethunter程式隨便點點熟悉下操作就ok了

個人一些微不足道的理解

後續如果要進行hacking操作的話應該是主要在NetHunter終端中進行的

NetHunter KeX應該是一個類似於VNC client的程式,可連線到本裝置的kali上,如要使用首先要在NetHunter中開啟KeX Manager,先SETUP LOCAL SERVER再START SERVER,隨後通過NetHunter KeX即可連線到本地上的kali

F-Droid應該是一個類似於app store的程式,裡面可以安裝和更新其他的nethunter 工具(app)

questions
Required key not available

開啟kali的terminal時我這裡會出現一些問題,輸入命令顯示 Required key not available,在kali的論壇上找到了一種解決方案,但不確定是否會影響後續使用。具體就是找到/etc/pam.d/su-l檔案,將其中的session optional pam_keyinit.so force revoke註釋掉。

ps: 若進不去kali的terminal(閃退)請檢查下nethunter中的ssh服務有沒有開啟

twrp被官方的recovery覆蓋

成功刷入nethunter並啟動後發現recovery變成了官方的recovery,嘗試過再次刷入twrp_installer,但是刷入後無法開機,不知為何(可能是個人操作問題)

關於A/B分割槽的問題

A/B分割槽理解的不透徹,A/B分割槽似乎是在系統進行更新時會使用到的一種機制,若A分割槽更新失敗可啟動B分割槽,可以實現類似於回滾的操作,好像也可以利用這個機制安裝雙系統

Reference

http://www.oneplusbbs.com/thread-4197303-1-authorid-1125704.html

https://www.kali.org/docs/nethunter/installing-nethunter-on-the-oneplus-7/

https://www.bilibili.com/read/cv3655689/

https://forums.kali.org/showthread.php?48217-SSH-Bash-Required-key-not-available

相關文章