Notice: 本文仅供学习研究之用,请勿用于非法用途。

Screenshot_20200517-232451

随着 2020.2 版本发布,工作结束之余,打算把手里闲置的这台一加刷成Nethunter把玩一番,关于Kali的发布历史你可以在这里查看,另外想要说明的是这不是一篇所谓的教程,只是我搞机时的一点记录,如果想要全面的了解你所使用工具或者软件RTFM是一个良好的习惯,如果你不知道哪些设备能够较好的适配Nethunter,你也可以点击这里查阅,官方说会不定期的在此页面进行更新。

与较老的安卓设备不同,新出的一些比如一加7这类都使用了 A/B 分区,关于什么是 A/B 暂不在本文讨论,可以简单理解为有两个系统分区,同时不存在Recovery分区,Recovery合并到了Boot分区中,所以和传统的刷机过程比如针对 Nexus 6 的相比,有些许的差异。

需要准备的工具如下:

  1. Oneplus 7 Pro OSS 的系统镜像:为了防止手欠导致的刷机失败,可以先预备一下“线刷救砖”工具,我使用的是对应 Android 10 的版,在第一次更新到最新镜像后请关闭OSS的自动更新
  2. 关于OSS的更新我推荐关闭系统的OTA,使用 OxygenUpdater 可以比较方便的下载到全量包进行更新
  3. TWRP:使用XDA上专门针对 Oneplus 7 Pro 的非官方版 Mauronofrio’s TWRP,XDA项目地址 https://forum.xda-developers.com/oneplus-7-pro/development/recovery-unofficial-twrp-recovery-t3931322
  4. Magisk:主要用于Root权限管理,Github项目地址 https://github.com/topjohnwu/Magisk/releases
  5. Universal ForceEncrypt Disabler :为了防止分区加密导致Kali Rootfs无法正常读取的,XDA项目地址 https://forum.xda-developers.com/android/software/universal-dm-verity-forceencrypt-t3817389
  6. Android Platform Tools 及驱动:必备

操作过程:

  1. 常规的Bootloader解锁不再在本篇中详细叙述,请确保在刷机之前已经是解锁状态
  2. 使用 fastboot 引导 boot版本的TWRP,在这里是以非 Installer 结尾的镜像文件
  3. 此时会进入到熟悉的TWRP界面,在选择 Installer 的Zip包后进行刷入,注意此时不要重启,否则无法重新进入OSS,为了确保能够正常引导还需要同时刷入 Magisk,在操作完成后TWRP就固化到Boot分区了
  4. 由于为了能够刷入 Nethunter,我们还需要解决加密分区的问题,刷入 Disable Dm-Verity ForceEncrypt 来强制禁止分区加密
  5. 重启一遍确认能够进入到OSS完成初始化配置,以及 Magisk 的APP能正常检测到之后,再一次重启到Recovery也就是进入TWRP中刷入 Nethunter 的 Rootfs,刷入 Rootfs 比较耗时具体视设备性能而定
  6. 刷入完成后重启进入到OSS(由于是第一次OSS初始化,这段耗时大约也需要3分钟左右),此时可以看到 Nethunter App 也已经安装了,需要首先打开 Nethunter App 确保 Chroot 能够正常初始化,此时会有若干请求 Root 权限的操作一一允许即可
  7. 打开 F-Droid 对喜欢的App进行更新,打开 Terminal 进入到 Kali 的 Chroot Shell 环境中开始进行体验,Enjoy!
  8. 另外由于同步了新版本 Kali 用于主系统的理念,所以目前除了 root / toor 内置账号外,还内置 kali / kali 的普通账户

关于更新:

更新主要有两种情况,一种就是系统ROM的更新,另一种就是 Nethunter Rootfs 的更新了。

  1. 更新 Nethunter Rootfs 比较简单,直接从官网下载 Zip 包后通过 TWRP 刷入即可,刷入后记得再次刷一遍 Magisk 保证 Root 权限仍然有效,重启后可以通过 Magisk App 查看Root管理是否还有,以及再一次使用 Nethunter App 对 Chroot 进行初始化
  2. 更新 OSS 由于目前我还没有遇到此种情况,故这里不再记录,一般来说更新OSS之前需要通过 Nethunter App 将你的 Rootfs 备份好,方便全量更新后再次刷入保持之前所做配置不会丢失

使用场景:

  1. 关于 Kex 体验,使用很简单通过 Nethunter App -> Kex Manager 设定VNC密码及打开服务即可通过VNC客户端连接,由于一加并未像三星或者锤子那样专门针对“桌面体验”做过优化,比如说拥有适配过桌面模式的APP,所以你插上HDMI之后实际上仅仅只是当前屏幕的一个投屏过程
  2. 关于 HID 攻击,在以往的 Nethunter 3.x 内核中HID的Gadget是被写死在内核的,在升级到新版 4.x 内核改为了手动切换USB工作模式,也就是在开始使用HID攻击的相关App时需要在 Nethuner App -> USB Arsenal进行配合后方可使用,可以自己写HID输入的相关脚本,也可以用Rucky这类颜值不错的App,本质上他们并无太多区别
  3. 关于 USB Keyboard,实际上这里也是模拟HID设备,这个App在有些应急情况下还是比较好用的,能够暂时性的替代一下鼠标,但是操作起来还是有些许麻烦的
  4. 关于用作U盘引导,主要使用 DriveDroid 来加载ISO,同样记住在使用前切换USB工作模式,但话说回来现在U盘也比较便宜,且有大量多引导U盘的制作工具,比如最近国产开源的 Ventoy 也是非常不错的选择了,在很时候这个使用场景没有那么必须
  5. 关于 WIFI 攻击,由于一加不像 Nexus 6 那样使用博通的网卡,所以没办法直接使用 Nexmon 驱动来将手机内置的无线网卡切换为 Monitor 模式,不过从XDA的论坛讨论来看将会慢慢支持高通,当然只用合适的外置网卡是肯定能够进行常见的WIFI攻击的,比如 TP-WN722N 这张小卡
  6. 其他已知问题,目前最大的问题还是掉电,只能暂时等待内核补丁的更新了。

Screenshot_20200423-231254

参考:

关注这里会有 Re4son 也就是一加7的Nethunter内核主要维护者解答机油的问题 https://forum.xda-developers.com/oneplus-7/oneplus-7--7-pro-cross-device-development/rom-kali-nethunter-oneplus-7-oneplus-7-t3976357