在本章中,我们将深入探讨 Kali Linux 作为我们选择的渗透测试平台。Kali Linux 有多种安装选项,因此我们将探讨存在哪些选项,并研究如何使用它们。在演示了安装过程之后,需要在 Kali Linux 上完成一些初始任务,因此我们将完成初始设置,以确保我们已经准备好开始使用 Kali Linux。脚本应该已经成为您的武器库的一部分,因此我们将深入研究基本脚本,然后开始探索 Kali Linux 上可用的一些常用工具。
随着本章的学习,您将了解以下主题:
- Kali Linux 简介
- 安装和配置 Kali Linux
- Kali-Linux 中的基本命令
- Kali Linux 中的脚本编写
- Kali Linux 的基本工具
本章的技术要求如下:
- 任何虚拟机监控程序,如 VMware、Hyper-V 或 VirtualBox
- Windows 10 专业版或企业版
- Kali Linux 2019.1
在本书中,Kali Linux 将是我们的首选平台。Kali Linux 是一个免费的渗透测试分发平台,提供多种工具,如用于网络渗透测试的 Metasploit、用于端口和漏洞扫描的 Nmap、用于无线网络测试的 Aircrack Ng、用于社会工程攻击的社会工程工具包(集),还有更多。
Kali Linux 是一个维护的发行版;这意味着它会不断更新和维护。在撰写本文时,Kali Linux 的当前版本为 2019.1。
2019.1 版对 Metasploit 进行了大规模更新(Metasploit 将在第 5 章、深入 Metasploit 框架中介绍),包括错误修复、内核更新等。
本书使用 Kali Linux 2019.1 版;请注意,如果在不同版本的 Kali Linux 上执行某些练习,它们可能会有所不同。
Kali Linux 可在下载 https://www.kali.org/downloads ,并且有许多选项可供下载平台。您可以选择下载最新版本的 Kali Linux 的 32 位或 64 位.iso
,如图 1所示:
图 1:Kali Linux 的下载选项
还有针对 VMware 和 VirtualBox 的预构建虚拟机,可从“攻击性安全”网站下载;这些可在找到 https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/ ,如图 2所示:
图 2:Kali Linux 的预构建虚拟机
Kali 可以作为已安装的操作系统或实时版本运行,如图 3所示。对于 live 版本,您需要在 USB 驱动器上设置永久性存储,也就是说,如果您希望保留在 live 模式下使用 Kali 时收集的任何数据:
图 3:Kali Linux 的不同启动选项
如您所知,有多种方法可以启动和运行 Kali Linux。例如,您可以利用带有 Kali Linux 的 USB 磁盘实现可移植性。这意味着您可以将其插入任何 PC,以便启动并运行 Kali。此外,一些用户可能更喜欢使用预构建的虚拟机,这样就不用从头开始安装操作系统。或者,其他用户更喜欢在安装过程中自定义 Kali Linux,并希望使用.iso
文件直接安装 Kali Linux。
现在您已经下载了 Kali Linux,我们需要安装并准备好它。您会注意到,安装 Kali Linux 的选项很少;我将使用一个预构建的虚拟机,当前版本为 2019.1。
如果您利用 Kali Linux 预构建的虚拟机,您所要做的就是使用 VMware 或 VirtualBox 打开它。需要提取 VMware 预构建的机器,但您可以使用 7zip 提取虚拟机。
利用预构建的虚拟机可以节省手动安装 Kali Linux 的时间。请注意,如果在打开预构建的虚拟机时出现提示,则只需选择"I copied it"
。
7Zip 可从下载 https://www.7-zip.org/download.html 。
如果要使用 VMware Fusion 在 macOS 上从头开始安装 Kali Linux,可以执行以下步骤:
- 在 VMware Fusion 中,macOS 按Ctrl+N或命令+N;此时会弹出新建虚拟机对话框,如图 4所示:
图 4:在 VMware Fusion 中安装 VM 的不同选项
- 将 Kali Linux
.iso
文件拖到窗口中,然后单击继续。接下来,选择 Linux 作为操作系统,然后选择 Debian 9.x 64 位,然后单击 Continue,如图 5所示:
图 5:来宾操作系统的选项
- 选择启动固件为 UEFI,然后点击继续,如图 6所示:
图 6:VM 操作系统固件类型的选项
- 单击 Customize 对分配给虚拟机的 RAM 和 CPU 进行一些更改。您可以根据自己的需要进行调整;在我的配置中,我将使用两个 CPU 和 2GB 的 RAM,如图 7所示:
图 7:VM 的设置
- 启动虚拟机后,选择 Start installer 并按照提示进行操作,直到安装完成,如图 8所示:
图 8:Kali Linux 的不同启动选项
完成安装步骤后,您将看到 Kali Linux 已经新安装,如前面的屏幕截图所示(图 8。现在,您已经准备好进入配置阶段。
Kali Linux 能够使用 WSL 和Windows 应用商店应用在 Windows 中本机运行。需要执行以下安装步骤,以便在安装必要工具的情况下启动并运行 Kali:
- 首先,安装 WSL;要执行此操作,请按 Windows 键+r,输入
appwiz.cpl
,然后单击确定。 - 选中 Windows Subsystem for Linux 复选框,如图 9所示。请注意,一旦安装,您的计算机将需要重新启动:
图 9:选择 Linux 的 Windows 子系统
- 在 Windows 应用商店中,搜索
Kali Linux Windows Store App
,然后安装应用。打开应用后,它将执行一些初始步骤,例如创建新的 root 用户帐户。完成后,您可以继续使用sudo apt-get update
命令更新 Kali Linux,如图 10所示:
图 10:在 WSL 中更新 Kali Linux
- 要查看可用软件包的完整列表,请使用
sudo apt-cache search kali-linux
命令。您会注意到,包被划分为渗透测试的特定领域,如取证,如图 11所示:
图 11:WSL 中的 Kali Linux 包列表
请注意,包装的尺寸会有所不同;例如,在撰写本文时,kali-linux-top10
包的大小为 2.9 GB。您需要确保 Windows 10 上的防病毒软件不包含 Kali Linux 软件包。包的路径为
C:\Users\[username]\AppData\Local\Packages\
。另外,请注意,[username]
表示您的登录用户。
在 Windows 中使用 Kali Linux 工具的另一种方式是通过Ubuntu Windows 应用商店应用和Katoolin等工具。
为此,从 1 到 2 重复上述步骤;但是,不要从 Windows 应用商店安装 Kali Linux 应用,而是安装 Ubuntu 应用。
安装应用后,您可以继续执行以下步骤:
- 打开Ubuntu Windows 应用商店应用并使用以下命令执行应用的更新和升级:
sudo apt-get update
sudo apt-get upgrade
- 更新 Ubuntu 后,您需要安装 Python 2.7 版;这可以使用以下命令完成:
sudo apt-get install python
- 您还可以使用诸如
katoolin
之类的工具,可以使用以下命令对其进行克隆:
git clone https://github.com/lionsec/katoolin.git && cp katoolin/katoolin.py /usr/bin/katoolin
chmod +x /usr/bin/katoolin
- 您可以使用
sudo katoolin
命令运行Katoolin工具,这将为您提供一个菜单,您可以使用该菜单添加 Kali 存储库并安装分类列出的各种工具,如图 12所示:
图 12:WSL 中安装在 Ubuntu 中的 Katoolin
本书将使用安装在虚拟机或物理主机上的 Kali Linux。本书的范围不包括在 WSL 中使用 Kali Linux。
VirtualBox 是一个跨平台的虚拟机监控程序;在 Windows 和 macOS 中导入预构建的 Kali Linux 虚拟机的过程是相同的。
下载预构建的虚拟机后,它将采用.ova
格式。可以使用以下步骤将其导入 VirtualBox:
- 如果您使用的是 macOS 版本,请打开 VirtualBox 并单击导入;或者,如果您使用的是 Windows 版本,请单击文件导入。
** 导航到您下载预构建虚拟机的位置,然后选择
.ova
文件。然后,单击“下一步”按钮。* 现在,您将看到虚拟机的设置和存储位置。您可以对此进行自定义,也可以将其保留在默认设置中。* 最后,单击导入。*
*导入完成后,可以启动 Kali Linux 虚拟机。您可能会收到一个与 USB 硬件相关的错误,但 VirtualBox 会提到您可以安装什么来解决此问题。
在启动并运行 Kali Linux 之后,还需要执行一些步骤。
如果您手动安装了 Kali Linux,系统将提示您提供根帐户的用户名和密码。或者,如果您使用的是预构建的虚拟机,则默认用户名为root
,密码为toor
。要更改密码,您可以使用passwd
实用程序,如图 13所示:
图 13:在 Kali Linux 中更改根密码
Kali Linux 中的大多数工具都需要根级别的权限才能运行。但是,始终使用根级别帐户存在风险;例如,考虑你正在浏览互联网,并在恶意网站上登陆。此恶意网站可能包含一个滴管,该滴管会将远程 shell 放到 Kali Linux 上。由于使用的帐户是根级别的帐户,攻击者将拥有一个在您的系统上具有根权限的远程 shell。
为了提供额外的安全层,您需要创建一个没有根级别权限的普通帐户。这可以通过执行以下步骤来完成:
- 使用
adduser [username]
命令。 - 按照提示完成用户详细信息,如图 14所示:
图 14:添加非 root 用户
如果不将用户添加到正确的组中,则新创建的用户将无法提升到根级别权限,如图 15所示:
图 15:用户不在 sudo 组中
- 要将用户添加到正确的组,需要输入以下命令:
usermod -a -G sudo [username]
这里,-a
表示追加,-G
指定组。
- 将用户添加到
sudo
组后,需要允许用户利用bash
shell。这是使用以下命令完成的:
chsh -s /bin/bash [username]
chsh
命令用于更改登录 shell,-s
开关用于指定 shell。
一旦用户被添加到sudo
组,并且登录 shell 已经更改,用户就可以被提升到根级别权限,如下面的屏幕截图所示(图 16):
图 16:用户现在被提升到根级别权限
接下来,我们需要确保能够更新 Kali Linux。我们首先需要检查的是sources.list
文件;此文件可在/etc/apt/sources.list
找到。
您可以使用一些存储库;Kali Linux 网站上定义的标准版本如下:
deb http://http.kali.org/kali kali-rolling main non-free contrib
Kali Linux 在其网站上列出了其官方存储库,可在此处找到: https://docs.kali.org/general-use/kali-linux-sources-list-repositories 。
您可以通过运行more /etc/apt/source.list
或cat /etc/apt/sources.list
命令来确认您的存储库没有被注释掉,如以下屏幕截图(图 17所示):
图 17:在 Kali Linux 中列出 sources.list 文件
如果您需要编辑sources.list
文件,则可以使用 Leafpad、Nano 或您最喜欢的文本编辑器进行编辑。
此外,您需要在 Kali Linux 上执行更新,以确保您拥有最新版本的工具和系统文件。
执行更新的命令为apt update
,执行升级的命令为apt upgrade
这些命令可以一起下发,节省时间;组合命令为apt update && apt upgrade
。此外,您还可以使用apt update && apt full-upgrade
包含一个发行版升级,如下图所示(图 18):
图 18:更新和升级 Kali Linux
默认情况下,有些服务在 Kali Linux 启动时不会自动启动。Kali Linux 包含ssh
、http
等服务。如果这些服务设置为自动启动,它们将暴露端口,这将导致 Kali Linux 暴露并易受攻击
如果要启用特定服务,则需要使用systemctl``start [service name]
。例如,如果要启用ssh
服务器,可以使用systemctl
命令启动ssh
。另一方面,如果希望在引导过程中自动启动,可以使用systemctl
命令启用ssh
。
下面的屏幕截图(图 19显示ssh
服务默认不启动,并演示了如何启用它:
图 19:启用 ssh 服务
现在我们已经安装并更新了 Kali Linux,让我们继续讨论它的一些基本命令。
了解 Kali Linux 中的一些基本命令非常有用。其中一些有用的基本命令包括locate
、chmod
、find
、ls
、cd
和pwd
:
locate
:我经常使用这个命令;它可用于轻松定位特定文件。在使用locate
命令之前,需要使用**updatedb
进行数据库更新,如下图所示(图 20:**
图 20:使用 locate 命令
chmod
:如果需要控制文件的权限,此命令非常有用。某些工具在下载时需要您修改权限,以便能够执行它们。例如,chmod 600
将文件设置为只有所有者可以读写,如图 21所示:
图 21:使用 chmod 命令
find
:此命令是比locate
命令更密集的搜索工具;在此,find
搜索任何给定路径,如图 22所示:
图 22:使用 find 命令
ls
:此命令用于列出当前目录的内容。使用-a
开关将显示隐藏的文件和文件夹。cd
:此命令用于更改当前工作目录。它也被称为chdir
命令。pwd
:此命令打印工作目录,该目录仅显示您正在工作的当前目录的名称。
列出的所有这些命令都是让您熟悉 Kali Linux 中的核心功能的良好起点。如果您正在寻找完整的 a-Z 命令列表,可以使用您喜爱的搜索引擎轻松找到这些命令。
Kali Linux 相对冗长,您可以利用 bash 脚本创建复杂的脚本,然后利用这些脚本进行渗透测试。
执行Nmap
扫描的示例脚本如下:
read -p "Target IP/Range: " $targetIP
echo "$targetIP"
Nmap -sS -O -v "$targetIP"
在这个脚本中,我们告诉系统打印出read -p "Target IP/Range:
文本,该文本与$targetIP
变量相关联。在下一行中,我们使用echo
命令显示 IP 范围,该命令作为参数传递。在最后一行中,我们使用执行 TCP SYN 端口扫描的-sS
、开关执行简单的Nmap
扫描;-O
,执行远程操作系统检测;-v
、增加了详细程度,如图 23所示:
图 23:Nmap 脚本示例
在本书的学习过程中,我们将探索其他脚本(例如,在第 3 章、执行信息收集、使用脚本搜索 Shodan 等)。随着渗透测试过程的进展,您可能会开发出自己有用的脚本列表。
Kali Linux 包含数百种用于渗透测试、取证等的工具。浏览内置的工具以及 internet 上提供的其他工具可能是一项具有挑战性和艰巨的任务。
在本节中,我们将讨论您可能经常使用的基本工具。在阅读本书的过程中,您将了解内置或需要下载的其他工具。下面的列表可以说只是沧海一粟;您可以期望在本书中看到更多这些工具。
Nmap 已经存在很多年了;它是最常用的网络映射工具之一,而且是免费的。此外,它还有一个命令行和图形版本。图形版本称为 Zenmap。Nmap 的主要特点如下:
- 主机发现:用于检测网络内的主机
- 操作系统检测:用于确定目标设备的操作系统
- 应用版本检测:提供对应用版本和目标设备名称的洞察
- 端口扫描:这允许您枚举哪些端口暴露给主机
- 脚本编制:利用Nmap 脚本编制引擎(NSE),您可以编写自定义脚本,在使用 Nmap 时提供速度和效率
互联网上有许多 Nmap 的备忘单。示例可在中找到 https://pen-testing.sans.org/blog/2013/10/08/nmap-cheat-sheet-1-0/ 。
在第 3 章执行信息收集中,我们将更深入地与 Nmap 合作,并使用其一些功能,例如 NSE。
Aircrack ng 是一个无线安全套件,它包含一个数据包分析器、WPA 和 WPA2 审计工具,以及更多。机组 ng 的主要特点如下:
- 有线等效隐私****WEP和Wi-Fi 保护接入****WPA密码解密
- 包注入
- 支持 WPA 和 WPA2-PSK 密码解密
- 将捕获的数据导出到文件以进行进一步处理
- 重播攻击、取消身份验证等
将在第 9 章、无线攻击入门中使用并详细解释机组 ng。
JTR 是一种加密工具,允许您对密码执行暴力攻击。JTR 支持大量加密算法,如 SHA-1、DES、Windows 的 LM/NTLM 哈希等。JTR 的一些主要特点如下:
- 它执行字典攻击和暴力攻击功能
- 它可以作为 cron 作业运行
- 它提供了暴力规则和字典攻击列表的定制
Hydra 通常与 JTR 一起使用,它为广泛的网络协议提供支持。Hydra 是一个在线密码破解工具,而 JTR 是一个离线密码破解工具。Hydra 的一些主要特征如下:
- 它支持广泛的协议
- 它执行字典攻击和暴力攻击功能
- 它能够添加模块以扩展功能
在第 6 章理解密码攻击中,我们将开始使用 JTR 和 Hydra 进行密码攻击。
SET 为您提供了多种进行社会工程攻击的方法。它基于 Python,并且是开源的。SET 能够进行的一些攻击包括基于 WiFi AP 的攻击、基于电子邮件的攻击、基于 web 的攻击、基于 SMS 的攻击,并涉及创建有效负载。
SET 能够与第三方模块集成,支持 Powershell 攻击向量,生成网络钓鱼攻击,等等。
Burp 套件用于 web 应用渗透测试;它是一个功能强大的工具,可用于覆盖 web 应用测试的各个方面。Burp Suite 的一些主要功能包括:
- 拦截代理:用于检查和修改浏览器对目标 web 应用的请求和响应
- Spider:可用于列出 web 服务器上的所有目录
- 入侵者:用于创建和执行定制攻击
- 中继器:用于重放请求
Kali Linux 包含大量有用的工具,我们在这里介绍的只是沧海一粟。从第 3 章、执行信息收集开始,我们将在 Kali Linux 中使用更多的工具
在本章中,我们介绍了我们选择的渗透测试平台,即 Kali Linux。我们探讨了安装、配置和初始设置。然后,我们开始使用基本的 bash 脚本和常用命令。为了结束本章,我们介绍了 Kali Linux 中包含的一些基本工具。
现在您可以从头开始安装 Kali Linux 了,您知道在哪里下载预构建的虚拟机,并且已经学习了如何在 WSL 中安装 Kali Linux。除此之外,您还了解了如何执行 Kali Linux 的初始配置,例如更新、升级和添加新用户帐户。我们还探讨了如何在 bash 环境中编译基本脚本。现在,您应该已经很好地了解了一些基本命令及其用法,以及 Kali Linux 中的一些常用工具及其主要功能。
在第 3 章执行信息收集中,我们将探讨不同类型的信息收集以及您可以使用哪些工具执行此操作。我们将首先使用 Kali Linux 中的工具来执行各种类型的信息收集。
- 为什么 Kali Linux 是渗透测试人员的首选发行版之一?
- Kali Linux 有哪些安装选项?
- 哪些命令用于更新 Kali Linux?
- 您如何在 Kali 内启动特定服务?
- 在 Kali 中至少列出三个基本工具。*********