购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 Kali NetHunter刷机

为什么要在刷入官方镜像的Android测试机之后再刷入Kali NetHunter呢?

正如桌面端的Kali是专为安全人员设计的定制版Linux操作系统,Kali NetHunter是第一个针对Nexus移动设备的开源Android渗透测试平台。刷入这个系统有利于逆向开发和分析人员更加深入地理解Android系统:不管是使用Kali NetHunter直接从网卡获取手机全部流量,还是在刷入Kali NetHunter后经由Kali NetHunter直接执行原本在桌面端Kali上才能执行的一切命令(比如htop、jnettop等,这些命令在原生的Android上是不支持的)。另外,在Kali NetHunter刷入之后,逆向开发和分析人员可以通过它从内核层去监控App,比如通过strace命令直接跟踪所有的系统调用,任何App都没有办法这类监控,因为从本质上来说任何一个App都是Linux中的一个进程。之所以可以从内核层去监控App,是因为安装的Kali NetHunter和Android系统共用了同一个内核。因此,Kali NetHunter值得每一个安卓逆向开发和分析人员所拥有。

另外,Kali NetHunter主要修改了Android内核部分的内容,这些修改对日常的使用几乎不会有任何影响,比如Xposed这个Hook工具依旧可以在Kali NetHunter上正常使用,这就大大缩减了逆向开发和分析人员进行测试的成本。

接下来就开始进入刷入环节。

下载SuperSU工具以及适配于Nexus 5X版本的Kali NetHunter。注意:这里的SuperSU是指zip而不是apk,同时不要使用SuperSU官网给出的最新版SuperSU,而要使用SuperSU-SR5版;另外,Kali NetHunter官网给出的2020.04版本的Kali NetHunter是有bug的,本书范例下载的是2020.03版。在官网下载Kali NetHunter时,会发现Nexus 5X的设备只支持Oreo版本,而Oreo是Android 8的代号,和之前刷入的手机镜像一致。

这里给出SuperSU的下载链接(https://download.chainfire.eu/1220/SuperSU/SR5-SuperSU-v2.82- SR5-20171001224502.zip?retrieve_file=1)以及Kali NetHunter for Nexus 5X的torrent下载链接(https://downloadtorrentfile.com/hash/d6cc15ce2e3fa5b5ba588457c52d4e2c2941e6d8?name=nethunter-2020-3-bullhead-oreo-kalifs-full-zip)。

下载完毕后,开始安装环境。在刷入Kali NetHunter之前,要对手机进行Root操作。由于Magisk进行Root的方式实际上是一个“假”Root(读者有兴趣的话可自行研究),因此笔者选择SuperSU进行Root。在安装SuperSU之前,Magisk和SuperSU是不兼容的,首先按照1.3.1小节中的步骤重新刷入一个新的镜像。

重新刷机之后,启用开发者模式与USB调试功能并确认手机已连接上计算机。然后在主机上使用adb命令将SuperSU-v2.82-201705271822.zip和下载的Kali NetHunter用push命令推送到安卓设备上:

     root@VXIDr0ysue:~/Chap01# adb push SuperSU-v2.82-201705271822.zip /sdcard/
     SuperSU-v2.82-201705271822.zip: 1 file pushed, 0 skipped. 1.9 MB/s (5903921
     bytes in 3.036s)
     root@VXIDr0ysue:~/Chap01# adb push nethunter-2020.3-bullhead-oreo-kalifs-
     full.zip /sdcard/

参照1.3.2小节中所展示的截图,重新刷入并进入TWRP界面,选择Install,然后选择SuperSU文件,刷入并重启,从而使系统再次获得Root权限,具体操作如图1-18所示。

图1-18 刷入SuperSU

重启后进入Shell确认能够获得Root权限。

       root@VXIDr0ysue:~/Chap01# adb shell
       bullhead:/ $ su
       bullhead:/ #

重新进入TWRP,按照同样的步骤刷入Kali NetHunter。这个过程可能会很长,刷入成功后重启,Kali NetHunter界面如图1-19所示。

图1-19 Kali NetHunter界面展示

此时,桌面壁纸发生了变化。打开设置页面,进入“关于手机”界面,会发现Android内核也发生了变化(从原来谷歌团队编译变成了re4son@nh-hernel-builder编译的),如图1-20所示。

从官方文档来看这个内核是在标准Android内核的基础上打的补丁(patch),主要是在内核增加对网络、WiFi、SDR无线电、HID模拟键盘等功能的支持或添加驱动程序。利用这个定制的内核,普通的安卓手机就可以进行诸如外接无线网卡使用Aircrack-ng工具箱进行无线渗透、模拟鼠标键盘进行HID Badusb攻击、模拟CDROM利用手机绕过计算机开机密码、一键部署Mana钓鱼热点等功能。

这些与我们进行安卓App的逆向过程关系不是很大,我们真正关心的是Kali NetHunter的输入,相当于在安卓手机里装上了一个完整的Linux环境。

在App层面,从图1-19可以看到Android上的应用多出了NetHunter、NetHunter-Kex、NetHunter终端等。其中,NetHunter终端是一个终端程序,可以使用ANDROID SU进入手机的终端或者选择Kali模式。对应之前所说完整的Linux环境,此时通过终端执行Kali中的各种命令,比如apt安装、jnettop查看网卡速率、ifconfig查看ip地址等命令。下面展示的是apt命令,如图1-21所示。

图1-20 Kali NetHunter刷之前和刷之后的内核对比

图1-21 Terminal命令展示

要使用其他NetHunter相关的App,比如图1-21展示的NetHunter终端,则需要打开NetHunter App并允许所有申请的权限。在App进入主界面后,打开App侧边栏,选择Kali Chroot Manager就会自动安装上Kali Chroot。在安装完毕后,单击START KALI CHROOT启动Chroot,就可以使用NetHunter-Terminal和NetHunter-Kex了,详细步骤如图1-22所示。

图1-22 Kali Chroot配置

此时,可以通过手机上的NetHunter终端运行各种Android原本不支持的Linux命令。如果觉得手机界面过小,还可以通过SSH连接手机最终在计算机上操作手机。具体关于SSH的配置,可以打开NetHunter,在侧边栏中选择Kali Services,然后勾选RunOnChrootStart,并选中SSH按钮,具体操作流程如图1-23所示。这时,如果计算机和手机在同一个内网中,则可以使用计算机上的终端进行SSH连接。

图1-23 NetHunter启动SSH

在启动SSH后,在计算机上就可以通过手机的IP来连接手机。笔者手机的IP为192.168.50.129,使用计算机连接手机的演示如下:

可惜的是,Kali NetHunter仅支持Nexus系列及OnePlus One系列部分手机机型。 J39AsS/bY3EwDZd0DOUABUlvc32OwsoMR9G5Ya5JoCmtp9okncFwHzIngwI0hAWF

点击中间区域
呼出菜单
上一章
目录
下一章
×