介绍
之前,我们已经看过如何在任何已ROOT手机上使用AnLinux运行Kali Linux。Androinix的原理与AnLinux本质相同,但它比AnLinux在一些方面功能更强大,且更有优势。
本篇文章将教授你如何使用软件Androinix在任意已ROOT的安卓手机上运行Kali Linux。
如果你的手机未ROOT,你可以参考这篇教程来运行一个完整的x86_64架构的Kali Linux,该方案无需ROOT。对于一些老旧机型,你可以简单地一键ROOT它们。在安装了Kali后,你就可以在其中安装软件,甚至实现在手机上运行Metasploit,包括未ROOT的手机。你也可以用同样的方法安装其它Linux发行版,包括未ROOT的手机。
下载必要软件
首先,我们需要下载必要的软件。
Termux
我们需要下载Termux。它在安卓手机上模拟出一个Linux系统。
我们可以前往F-Droid(https://f-droid.org/packages/com.termux/),或Termux的Github发行版页面下载(https://github.com/termux/termux-app/releases)。
截止目前为止,最新的稳定版是0.118.2。
如果该版本无法在你的手机上运行,尝试0.118.0版本或某个0.119预发行版。
Androinix
Androinix在Termux的基础上又模拟出另一个Linux系统。如果要更精确地说,Androinix使用PRoot利用Kali的基础文件系统(Root File System)在Termux中模拟出一个与其文件系统分离,但共享内核和进程空间的子系统。
如果你没有谷歌Play商店,可以试着从其官方Github发行版页面下载安装包。
安装Termux
安装你下载的安装包。为了使Termux能够保持后台运行,将系统省电策略设置为无限制
,并允许必要的权限。
配置Termux环境
初始安装后,我们需要为Termux更新所有软件包。这使得Termux为自己更新——获取Termux系统内部所有软件包的最新版本,并下载安装。
在Termux中执行下面的命令。
对于弹出的提示,我们全部键入y
来选是。
开始Androinix的Kali安装导向
等待Termux更新完毕后,是时候安装Kali了。
我们打开Androinix应用,选择Linux发行版
。
之后,滚动选项找到Kali。
对于是否要让即将安装的Linux拥有图形化界面(GUI),我们选择仅命令行(CLI Only),因为Androinix提供的图形化界面Linux版本似乎不太稳定。
接着,Androinix将自动为我们复制一串命令。将该命令粘贴到Termux中,执行。这将自动为我们下载安装Kali Linux。
pkg update -y && pkg install wget curl proot tar -y && wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Kali/kali.sh -O kali.sh && chmod +x kali.sh && bash kali.sh
耐心等待直到安装完成。我们还注意到安装脚本弹出了一个可忽略的警告。现在可以输入./start-kali.sh
来启动Kali了。
Kali初始配置
启动后,如同Termux一样,我们需要更新Kali内所有软件包到最新版本。输入下面的命令。
apt update && apt upgrade
对于更新过程中的所有提示,我们都选是(Y(es)
)。
使用ROOT运行Kali
你可能注意到了,在刚刚运行Kali的过程中,我们并没有使用ROOT启动。
然而,这会导致一些问题,例如执行真正需要ROOT权限才能执行的命令时会出错。譬如,一次带有系统检测的Nmap扫描。
确切地说,这是因为Androinix所基于的模拟程序Proot并不能真正让程序具有ROOT。
要想以ROOT启动Kali,先退出Kali回到Termux,在Termux中安装Termux Super User来获取安卓系统ROOT权限,再以ROOT启动Kali。
exit
pkg install tsu && tsu
然而,我们看到拒绝访问
。这是因为我在使用的小米手机的系统出于安全考虑默认禁止任何软件使用ROOT。我们需要在设置
中允许Termux。
之后,执行tsu
时成功获取到ROOT。
然而,在我的安卓9系统上,获取ROOT后当前工作路径会自动更变为/
。如果你的路径也更变了,执行下面的命令来回到start-kali.sh
所在的路径,因为Termux中普通用户的家目录就是超级用户家目录的上级目录。
cd ~/..
然后启动Kali。
./start-kali.sh
现在我们成功已ROOT启动了Kali。看看它能否正常工作吧。我们将进行一次包含系统检测的Nmap扫描。如果你还未安装Nmap,运行下面的命令来完成一次检测。
apt install nmap && nmap localhost -O
这次,命令成功执行。
卸载Kali
有时,你可能想从Termux中移除Kali。
进入Androinix,找到你已安装了的Linux发行版,并长按。
之后,软件将自动为你复制一串命令。
wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Uninstall/Kali/UNI-kali.sh && chmod +x UNI-kali.sh && bash UNI-kali.sh
软件希望你将命令粘贴到Termux中执行以移除Linux。然而,由于我们曾用ROOT启动过Linux,直接执行该命令可能不奏效。
解决方法也很简单,只需要在ROOT下执行该命令。
在Termux中执行下列操作。
tsu
cd ~/..; wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Uninstall/Kali/UNI-kali.sh && chmod +x UNI-kali.sh && bash UNI-kali.sh
命令成功完成。现在你已经移除了Kali。
结语
许多在手机上运行Kali和其它Linux发行版的方式其实最终均依赖在Termux中运行PRoot。
在安卓手机上,由于限制过多,使得运行另一个系统成了难题。
常用的模拟其它系统的方法便是虚拟机。我们的确可以在安卓上做到这一点,但也会因为无法使用内核虚拟化(KVM)而使虚拟机的运行速度缓慢至极。但这也许有希望在新的安卓15和16上打破,因为Google刚刚为安卓新增了受保护的内核虚拟化(pKVM)功能。
一些其它的解决方案包括使用Chroot模拟Linux系统。然而,常见的能做到此功能的软件,Linux Deploy,是一个充满故障、年久失修的数字垃圾。
让我们拭目以待,看看未来是否会有更好的方法出现。