安卓渗透测试平台Kali(Nethunter)搭建教程

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

nethunter使用教程

本文将介绍三个主要部分,包括Android刷Kali的过程,刷机原理的简单探索,以及Android版本Kali的简单使用。在进行文章复述时,我将保留大括号内的ID,并对其余文本进行创新性修改,以确保文章的原创性和SEO效果。请注意,以下是经过修改的文章内容:

本文包含以下软硬件环境:

  1. OnePlus x手机一台
  2. Windows 7 64位系统
  3. QDLoader-HS-USBDriver64bit_Setup
  4. OnePlusX14A.04151103
  5. twrp-3.0.2-0-onyx.img
  6. nethunter-generic-armhf-kalifs-full-2020.1.zip
  7. platform-tools_r29.0.6-windows

在本文中,我们使用OPX指代OnePlus x,win7指代Windows 7 64位系统,twrp指代twrp-3.0.2-0-onyx.img。

声明:本文中提到的软硬件环境与笔者无任何利益关系,并且无法保证软件的安全性。仅供学习研究参考。

安卓刷机背景介绍
刷机是指给手机重装系统的过程。类比于PC电脑,手机上的flash相当于硬盘。将Windows/Linux安装到硬盘上类似于将Android安装到flash上。

在刷机之前,我们需要了解手机的几种状态。对于OPX而言,有四种状态:

  1. Download状态(仅适用于高通soc,通过9008 COM通信)
  2. fastboot状态
  3. Recovery状态
  4. Android OS状态

刷机分为线刷和卡刷两类。线刷是通过USB线连接手机和电脑,使用工具刷入ROM。卡刷是将ROM放入手机本地存储或SD卡中,然后通过Recovery进行刷机。

这四种状态的启动顺序如下:
启动 > [Download状态] > fastboot状态 > Recovery状态 = Android OS状态

环境搭建顺序为:先通过Download状态刷机,然后在fastboot状态刷入twrp,接下来在Recovery状态刷入Kali,最后正常启动系统。

Download状态刷机
在刷机过程中,我们经常听到一句话,即将手机刷成砖。所谓刷成砖指的是无法进入fastboot状态、Recovery状态和Android OS状态。对于普通用户而言,只能通过Download状态刷机。而这个Download状态是高通soc独有的功能。

大多数情况下,我们不需要执行这一步骤。但是,为了学习的目的,我尝试了一下通过Download状态刷机。如果您对此不感兴趣,可以直接跳过本章节。

准备工作:

  1. 准备一台OPX手机和一根USB线
  2. 下载QDLoader-HS-USBDriver64bit_Setup
  3. 下载OnePlusX14A.04151103
  4. 安装QDLoader-HS-USBDriver64bit_Setup并重新启动电脑

上述Stock Firmware ROM我无法保证其安全性,请在刷机时谨慎操作。

开始刷ROM:
步骤1:连接手机和电脑,按住OPX音量+键,并使用USB线将手机与电脑连接,直到Windows 7设备管理器的端口(COM和LPT)中出现Qualcomm HS-USB QDLoader 9008(COM n)。
步骤2:打开MsmDownloadTool V2.0.2工具,该工具在OnePlusX14A.04151103中自带。在设备类型中,如果看到一个Com设备,说明准备就绪。此时,点击校验按钮,校验Stock Firmware ROM是否无误。如果显示OK,则表示没有问题。准备就绪后,点击开始,工具的通信状态将显示“正在下载镜像system.img”,等待片刻(约几分钟),直到工具显示“正在关机…”,表示刷机完成。此时按下电源键开机,即可进入氧OS系统。

C:UserstestDesktopplatform-tools_r29.0.6-windowsplatform-tools>fastboot.exe devices
1a7c2bf0        fastboot

到此为止,Download状态刷机过程结束。此时,手机的所有分区信息都被重置为刷入Stock Firmware ROM的文件,与出厂设置完全相同。

fastboot状态刷twrp
通常情况下,厂商提供的恢复功能相对较少,我们想要刷入twrp,让我们开始吧!

准备工作:

  1. 准备一台OPX手机和一根USB线
  2. 下载adb、fastboot安卓调试工具集platform-tools_r30.0.1-windows.zip
  3. 下载twrp-3.0.2-0-onyx.img

开始刷Recovery:
步骤1:关闭手机,按住音量+和开机键,直到手机屏幕显示“Fastboot Mode”。
步骤2:通过USB线连接手机和电脑。
步骤3:进入platform-tools目录,执行命令fastboot devices。

nethunter使用教程nethunter使用教程

如果上面的打印信息显示正常,则表示fastboot连接正常。
步骤4:执行命令fastboot oem device-info,查看fastboot是否已锁定。如果已锁定,则需要解锁才能输入twrp。

