lxj616 · 2015/12/08 16:11
Kali Nethunter是一款用于安全研究的手机固件包,可以使Android设备增加“无线破解”、“HID攻击”、“伪造光驱”等的硬件功能以及metasploit等软件工具,目前官方只支持少量的Android手机,然而,通过重新编译Kali Nethunter源代码,可以将其编译到其他型号的手机上
本文将以Oneplus one为例讲解Kali Nethunter代码的移植方式,同时也在三星的i9100g手机上测试成功
0x00 Kali Nethunter架构分析
Kali Nethunter大体分为三个部分
- 定制过的手机内核:由于需要使用OTG外接usb网卡、用手机模拟HID设备、用手机模拟CDROM光驱,必须对手机内核进行修改添加对应的驱动,以及patch相关的代码,如果没有这一部分修改过的内核,Kali Nethunter将无法使用与硬件相关的所有功能
- chroot环境的文件系统:所有相关的软件程序以ARM架构的Kali为基础集成在一个文件系统内,通过linux的chroot功能可以在Android中跳转至Kali文件系统,然后把内核相关的东西mount进kali的文件系统,之后就可以在这个chroot后的Kali中执行对应的命令了
- 用于提供界面的APK手机APP,仅仅是作为UI界面起展示作用,实际是通过调用chroot的Kali中的命令来实现所有功能的,当然这些APP也提供了一键挂载并启用Kali chroot的功能
其中修改内核要求手机内核代码必须开源,尽管内核代码根据GPL协议必须开源,国内某些手机仍然不公开其内核源代码,这也是Kali Nethunter仅支持Oneplus、三星和谷歌Nexus的原因
0x01 准备CM 12.1源码以及相关环境
首先,我们为了简化修改内核的过程,可以直接编译一份CyanogenMod 12.1的代码,其中就包括了对应机型(Oneplus one、三星i9100g)的内核代码。而且鉴于Kali Nethunter本身采用的就是CM 12.1的ROM,为了避免其他ROM中可能存在的兼容性问题,建议选择CyanogenMod支持的手机来进行移植
你可以参考CyanogenMod官方wiki上对应机型的编译说明,这里在Ubuntu上以Oneplus和i9100g为例演示编译过程
亲测编译时硬盘至少需要100G可用空间,虚拟机至少需要4GB内存,不要问我如果达不到要求会发生什么……全是眼泪啊
在开始配置环境之前,先提示大家后文会有简化的环境配置方式,不过建议大家还是按部就班地用“官方”方式配置,因为将来CM可能会有新的版本出现,而官方配置方式可以获取到最新的代码
比如对于Oneplus one的官方示范:http://wiki.cyanogenmod.org/w/Build_for_bacon
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
复制代码
然后64位系统还需要:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
复制代码
如果遇到软件包不存在,可以apt-cache search一下包名,看看是不是改名字了
之后同步Android代码(代码从google上拿,该怎么访问googl