使用OnePlus 6T(一加6T)刷入 Kali NetHunter的操作总结

发布时间 2023-05-31 20:28:15作者: Junglezt

前景概述:看到网上有人用手机进行Bad USB攻击,自己也幻想了一下在手机中使用Kali Linux的场景,看到Kali官方提供的有移动端的设备Nethunter,于是我就筹划这准备刷入这个系统。

想要刷入NetHunter,并不是非常简单的事情,但是如果你有刷机基础的话,也可以是很简单的步骤。

我是一个小白,一点一点实验了很多次,手机变砖了不知道多少次,一点一点试验出的结果,如果有知情的大佬,可以给出指点。

首先什么是NetHunter?

基本的工作原理一定要搞明白,不然在刷机的过程中,你不知道要做些什么。

Kali NetHunter 是一款为安卓智能手机和平板电脑设计的开源安全渗透测试平台,由 Kali Linux 团队开发,集成了超过 600 多个安全测试工具和资源,可以帮助安全研究人员和渗透测试人员更方便、更快速地进行网络漏洞扫描、攻击和渗透测试等任务。

重点是,安装NetHunter之前,你需要安装一个Andriod的操作系统,他是基于你的Android操作系统实现的。说是安装一个NetHunter操作系统,不如说是让你的操作系统学习,并安装上这件强力的、具有杀伤力的工具

所以这就说到点子上了,并不是所有的Android操作系统都可以"学会",或者说可是安装上NetHunter,因为现在大多数运营商的操作系统都是上锁的,加密的,他们不会公开自己操作系统的底层源码,所里这些只有部分的机器可以安装NetHunter,Kali官网说明了这点,并提供了一些可以安装NetHunter实现安全内核的Android机型. https://www.kali.org/get-kali/#kali-mobile

所以,如果你的手机不是NetHunter所适配的完全内核,你也可以安装,只不过没有完全的功能,例如强力的HID键盘模拟数据、网卡监听等操作,只有基本的功能。

如果想要查看NetHunter所适配的所有机型以及详细信息,可以参考该网址: https://nethunter.kali.org/kernels.html

关于Android的基础知识

分区结构

首先我们要刷机,就要了解Android的分区结构,就像你刷Windows系统,Linux系统一个道理,需要了解他们如何启动和工作。

Android其中有几个重要分区

  • BOOT分区: BOOT分区用于引导和启动,主要负责加载内核初始化Android系统,实现ROOT就是相当于在修改该分区内容
  • Recovery分区: 该分区可以修改其他分区的数据,常用于系统出现故障进行修复,我们就是使用该分区进行系统的刷机
  • SYSTEM分区: SYSTEM分区包含系统的核心文件,例如常见的系统应用、系统服务、驱动程序
  • DATA分区: DATA分区主要包含系统数据用户数据
  • Cache分区: 用于缓存临时的文件,例如浏览器缓存、程序缓存、临时文件
  • USER分区: 该分区可有可无,没有该分居,数据就存储在DATA分区中。常用于存储用户的数据,例如音乐、照片、文档

一般分区的启动顺序:
BOOT --> SYSTEM --> Cache --> USER --> DATA

A/B分区结构

A/B 分区结构是一种在 Android 设备上广泛使用的双分区系统,它允许在设备固件更新时进行无缝切换,以便提高设备的可靠性和稳定性。
具体来说,A/B 分区结构将设备存储器分为两个相同大小的分区,分别称为 A 分区和 B 分区。其中一个分区(例如 A 分区)被用作主分区,安装了 Android 系统和应用程序等核心数据;而另一个分区(例如 B 分区)则作为备份分区,与主分区完全相同,但不会被用于运行设备。
当设备需要进行固件更新时,新的固件将被下载并写入备份分区中。并且在确保固件写入完成之后,设备会自动重启,并切换到备份分区上运行新固件。这样,用户就可以在无需手动操作设备分区的情况下完成更新。
如果设备在更新过程中发生错误或更新失败,则设备将恢复到之前使用的分区上,并不会影响原有的数据。同时,设备也会在后续时间内持续检测更新版本,并尝试再次更新固件。
总之,A/B 分区结构是 Android 设备上一种非常实用的分区方式,它提供了一种安全、可靠的固件更新方法,减少了更新过程中数据丢失和固件破坏的风险。

BootLoader

上述,在启动的过程中,并没有启动到Recovery分区的步骤,为什么?因为这个启动那个分区,是由BootLoader来控制的,BOOT分区用于把启动引导到系统分区,而BootLoader就相当于电脑中的UEFI/BIOS引导一样,
他在启动的时候,会检查屏幕、CPU、内存等设备是否正常就绪,然后再根据用户选项进入制定的模式,一般默认为BOOT分区,就是启动Android手机系统。

