在本书的前几版中,我们重点介绍了如何使用Docker应用将Kali Linux安装到VMware Player、VirtualBox、AWS和树莓派。在本节中,我们仍将继续讨论如何在这些平台上安装Kali Linux,除此之外,还增加了Google Cloud Platform和非破解的安卓设备。
将Kali Linux安装到便携式设备上相当简单。在某些情况下,客户不允许在安全的网络环境里使用外部笔记本电脑。在这样的情况下,通常客户会向渗透测试人员提供一台专门的测试笔记本电脑来执行扫描:
•它可以放在口袋里——在使用USB设备或其他移动设备的情况下。
•它可以实时运行,而无须对主机操作系统进行任何更改。
•你可以构建定制的Kali Linux,甚至可以实现系统数据的存储持久化。
在Windows系统上用USB设备制作便携式Kali Linux只需三个简单的步骤:
1)从以下位置下载官方Kali Linux镜像:http://docs.kali.org/introduction/download-official-kali-linux-images。
2)使用Rufus开源实用程序来创建可启动磁盘,Rufus可以帮助创建和格式化可启动驱动器。可从https://github.com/pbatard/rufus/releases/下载最新的Rufus版本。
3)以管理员身份运行Rufus可执行文件。将U盘插入可用的USB端口。如图1.3所示,定位到镜像文件的下载位置,并选择正确的驱动器名称,然后单击S TA RT。
完成后,关闭Rufus应用程序并安全弹出USB驱动器,Kali Linux就能作为便携式设备插入任何笔记本电脑并启动。如果计划在这个活动磁盘上启动并存储信息,请确保勾选了Persistent partition size,并分配至少4GB的空间。然后在便携式设备上启动Kali Linux时选择Live USB persistence。如果你的主机采用的是Linux操作系统,则可以通过两个标准命令来实现:
以上命令将显示驱动器上装载的所有磁盘。然后使用dd命令来执行转换和复制:
其中,if用于指定输入文件,of用于指定输出文件,bs表示块大小。
图1.3 运行Rufus将Kali Linux写入外部磁盘
树莓派(Raspberry Pi)是一种结构紧凑的单板设备,可运行一个功能最小化的完整计算机系统。这种设备在红队演习(RTE)和渗透测试活动中非常有用。操作系统的库是从SD卡加载的,就像普通计算机的硬盘驱动器一样。
你可以在树莓派中插入高速SD卡,并执行与上一节中相同的操作,然后就可以毫无顾忌地使用这个系统了。如果安装成功,当Kali Linux从树莓派启动时,会出现如图1.4所示的屏幕。本示例中采用的是树莓派4,并接上显示器,显示了树莓派的操作系统。
图1.4 在树莓派4上成功安装Kali Linux
在本书之前的版本中,我们讨论了如何将Kali安装到不同的虚拟机管理程序。同样,我们将在这里进一步讨论如何在此类设备上快速安装Kali。
1.VMware Workstation Player
VMware Workstation Player,以前称为VMware Player,免费供个人使用,也是VMware公司的桌面应用程序商业产品,允许VM在主机操作系统内运行。此应用程序可以从以下地址下载:https://www.vmware.com/uk/products/workstation-player/workstation-player-evaluation.html。
这里我们将使用该软件的16.1版本,下载安装程序后,根据你的主机操作系统相应地安装VMware Player。安装结束后,你应该会看到如图1.5所示的屏幕。
下一步是在VMware上安装Kali Linux,单击Create a New Virtual Machine,然后选择Installer disc image file(iso)。浏览找到已下载的ISO文件,然后单击下一步。现在,你可以输入名称(例如HackBox),然后选择要存储VMware镜像的自定义位置,单击下一步并指定磁盘容量,建议至少使用2GB RAM,运行Kali需要15GB磁盘空间,单击下一步直到完成。
另一种方法是直接下载VMware镜像:https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/。
打开.vmx文件,然后选择I copied it,就会在VMware中启动完全加载的Kali Linux。你可以选择将Kali Linux安装为主机操作系统,也可以将其作为实时镜像运行。完成所有安装步骤后,你就可以从VMware启动Kali Linux了,如图1.6所示。
图1.5 成功安装VMware Workstation Player
图1.6 在VMware上成功安装Kali Linux
2.VirtualBox
与VMware Workstation Player类似,VirtualBox是一个完全开源的虚拟机管理程序,也是一个免费的桌面应用程序,你可以从主机操作系统运行任何VM。此应用程序的下载地址详见https://www.virtualbox.org/wiki/Downloads。
下载完成后,我们将继续在VirtualBox上安装Kali。与VMware类似,执行下载的可执行文件,直到成功安装VM VirtualBox,如图1.7所示。
图1.7 成功安装VM VirtualBox
在安装过程中,建议将RAM设置为至少1GB或2GB,并创建至少15GB的虚拟硬盘空间,以免遇到性能问题。完成最后一步后,你应该能够在VirtualBox中顺利加载Kali Linux,如图1.8所示。
图1.8 VirtualBox虚拟机中的Kali Linux
完成此操作后,现在可以通过VirtualBox使用Kali Linux了。
Docker是一个开源项目,旨在快速自动部署软件容器和应用程序。Docker还提供了Linux或Windows系统级虚拟化的额外抽象和自动化层。
Docker可用于Windows、Mac、Linux和AWS。对于Windows系统平台,可以从以下地址下载Docker:https://www.docker.com/get-started。
安装Docker后,使用以下简单的命令就可以运行Kali Linux:
这些指令可以在命令提示符(Windows)或终端(Linux或Mac)中执行,以确认安装已成功。
安装完成后,我们能够直接从Docker运行Kali Linux,如图1.9所示。另请注意,Docker利用基于容器的技术,它运行自己的进程,这些进程与操作系统的其他进程隔离,并且它共享主机操作系统内核。虽然VirtualBox环境不是基于容器的技术,但它将硬件虚拟化并共享物理主机的硬件资源。
图1.9 使用Docker成功安装Kali Linux
Kali Linux Docker镜像下载完成后,可以通过在命令提示符或终端中运行以下命令来运行(命令执行后如图1.10所示):
图1.10 从Docker成功运行Kali Linux
如果你的基本操作系统是Windows 10,请确保在系统BIOS上启用了VT-X以及Hyper-V。请注意,启用Hyper-V将禁用VirtualBox,如图1.11所示。
图1.11 安装Docker时显示的提示
请注意,以下部分涉及商业服务的使用,例如AWS和Google Cloud Platform,在使用这些服务时可能会产生费用。建议读者在完成测试后完全删除或终止实例。
AWS(Amazon Web Services)提供Kali Linux作为AMI(Amazon Machine Interface)和SaaS的一部分。如今,大多数安全测试公司都使用AWS进行渗透测试和更有效的网络钓鱼攻击。在本小节中,我们将介绍在AWS上启动Kali Linux的步骤。
首先,你需要拥有一个有效的AWS账户,可以通过访问以下URL进行注册:https://console.aws.amazon.com/console/home。
登录AWS账户后,就能够看到所有AWS服务,搜索Kali Linux,如图1.12所示。
图1.12 AWS市场中预配置的Kali Linux
也可以使用以下链接访问该页面:https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to。
开源社区已将直接从AWS市场启动预配置的Kali Linux(2021.4实例)变得非常简单。以下链接将带我们在几分钟内直接启动Kali Linux:https://aws.amazon.com/marketplace/pp/prodview-fznsw3f7mq7to。
按照说明进行操作,然后你应该能够通过选择Continue to Subscribe来启动Kali实例。如果你尚未登录,会先进入AWS的登录页面。单击Continue to Configuration,再单击Continue to Launch,你将看到如图1.13所示的屏幕。在Choose Action菜单中选择Launch through EC2,最后单击Launch。
图1.13 通过EC2启动Kali Linux
下一步需要选择实例类型,选择t2.micro(符合免费套餐条件),然后单击Review and Launch,最后单击Launch。接着会进入一个创建新密钥对的界面,如图1.14所示。
图1.14 创建新的密钥对以连接到AWS实例
一般来说,要使用AWS上的任意VM,你必须创建自己的密钥对以确保环境的安全性。接着,你就能够通过从Shell命令行输入命令来登录。为了实现不用输入密码而使用私有密钥登录,亚马逊强制文件传输需要通过加密隧道。我们可以使用以下命令从终端连接到Kali Linux实例:
所有Windows用户都可以利用Windows PowerShell通过运行以下命令连接到实例:
图1.15展示了Kali在AWS上的成功启动。
图1.15 成功连接到AWS中的Kali Linux实例
在从云主机发起任何攻击之前,必须满足法律条款和条件,这样才能利用AWS执行渗透测试。
与AWS不同,Google Cloud Marketplace中没有可用的Kali Linux版本。因此,我们将采用不同的方法在GCP(谷歌云平台)上启动Kali Linux。参考我们在VirtualBox中安装Kali的步骤说明,使用12GB的硬盘空间和2GB的RAM,同时将本地映像上传到Google bucket and Compute Engine来运行此实例。在此之前,我们先确保系统已成功安装,登录Kali Linux并启动SSH服务使其持久化,在Kali Linux VM终端中运行以下命令:
基于某些原因,GCP不会在启用软盘的情况下加载VirtualBox镜像,因此我们将通过选择Kali并找到Settings设置菜单,然后找到System,在Boot Order(引导顺序)中取消勾选Floppy来删除软盘,如图1.16所示。
图1.16 在Boot Order里启用软盘时,GCP不会加载VirtualBox镜像
下一个重要步骤是确保镜像在GCP的网络加载后能通过DHCP获取公网IP地址。这里的重点是更改网络设置,选择Kali菜单并导航到Settings,然后单击Network,再单击Advanced更改Adapter Type,选择Paravirtualized Network(virtlo-net),如图1.17所示。
图1.17 在虚拟机配置中选择Paravirtualized Network
这里也建议禁止音频功能,以避免遇到兼容性问题。选择Kali菜单并导航到Settings,设置Audio,然后取消勾选Enable Audio,如图1.18所示。
图1.18 如果在音频设置中勾选Enable Audio,GCP可能无法正常工作
现在我们必须将虚拟磁盘镜像(VDI)转换为RAW格式,并遵守文件的命名约定disk.raw,以便于Google的镜像自动化软件可以识别此文件。
这里我们利用通用和开源的机器仿真和虚拟机软件(QEMU)作为将VDI或VMDK文件转换为RAW的工具。VDI格式(也适用于VMDK文件)转换请参考以下步骤:
1)定位到你保存虚拟机磁盘镜像的位置。
2)确保qemu-img已安装在本机系统上:
• Windows系统可以从以下地址下载应用程序:https://www.qemu.org/download/#windows。
• Linux系统或macOS系统可通过运行命令sudo apt install qemu-img或brew install qemu-img安装。
3)从对应的终端或命令提示符运行以下命令进行镜像转换:
4)创建disk.raw文件后,为了减小上传大小,我们将原始磁盘文件压缩为tar.gz格式。但是最好使用gtar,因为Google严重依赖此实用程序。对于Windows系统的用户来说,这个软件不是默认安装的,可以从以下地址下载该程序:http://gnuwin32.sourceforge.net/packages/gtar.htm。
为了创建符合GCP标准的镜像,你可以在Linux和macOS系统上运行命令gtar-cSzf kali.tar.gz disk.raw或在Windows系统上运行tar-zcvf kali.tar.gz disk.raw。
现在,我们已经准备好将镜像上传到GCP了。创建GCP账户或使用现有账户登录服务,与微软类似,GCP也为用户提供了免费的信用额度,以让用户体验它的云计算服务。在GCP上启动Kali Linux涉及以下步骤:
1)登录https://console.cloud.google.com/。
2)找到菜单Cloud Storage,选择Brower,然后单击Create a Bucket。
3)根据GCP的原则为Bucket指定一个名称(不允许使用大写字母),在这个例子中,我们创建的名称为mastering-kali-linux-edition4。
4)单击Upload Files上传文件,然后选择我们刚刚创建的压缩kali.tar.gz镜像。上传完成后,应该能够看到如图1.19所示的内容。
5)返回Home界面并选择Compute Engine,选择存储下的Images,然后单击Create Image并输入镜像名称,在本例中我们输入gcp-kali。
6)输入名称后,对于源文件,选择cloud storage file,单击Bucket,然后选中压缩好的gz镜像(kali.tar.gz)。
7)你可以选择要运行的任何区域(region),这里为了演示,我们选择默认值。单击Create,接着会看到如图1.20所示的内容。如果没有,请尝试在这个页面单击REFRESH。
图1.19 将压缩镜像上传到GCP
图1.20 在GCP镜像中显示新创建的gcp-kali镜像
8)创建镜像后,单击Actions,然后选择Create instance,如图1.21所示。
图1.21 成功创建gcp-kali镜像,准备好作为实例运行
9)打开虚拟机实例的详细内容,查看Kali Linux实例的信息,如图1.22所示。
图1.22 输入gcp-kali实例的详细信息,配置运行它所需的资源
10)现在可以选择CPU(中央处理单元)平台和GPU(图形处理单元),这里选择E2中型(E2 medium),它将提供两个虚拟核心的vCPU和4GB的RAM,我们的镜像包括了在创建VM期间选择的存储空间(12GB)。
11)最后,请确保启动盘保持原样(无须更改),然后单击Create,会进入包含内部和外部IP地址的页面,如图1.23所示。
图1.23 在GCP中成功安装Kali Linux实例,配有内部和外部IP
12)我们已经在GCP上成功创建并运行了Kali Linux实例,现在可以使用初始化安装时创建的用户名和密码登录外部IP地址,如图1.24所示。
图1.24 从外部成功连接到GCP的Kali Linux实例