在任意手机上使用Kali Linux
能够在手机上使用Kali Linux是很多人梦寐以求的事情,因为这意味着,比如,随手就能使用Linux或随时随地就能发起攻击行动,而无需打开电脑。我们甚至可以将闲置的旧手机转变为攻击专用的便携式设备。在网络上有众多为实现此目的的教程和方法。但是,他们大部分都存在各种各样的问题。其中有很多能够使你成功地安装Kali Linux,但却由于各种各样的原因,系统内的工具根本无法使用,仅有一“空壳”。本教程
思想声明
这篇文章将指导你如何在任意已ROOT的安卓手机上安装并使用Kali Linux,以将你的手机转化为一台强大的便携式设备。
如果你想ROOT你的手机,对于低版本安卓设备,可以部分参考这篇文章。对于小米、Google等品牌的手机,可以部分参考这篇教程。
本教程应只被用于教育和研究目的。任何违反所在地区法律的活动都不应该被进行。
介绍
能够在手机上使用Kali Linux是很多人梦寐以求的事情,因为这意味着,比如,随手就能使用Linux或随时随地就能发起攻击行动,而无需打开电脑。我们甚至可以将闲置的旧手机转变为攻击专用的便携式设备。
在网络上有众多为实现此目的的教程和方法。但是,他们大部分都存在各种各样的问题。其中有很多能够使你成功地安装Kali Linux,但却由于各种各样的原因,系统内的工具根本无法使用,仅有一“空壳”。
本教程将指导你安装一个大概率能够被实际使用的Kali Linux系统。
准备工作
为了开始我们的尝试,你需要确保你具备下列条件。
- 一台已取得ROOT权限的安卓手机,其安卓版本在7或以上。
- 良好的网络通信。
如图所示,你需要确保手机已经ROOT
下载必要应用
我们需要使用一些应用帮助我们完成工作。我们需要安装
- Termux。该软件运行在安卓上,功能是模拟一个Linux系统环境并提供了命令行界面。
- AnLinux。该应用允许我们在Termux提供的Linux环境里模拟出一个Kali Linux系统。
这两款应用有多种下载渠道。对于Termux,你可以在开源应用市场F-Droid上下载到。除此之外,你还可以在GitHub上Termux的发布中下载到;对于AnLinux,你可以在F-Droid上下载到。
Github上,Termux的发布
如果你决定从Github下载Termux,那么大概率你需要下载arm64-v8a
的版本,因为现在的大部分手机都具有aarch64架构。如果你使用的是比较老旧的32位ARM架构手机,你则需要选择armeabi-v7a
。
如果上述网页你都由于某种原因无法访问,你可以从这里下载Termux,并从这里下载AnLinux。
安装必要应用
在下载了这两个应用的安装包后,我们安装这两个应用。
安装Termux
你一定不希望Termux,盛放你手机上全部Linux环境的容器,的行为受到限制,或在运行途中突然被系统因耗电问题而结束进程。这可能会导致模拟的Linux环境内出现不必要的问题。所以,在安装完Termux后,我们立刻允许了Termux应用的各项重要权限,并命令系统不要因耗电问题而结束其后台进程。
Termux安装完成
允许Termux的各项权限
阻止省电策略结束进程
安装AnLinux
紧接着,我们安装AnLinux。
安装完成后的AnLinux图标
安装Kali Linux
接下来,我们可以开始配置环境并安装Kali Linux了。
开始使用Termux
我们打开Termux,并看到了其终端的欢迎页面。
Termux欢迎页面
这时,我们需要执行如下命令。
pkg upgrade
该命令告诉Termux获取最新的可用更新信息,并下载更新所有包。简言之,这将Termux内的所有程序更新到最新状态。
有时,人们可能在执行这条命令时遇到错误。这通常是由于源不可用或不可达。
升级命令遇到错误
我们可以尝试执行如下的命令解决问题。
termux-change-repo
该命令告诉Termux列出所有不同的源,并供我们选择。
Termux询问我们选择哪一个作为新源
我们选择一个新源,以使Termux尝试从这个新源获取包信息和下载包。然后,我们再次执行pkg upgrade
。
这次,命令成功地执行。
成功执行升级命令
在执行途中,我们遇到一些询问我们是否同意更改Termux系统配置文件的提示。我们全部键入Y
以同意更改。
同意更改配置文件
至此,我们已经准备好在Termux上进行各种操作了。
配置Kali Linux
现在,让我们开始使用AnLinux在Termux里安装Kali Linux。首先,我们打开AnLinux。
AnLinux仪表盘界面
接着,我们点击选择
以选择我们要安装的系统。AnLinux弹出了若干种选项。我们选择安装Kali Linux。
选择一种系统
在点击确定
后,AnLinux弹出了如下界面。
安装系统界面
AnLinux让我们点击复制
来复制它提供的一长串命令,并要求我们将这串命令粘贴到Termux中执行。这段命令将帮助我们安装Kali Linux。
pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Kali/kali.sh && bash kali.sh
这事实上是下面若干条命令的连写。
pkg install wget openssl-tool proot -y
hash -r
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Kali/kali.sh
bash kali.sh
这段Shell脚本命令Termux先安装需要依赖的包,包括wget、openssl-tool和proot,并在安装过程中遇到任何需要用户键入的提示时都自动选择Y
。紧接着,清空哈希表内的缓存。之后,去下载获取储存在Github上的一个名为kali.sh
的文件。该文件能帮助我们自动完成kali的安装。最后,我们执行kali.sh
。
我们执行这段脚本。
执行AnLinux提供的脚本
紧接着,我们就可以看到kali.sh
自动开始下载Kali的基础文件系统(root file system)。我希望阅读这篇文章的你拥有比我还快的网速。
在下载完成后,kali.sh
开始为我们解压基础文件系统。
解压基础文件系统
这可能需要一些时间,取决于不同手机的性能。
最后,完成解压后,kali.sh
帮助我们布置好了环境,并提示我们现在可以通过执行./start-kali.sh
来启动Kali Linux了。
安装完成
启动Kali Linux
必须使用ROOT启动
非常遗憾地,我们不能够按照AnLinux的提示直接启动Kali。我们必须使用ROOT启动Kali。否则,Kali内安装的很多工具将无法正常工作。
为了以root启动Kali,我们需要安装一个名为tsu
的包。我们执行如下命令。
pkg install tsu
紧接着,我们使用如下的命令让Termux获取ROOT权限。
tsu
这时,Termux应该请求ROOT权限。
Termux请求ROOT权限
我们永久赋予Termux ROOT权限。这时,我们应看到提示符从$
变成了#
。这表明Termux成功地使用了超级用户。
~ $ tsu
.../files/home #
为了验证,我们还可以查看当前的用户是否为root,以确定是否成功取得了ROOT权限。
.../files/home # whoami
root
.../files/home #
不同的设备情况可能有所不同——至少在我的设备上,切换为root用户后,当前目录没有变化。如果你发现切换后当前路径发生了变化,你可以执行下面的命令帮助你回到start-kali.sh
所在的Termux普通用户家目录以找到该文件。
cd ~/..
之所以该命令有效,是因为普通用户家目录是超级用户家目录的上级目录。最后,我们执行start-kali.sh
进入Kali。
./start-kali.sh
解决Autospawn锁错误
你可能在启动后看到了如下错误。
Autospawn锁错误
这是因为AnLinux试图使用一个名为Pulseaudio的程序以使Termux中的Kali能够播放声音。但是,AnLinux没有很好地使Pulseaudio能在ROOT下启动。这是一个bug。
为了解决这个bug,你需要一个诸如MT管理器的安卓文件资源管理器。我们需要手动编辑start-kali.sh
中的内容来修复这个bug。
首先我们需要在文件管理器中找到start-kali.sh
。该文件位于/data/data/com.termux/files/home
。你可能需要赋予你的文件管理器超级权限以使它能够访问这个目录。
在文件管理器中找到目标文件
我们打开并编辑该文件。我们只需要注释掉原来的第3行,并在第4行后插入如下替代命令。
pulseaudio=" --start --system"
更改文件
再次尝试使用ROOT启动Kali。错误输出消失。
成功正常启动
如果你有兴趣查看关于该bug的更多讨论,你可以查看这个Github议题。
开始使用Kali Linux
现在经过了复杂的步骤,你已经成功地在你的手机上安装了Kali Linux!现在,你可以使用它探索无限的可能了!
安装软件以测试能否正常使用
由于我们安装的是基础文件系统,所以系统内并没有安装任何工具。我们将更新Kali的所有包,并下载nmap来尝试能否正常使用。
我们进入Kali,然后使用下面的命令完全升级Kali。此次升级还将更新包依赖关系。
apt update && apt full-upgrade -y
之后,我们安装nmap。
apt install nmap
安装完成后,我们启动nmap。
nmap
这时,nmap自动打印了帮助页面。
nmap帮助页面
现在,我们用nmap随便扫描一个网络上的主机。这里,我们选择scanme.nmap.org
。
端口扫描
我们能够成功地进行TCP通信,说明网络一定没有问题!
探索无限可能
现在,你可以自由地使用Kali去探索无限可能了!下载你想要的工具,并按照你的意愿尽情使用吧!
卸载Kali Linux
为了以防万一,我必须提供卸载Kali的方法。你只需打开AnLinux,选择删除系统
再选择Kali
,复制其提供的命令并执行即可。
由于我们平时一直在超级权限下使用Kali,在普通权限下执行卸载命令可能会引发错误。所以,你只需要在tsu状态下执行AnLinux提供的命令即可。
tsu
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Uninstaller/Kali/UNI-kali.sh && bash UNI-kali.sh
删除系统页面
为何ROOT?
权限深渊
你可能为为何一定要使用ROOT权限启动Kali而感到疑惑。如果你没有兴趣探索这个问题,而只是想愉快地使用Kali,请跳过这一部分。
我们有注意到,大部分在安卓手机上运行Linux方法失败的原因是因为权限不足。Linux系统能够正常地启动,但是一旦涉及诸如网络之类的操作时,一切行为都被安卓系统自动阻止。而这些方法又大多无法在ROOT下被使用,因为,例如,这些方法使用的程序被设计为只能通过普通用户运行,以至于即使拥有超级权限也无法解决问题。
虽然没有经过证实,但似乎在Google手机上没有这一问题。不同的手机品牌似乎在行为表现上存在区别。相关的行为还有,在一些Google手机上能够直接通过应用调用内置无线网卡进行无线攻击,但在小米设备上,即使具有相同的ROOT权限,也会出现各种问题。
对于权限问题更进一步的讨论,请参照这里。
反其道而为之
如果我们故意在非ROOT状态下启动Kali并使用它会发生什么?
为了故意进行试验,我们可能需要重装Kali,以让所有东西恢复最初状态。因此,除非你乐意试验,否则我不建议你这么做。
然后,我们使用普通权限进入Kali,并更新所有包和依赖关系,并安装nmap。然后启动nmap以测试是否安装成功。
./start-kali.sh
apt update && apt full-upgrade -y
apt install nmap
nmap
仍然,我们尝试扫描scanme.nmap.org
。
nmap scanme.nmap.org
糟糕!一个错误发生了。原因是权限不足。
拒绝访问
这至少在现象上验证了我们刚刚的说法。现在你应该能明白为什么我一直坚持要求使用ROOT权限启动Kali了。
扩展使用
现在你已经将你的手机变成了一台Kali Linux设备。也许你还有一台闲置的大屏iPad。你可以在Termux中开启SSH服务,并使用iPad远程连接到手机。这使操作命令行时变得舒服了许多。为了方便管理文件,你还可以使用SFTP服务对文件进行远程管理。
也许你正好缺一台服务器,又不想出钱购买。于是你打算使用你的闲置旧手机作为服务器。虽然它的性能可能不如一台x86_64设备,但是它的功率很小,即使放在家里24小时开机也不会对设备造成过大的伤害。
也许你喜欢使用Metasploit Framework进行渗透测试。现在,你立刻就可以在手机上使用Msf了。
需要注意的是,在Termux中模拟的Kali Linux可能在一些特性上与真实的Kali有区别,也不能完全替代真实的Kali。而且,模拟的Kali与你的手机架构相同。如果你想使用x86_64的Kali,你需要使用另一种方法。
祝你将想象力和无限可能发挥到极致。
更多推荐
所有评论(0)