那么这个用户选项是我们可以配置的,就是在开机的时候,比如通过同时摁下开机和音量+会使OnePlus 6T设备进入FastBoot模式,同时摁下开机和音量-就会进入Recovery模式

FastBoot

FastBoot用于使用USB接口调试Android设备执行数据传输、命令执行等操作,FastBoot可以对手机做对于系统的任何修改,刷机,解锁BootLoader,所有关于刷机的操作,我们都可以在这里执行。
但是他都是命令行,而且我们要进行很多的操作,命令行容易出错,所以这里我们使用另一种方法来刷机,使用Recovery刷机。

TWRP

每个Android设备中都会带有官方自带的Recovery分区的恢复操作系统,但是一般只能进行简单的操作,我们需要使用Recovery分区进行刷机,就需要使用一个强大的Recovery工具,那就是TWRP
TWRP可以更改其他分区的数据,所以我们可以执行任何关于刷机的操作。

Magisk

Magisk用于获取ROOT权限和管理ROOT权限,手机是基于Linux开发的,在Linux中,获得ROOT权限,就可以就这台机器进行任何的修改,Android也是一样,默认情况下,手机都不会ROOT,因为很容易造成系统的故障。获取ROOT需要你的手机厂商支持该设备取得ROOT权限。

9008刷机

一般都是用于把手机搞坏,变砖。用于救砖的功能,不同的手机有不同的救砖程序,这个一定要下载,因为稍微出一点问题,就需要9008刷机

adb

adb和fastboot类似,也是用于调试,不过使用场景不同,一个是进入Android系统开机状态进行调试,一个是开机时进入Fastboot模式进行调试

刷机前的准备

找到了自己机型适配,现在需要准备一些需要的文件,这里我的设备是OnePlus 6T,采用A/B分区存储系统,如果和我类似,也可以参考

  1. NetHunter镜像文件:可以自己构建,参考官网,由于我们的设备官方适配,下载官方提供的. https://www.kali.org/get-kali/#kali-mobile
  2. TWRP: 官网下载自己机器适配的版本,注意需要下载一个imgzip文件。 https://twrp.me/ ,这里需要注意的是,很多情况下如果刷入TWRP失败,或者进入TWRP失败都是因为版本没有选对,可以尝试换一个版本,如果没有适配的版本,可以去搜索一下,估计可能会有一些大佬发出你这个机型适配的版本
  3. Magisk: 一般下载是一个.apk文件,使用TWRP刷入时需要改为.zip文件,进入系统安装的时候改为.apk文件即可,关于Magisk详细说明和下载,可以看官网 https://magiskmanager.com/
  4. OnePlus 6T系统: 所有包都在该网站https://yun.daxiaamu.com/OnePlus_Roms/
    氧OS 10 9008刷机包:https://yun.daxiaamu.com/OnePlus_Roms_2/一加6T/9008线刷救砖包氧OS 10.3.8/`
    氧OS 11 刷机包: https://yun.daxiaamu.com/OnePlus_Roms_2/一加6T/氧11.1.1.1/
  5. fastboot、adb调试工具: 官网下载,支持Windows、Linux、MacOS,网址:https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn

在上述下载准备刷入氧OS 11,因为氧OS 11支持NetHunter,一定要看清楚

刷机步骤

9008刷氧OS 10

好的现在我们开始刷入系统,第一件事,查看你系统的版本,如果是氧 9我这里推荐使用9008刷机为氧 10版本,使用9008刷机可以学习救砖,而且一切都重头开始

首先使用电源+音量加或者正常关机,将电源进入关闭状态,数据线一端连接Windows电脑,然后同时摁下手机音量加+音量减一直摁着四五秒,连接电源线,Windows管理中会多出一个COM端口

如果未识别,不要担心,因为Windows没有安装9008驱动,下载即可,这里访问我共享的天翼云盘连接,下载驱动安装即可:
https://cloud.189.cn/web/share?code=JBjQFnRJ7beu(访问码:jm3n)

然后解压并打开下载的9008刷机包中的MsmDownloadTool V4.0.exe

进入后会有一个COM口处于连接状态代表连接成功,可以进行刷机,点击start开始刷机

刷机过程中,9008工具会把系统等文件都刷入A分区,不会管B分区的状态

完成后,开机进入系统,进行初始化向导,这里不要不要联网和设置密码,以免出现问题

使用fastboot解锁BootLoader(oem)

进入系统后,设置 --> 关于手机 --> 一直点击版本号进入开发者模式 --> 返回上一级 --> 系统 --> 开发者选项 --> 启动OEM解锁 --> 启动USB调试

