建立自己的Kali ISO简介
构建自定义的Kali ISO既简单,有趣又有意义。您几乎可以使用Debian动态构建脚本来配置Kali ISO构建的任何方面。这些脚本允许开发人员通过提供一个框架来轻松构建实时系统映像,该框架使用配置集来自动化和自定义构建映像的所有方面。Kali Linux开发团队已采用了这些脚本,并且已使用它们来制作正式的Kali ISO版本。
您应该在哪里建立ISO?
理想情况下,您应该在现有的Kali环境中构建自定义的Kali ISO 。
准备就绪-设置实时构建系统
我们首先需要通过使用以下命令安装和设置实时构建及其要求来准备Kali ISO构建环境:
sudo apt update
sudo apt install -y curl git live-build cdebootstrap
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
现在,您只需输入“ live-build-config”目录并运行我们的build.sh包装器脚本,即可构建更新的Kali ISO ,如下所示:
cd live-build-config/
./build.sh --verbose
该build.sh
脚本将需要一段时间才能完成,因为它会下载创建ISO所需的所有必需软件包。喝咖啡的好时机。
配置Kali ISO构建(可选)
如果您想自定义您的Kali Linux ISO,本节将解释一些细节。通过kali-config目录,Kali Linux live build支持各种自定义选项,这些选项在Debian live build 4.x页面上有详细记录。但是,对于不耐烦的人,这里是一些重点。
使用不同的桌面环境构建Kali
从Kali 2.0开始,我们现在支持各种桌面环境的内置配置,包括KDE,Gnome,E17,I3WM,LXDE,MATE和XFCE。要构建其中的任何一个,您将使用类似于以下内容的语法:
# These are the different Desktop Environment build options:
#./build.sh --variant {gnome,kde,xfce,mate,e17,lxde,i3wm} --verbose
# To build a KDE ISO:
./build.sh --variant kde --verbose
# To build a MATE ISO:
./build.sh --variant mate --verbose
#...and so on.
控制构建中包含的软件包
您的构建中包含的软件包列表将出现在相应的kali- $ variant目录中。例如,如果要构建默认的Xfce ISO,则应使用以下软件包列表文件-kali-config / variant-xfce / package-lists / kali.list.chroot。默认情况下,此列表包括“ kali-linux-default” 元软件包以及其他一些软件包。可以将它们注释掉并替换为包的手动列表,以包括在ISO中以获得更大的定制性。
构建hook,二进制文件和chroot
实时构建hook允许我们在Kali ISO实时构建的各个阶段中hook脚本。有关hook及其使用方法的更多详细信息,请参阅实时构建手册。例如,我们建议您在kali-config / common / hooks /中检查已有hook。
覆盖构建中的文件
您可以通过将其他文件或脚本分别覆盖在现有文件系统上的include。{chroot,binary,installer}目录中,来选择将其他文件或脚本包含在构建中。例如,如果我们想将自己的自定义脚本包括在ISO 的/ root /目录中(这对应于“ chroot”阶段),则可以将该脚本文件放入kali-config / common / includes中。 chroot /目录,然后再建立ISO。
为较早的i386架构构建Kali Linux ISO
Kali Linux i386 ISO已启用PAE。如果您需要禁用PAE的较旧硬件的默认内核,则需要重建Kali Linux ISO。重建过程与上述过程基本相同,不同之处在于,需要按如下所示在auto / config中将686-pae参数更改为586。首先,安装先决条件。
sudo apt install -y git live-build cdebootstrap debootstrap
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
接下来,针对适当的架构在auto / config中进行更改:
cd live-build-config/
sed -i 's/686-pae/686/g' auto/config
最后,运行您的构建。
./build.sh --arch i386 --verbose
在基于非Kali Debian的系统上构建Kali
您可以在Kali以外的基于Debian的系统上轻松运行实时构建。以下说明已经过测试,可以与Debian和Ubuntu一起使用。
首先,我们通过确保系统已完全更新来准备系统,然后继续下载Kali存档密钥链和实时构建软件包。
sudo apt update
sudo apt upgrade
cd /root/
wget http://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.2_all.deb
wget https://archive.kali.org/kali/pool/main/l/live-build/live-build_20190311_all.deb
完成后,我们将安装一些其他依赖项和以前下载的文件。
sudo apt install -y git live-build cdebootstrap debootstrap curl
sudo dpkg -i kali-archive-keyring_2018.2_all.deb
sudo dpkg -i live-build_20190311_all.deb
准备好所有环境后,我们通过设置构建脚本并检查出构建配置来开始实时构建过程。
cd /usr/share/debootstrap/scripts/
echo "default_mirror http://http.kali.org/kali"; sed -e "s/debian-archive-keyring.gpg/kali-archive-keyring.gpg/g" sid > /tmp/kali
sudo mv /tmp/kali .
sudo ln -s kali kali-rolling
cd ~
git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git
cd live-build-config/
此时,我们必须编辑build.sh
脚本以绕过版本检查。为此,我们注释掉下面的““exit 1”。
# Check we have a good debootstrap
ver_debootstrap=$(dpkg-query -f '${Version}' -W debootstrap)
if dpkg --compare-versions "$ver_debootstrap" lt "1.0.97"; then
if ! echo "$ver_debootstrap" | grep -q kali; then
echo "ERROR: You need debootstrap >= 1.0.97 (or a Kali patched debootstrap). Your current version: $ver_debootstrap" >&2
exit 1
fi
fi
进行更改后,脚本应如下所示:
# Check we have a good debootstrap
ver_debootstrap=$(dpkg-query -f '${Version}' -W debootstrap)
if dpkg --compare-versions "$ver_debootstrap" lt "1.0.97"; then
if ! echo "$ver_debootstrap" | grep -q kali; then
echo "ERROR: You need debootstrap >= 1.0.97 (or a Kali patched debootstrap). Your current version: $ver_debootstrap" >&2
# exit 1
fi
fi
此时,我们可以正常建立ISO
sudo ./build.sh --variant light --verbose