如果当前显示为锁定状态(Device unlocked: false),则需要执行命令fastboot oem unlock尝试解锁。如果提示”oem unlock is disabled”,说明无法在fastboot状态下解锁。幸运的是,通过查阅资料,我发现可以进入氧OS系统的开发者模式来解锁fastboot,操作如下:

  1. 重新启动设备,进入氧OS。
  2. 打开Settings — About phone — Build number,点击7次,退出About phone,进入Developer options。
  3. 启用OEM unlocking。

完成上述操作后,重新进入fastboot mode,再次执行fastboot oem unlock命令。此时手机会提示解锁会删除用户数据,是否继续。点击yes,手机将重新启动进入氧OS系统。再次进入fastboot mode,查看锁定信息,发现解锁成功。

一切准备就绪后,开始刷入twrp。我将twrp-3.0.2-0-onyx.img放在桌面c:UserstestDesktop。

执行命令fastboot flash recovery c:UserstestDesktoptwrp-3.0.2-0-onyx.img。

nethunter使用教程

执行命令fastboot boot c:UserstestDesktoptwrp-3.0.2-0-onyx.img,让手机进入twrp。点击Reboot — Recovery,此时会提示是否安装SuperSU,拖动图标选择安装,因为后续刷Kali需要root权限。手机再次进入Recovery界面,fastboot状态刷twrp过程完成。

点击Reboot — System进入系统,配置好WiFi。此时会提示SuperSU Installer,点击进入,选择TWRP,等待下载完成。完成后,选择continue,接下来会启动到recovery安装SuperSU。安装完成后,手机将自动重启,进入OOS(氧OS)。

至此,twrp已经刷写完成。

Recovery状态刷Kali
完成上述工作后,就可以开始刷入Kali了。

准备工作:

  1. 准备一台OPX手机和一根USB线
  2. 下载nethunter-generic-armhf-kalifs-full-2020.1.zip,下载Generic ARMhf

开始刷Kali:
步骤1:关闭手机,长按音量-键和开机键,使手机进入recovery模式。
步骤2:点击Advanced — ADB Sideload。此时手机进入等待状态。
步骤3:进入platform-tools目录,执行命令adb sideload c:UserstestDesktopnethunter-generic-armhf-kalifs-full-2020.1.zip(我将nethunter-generic-armhf-kalifs-full-2020.1.zip放在桌面c:UserstestDesktop)。

nethunter使用教程

root@OnePlus:/dev/block # ls
...
mmcblk0
mmcblk0p1
mmcblk0p10
mmcblk0p11
mmcblk0p12
mmcblk0p13
mmcblk0p14
mmcblk0p15
mmcblk0p16
mmcblk0p17
mmcblk0p18
mmcblk0p19
mmcblk0p2
mmcblk0p20
mmcblk0p21
mmcblk0p22
mmcblk0p23
mmcblk0p24
mmcblk0p25
mmcblk0p26
mmcblk0p27
mmcblk0p28
mmcblk0p29
mmcblk0p3
mmcblk0p4
mmcblk0p5
mmcblk0p6
mmcblk0p7
mmcblk0p8
mmcblk0p9

步骤4:等待进度完成100%。重启后,显示了酷炫的界面。

接下来进入系统后,需要配置网络并安装SuperSU。

Android平台Kali环境搭建到此结束。接下来,我们将探索刷机的原理。

探索刷机的奥秘
无论是Download状态、fastboot状态还是Recovery状态,刷机都需要使用一些工具进行简单操作。作为黑客,我们不能仅停留在脚本小子的层面,让我们来看看刷机的奥秘是什么。

首先,在开发者选项中启用USB调试,使adb连接手机。进入platform-tools目录,执行adb root命令,发现执行失败。接着执行adb shell命令,此时可以获取一个低级别的shell。通过执行su命令,我们可以获取root shell。

首先,让我们查看flash分区情况。

DDR -> /dev/block/mmcblk0p4
DRIVER -> /dev/block/mmcblk0p22
LOGO -> /dev/block/mmcblk0p21
aboot -> /dev/block/mmcblk0p5
boot -> /dev/block/mmcblk0p7
cache -> /dev/block/mmcblk0p15
config -> /dev/block/mmcblk0p26
dbi -> /dev/block/mmcblk0p3
fsc -> /dev/block/mmcblk0p18
fsg -> /dev/block/mmcblk0p17
grow -> /dev/block/mmcblk0p29
misc -> /dev/block/mmcblk0p20
modem -> /dev/block/mmcblk0p1
modemst1 -> /dev/block/mmcblk0p10
modemst2 -> /dev/block/mmcblk0p11
oppodycnvbk -> /dev/block/mmcblk0p12
oppostanvbk -> /dev/block/mmcblk0p13
pad -> /dev/block/mmcblk0p9
param -> /dev/block/mmcblk0p23
persist -> /dev/block/mmcblk0p14
recovery -> /dev/block/mmcblk0p16
reserve1 -> /dev/block/mmcblk0p24
reserve2 -> /dev/block/mmcblk0p25
rpm -> /dev/block/mmcblk0p6
sbl1 -> /dev/block/mmcblk0p2
ssd -> /dev/block/mmcblk0p19
system -> /dev/block/mmcblk0p27
tz -> /dev/block/mmcblk0p8
userdata -> /dev/block/mmcblk0p28