上述步骤操作完成,我们第一件事就是解开BootLoader,一般厂商为了防止用户对系统胡乱配置,对BootLoader进行了上锁,需要解开。
解压下载的fastboot、adb调试工具,使用命令行进入该工具的目录,确保数据线连接到电脑和手机,还有USB调试打开
输入命令,注意我使用的是Linux,如果是Windows去掉前面的./即可

# Linux
./adb devices
# Windows
adb devices


如果设备状态为unauthorized,代表设备没有允许连接,需要进入手机,点击允许

然后输入命令,重启进入fastboot模式

./adb reboot fastboot

进入后可以通过音量键选择执行的操作,例如START进入系统,Recovery mode进入Recovery模式,其中电源键为确认键

Fastboot模式如图所示,其中重要的参数DEVICE STATE - locked是锁住的,我们就是解开这个
这时我们的电脑和手机数据线是连接的
输入命令,确定是否可以使用命令对手机进行fastboot调试

./fastboot devices

如果有回显设备,代表连接成功,执行下方命令解开BL锁

./fastboot oem unlock


手机将会进入如下入所示,摁上下键选择,然后选择UNLOCK THE BOOTLOADER,摁下电源键确定

确定后会重启,然后进入一个加载页面,该过程会将手机回复出厂设置,清除所有数据

结束后,会进入系统,配置初始化引导选项,这里可以进行上述的步骤,然后使用adb进入fastboot模式

不过这里我们直接关机,这里介绍另一种进入fastboot的方法
关机后,长摁电源键+音量减进入Recovery模式,你会进入OnePlus 6T默认的Recovery系统,一会我们会将TWRP覆盖该系统

首先将系统进入关机状态,然后同时摁下电源建+音量减即可进入Recovery模式,然后通过Reconvery模式

选择:简体中文 --> 高级 --> 进入刷机模式 --> 进入刷机模式
这里的刷机模式就是fastboot模式

进入TWRP刷入TWRP

上述步骤结束你应该进入了fastboot模式,并且解开了BL锁,在fastboot模式中DEVICE STATE - unlocked就是解锁成功

现在需要刷入TWRP,这里注意,这里根据你的操作系统和Android版本选择你的版本,如果不行就就换,直到试出可以使用的版本。

我试出我的氧OS 10,Android 10的OnePlus 6T使用的版本是官方版本twrp-3.6.0,注意在官网下载.img.zip文件,一个用于临时进入TWRP,一个用于刷入TWRP

为何要临时进入,再刷入TWRP,是由于使用的是A/B分区结构,recovery分区boot分区在一起,如果将TWRP使用fastboot刷入,会损坏boot分区导致无法开机,这里我是这样的,具体原理不太清楚,这是我试出来的总结

好的现在使用fastboot临时进入TWRP,执行下方命令

./fastboot boot twrp-3.6.0_9-0-fajita.img


一会手机就会进入TWRP中,截图我就不放了,点击select language选择语言,选择为chinese中文

然后这是你的电脑应该会弹出可以访问手机的文件系统,这时往里面复制文件,将TWRP下载的.zip文件复制到手机中,复制结束

然后TWRP点击安装,选择twrp.zip文件,拖动滑块确认刷入

上图可以看出TWRP默认会将boot_a和boot_b,就是A分区的bootB分区的boot都刷入TWRP

刷入完成后TWRP重启,然后选择重启进入Recovery,注意这里槽位A,就是重启进入的是A分区Recovery

如果重启进入的RecoveryTWRP代表刷入成功,也可以直接关机,还记得刚刚说的吗电源键+音量减可以进入Recovery模式

使用TWRP刷入氧OS 11

跟上面刷入TWRP的步骤一样,先进入Recovery模式中,将下载的氧OS 11.zip文件复制到手机中,点击安装

点击选中氧OS 11文件,滑动安装即可


安装过程中,可以看到将氧OS 11安装到了B分区还记得刚开始将的A/B分区概念吗,系统会将需要新刷入的系统包刷进B分区,然后下次启动的时候,如果启动成功,清空A分区的系统文件,如果启动失败,系统更新失败,重新返回A分区,继续使用以前的氧 10系统
刷入系统完毕后,TWRP重启,先点击槽位B会切换到分区B,因为系统刷入到了分区B

点击系统,然后重新进入系统,初始化向导进入系统,可以看到是氧OS 11系统

如果不选择槽为B的话,默认为槽为A的话,不会进行系统更新,你进入系统看到的还是之前的系统氧OS 10

解决刷入NetHunter前TWRP问题

如果你成功进入了氧OS 11系统中,代表你刷机成功了,这是需要注意,系统认为你更新成功了,会将A分区的系统清除,只能使用B分区,但是反而会出现一个问题,当你在氧OS 11中,关机然后摁下电源键+音量减进入Recovery中时,发现是系统默认的Recovery,我们刷入的TWRP被刷入系统时替换了,所以这里我们需要再次刷入一次TWRP,这里我在使用./fastboot boot twrp-3.6.0.img的时候,启动失败无法进入,并且报了一个系统级别的操作。如下

QUALCOMM CrashDump Mode
Attempted to kill init! exitcode=0x0000000b
                                complete_and_exit

然后我在网上搜到了跟我一样,并且提供了可以启动和刷入的TWRP文件
解决方案博客位置:https://silverrainz.me/jour/2022/02.html
提供的TWRP位置:https://forum.xda-developers.com/t/recovery-11-12-13-unofficial-twrp-for-oneplus-6-6t.4382121/

但是呢,虽然可以刷入这个TWRP,但是读取Android系统文件的名称却是a9y81T1OHPVEZXFVoegf0B这样的文件,刚开始我以为是氧OS 11默认的分区加密

后来发现是TWRP的问题,所以这里我们急需一个适配氧OS 11TWRP,但是我并没有找到,这里我经过阴差阳错,试出了一个奇怪的方法,具体思路看我下面分析:

我们现在需要使用TWRPB分区刷入NethunterMagisk,但是我的TWRP识别文件为乱码,我需要一个正常的TWRP,或者我需要一个外接的存储设备,但是我并没有外接存储设备

然后我尝试使用fastboot槽位设置为A,看一看之前给氧OS 10刷入的TWRP能不能识别,但是并没有成功,文件还是乱码

然后我只能使用9008刷机重新开始,刷入氧OS 10,这里好玩的事情发生了,还记得刚开始进行9008刷机的时候说的话吗,9008刷机默认会将系统包刷入A分区,仔细想一下,我们现在B分区是有氧OS 11,9008直接刷入分区A,所以现在手机中拥有A分区 氧OS 10B分区 氧OS 11

然后我们重头来,由于9008刷机会将BL再次上锁,我们需要再次解开,这是需要注意:我们在解开BL锁的时候,A分区和B分区的系统都会清楚所有数据,恢复到出厂设置,OK

然后我们继续刷入TWRP,还记得第一次刷入TWRP的时候说的话吗?TWRP默认会刷到boot_a和boot_b,这里正常刷入

现在回到刚刚在进行9008刷机之前的问题,我们需要一个可以用与氧OS 11的TWRP,这时使用现在刷入的TWRP,能不能正常查看氧OS 11的文件呢?经过我的测试,是可以正常查看文件并刷入的

上述的思路中的步骤再次9008刷机、解锁BL、刷入TWRP,都是和前面的步骤一样,这里我不再过多操作。

正式刷入Nethunter和Magisk

如果你完成了艰难的再次9008刷机、解锁BL、刷入TWRP,现在你的Android设备OnePlus 6T中的分区环境为这样

  • A分区: 系统为氧OS 10,解锁BL的时候清空了所有数据,并且刷入了TWRP-3.6.0
  • B分区: 系统为第一次刷入的氧OS 11,在再次解锁BL锁的时候清除了所有的数据,并且刷入了TWRP-3.6.0

现在我们只需要进入TWRP,然后重启,选择槽位B,选择进入系统,进入的是B中的氧OS 11系统,进入系统后进行初始化向导(注意不要联网)
如果不执行上述的初始化操作,将无法安装NetHunter会提示你先进行初始化操作

重启进入Recovery模式TWRP

复制NetHunter.zip和Magisk.zip到Android中

选择NetHunter.zip包,滑动刷入NetHunter

安装大概需要几分钟的时间

刷入成功后,同样的步骤,不同的软件包,刷入Magisk.zip

刷入成功后,重启系统,你会看到Kali的壁纸,还有NetHunter这样的程序,打开文件管理找到Magisk.zip将后缀名该为apk安装


然后重启系统就可以打开你的NetHunter了,如果不行,给NetHunter ROOT权限后再次重启

成功,开始你的NetHunter之旅吧!成为真正的黑客,真正的Black Hacker Attacker!

总结:

  1. 这次学习NetHunter以及刷机整整用了我2.5天的时间,加上我的预习,虽然成功的不太靠谱,感觉有些地方不对劲,但是我的目标完成了,明天继续研究有没有更简单的方法。
  2. 参考视频 bilibili大佬:https://www.bilibili.com/video/BV1BY4y1H7Mc/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=26f5bf664da5f235507d877da05fd710
    还有: https://www.bilibili.com/video/BV1pv4y1v769/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=26f5bf664da5f235507d877da05fd710
  3. 使用的主要软件包来自于: https://yun.daxiaamu.com/OnePlus_Roms/