nethunter使用教程

root@OnePlus:/dev/block/platform/msm_sdcc.1 # cat /proc/partitions
major minor  #blocks  name
...
 179       16      16384 mmcblk0p16
...

接下来,让我们查看每个分区对应的名称。

通过上述信息,我们可以看到这些分区标签非常熟悉。这些文件在大多数Stock Firmware ROM中都存在,并且在校验工具时也会有相应的提示。

因此,刷机的过程应该是将相应的文件写入分区的过程。线刷和卡刷的ROM包之所以不同,也是因为不同的刷机模式对ROM保护文件、内容和打包格式的处理方式不同。

以recovery分区为例,我们来验证一下我们的猜想。验证过程如下:将整个recovery分区dump到本地,然后通过adb从手机中pull出来。将dump出的二进制文件与twrp镜像进行比较,我们预期的结果是两个二进制文件完全相同。

查看recovery分区大小。

root@OnePlus:/dev/block/platform/msm_sdcc.1 # dd if=/dev/block/mmcblk0p16  of=/sdcard/recv.dump bs=1024 count=16384
C:UserstestDesktopplatform-tools_r29.0.6-windowsplatform-tools>adb.exe pull /sdcard/recv.dump .
/sdcard/recv.dump: 1 file pulled, 0 skipped. 3.9 MB/s (16777216 bytes in 4.062s)
dd if=/sdcard/recovery.img of=/dev/block/mmcblk0p16

每个block大小为1k,因此recovery分区大小为16MB。我们将整个recovery分区dump到本地,并通过adb从手机中pull出来。twrp-3.0.2-0-onyx.img的大小为14.4M,共15112192个字节。通过比较发现,dump出的文件的前15112192个字节与twrp-3.0.2-0-onyx.img完全相同。

这证实了我们之前的猜想,即刷机无论是刷recovery还是Android ROM,都是将相应的二进制文件写入分区。

接下来,我进行了一个尝试,将OnePlusX14A.04151103中的recovery.img通过adb传入手机,并在adb shell中使用dd命令将recovery.img写入recovery分区。

关机后,进入recovery模式,发现twrp被覆盖回原厂recovery了。

我猜想,线刷和卡刷的区别在于线刷(Download模式和fastboot模式)时没有文件系统的概念,只能将整个文件写入分区,从而覆盖原有分区文件。

而卡刷不同,卡刷是在recovery模式下进行的,而这个模式是精简版的Linux,recovery与Android OS同级。在这种模式下,一方面可以像线刷一样直接写入分区,另一方面也可以挂载原有的Android文件系统,对Android文件系统进行增删改,实现升级的目的。

使用Android Kali
在Recovery状态刷入Kali的过程实际上是一个升级的过程。在升级Kali的zip包时,会对boot img进行一些修改,安装Kali文件系统,并安装一些apk包,如NetHunter.apk、NetHunterStore.apk、NetHunterTerminal.apk等。当我们使用NetHunter时,应该是chroot到Kali文件系统中,对操作者来说,就像在Kali环境中一样。

关于Kali的教程在网络上非常多,本文不再赘述。

接下来,我将通过两个示例演示手机版Kali的使用:
演示1:使用msf生成payload
演示2:修改本机MAC地址,然后使用nmap进行端口扫描

打开NetHunter。

nethunter使用教程nethunter使用教程nethunter使用教程

演示1:使用msf生成payload。
演示2:修改手机MAC地址,并使用nmap进行端口扫描。

首先打开NetHunter应用,点击MAC Changer,将MAC地址修改为aa:bb:cc:dd:ee:ff。

nethunter使用教程

接下来打开NetHunter Terminal应用,执行命令nmap -A 192.168.1.6(同一个网段的另一台主机)。

在主机上抓包后,发现手机的MAC地址确实变成了aa:bb:cc:dd:ee:ff。

至此,本文结束。由于笔者水平有限,如果文章中有任何错误,欢迎读者指正。

参考文献:
[1]
[2]
[3]

赞(0)