Skip to content

Latest commit

 

History

History
387 lines (218 loc) · 20.6 KB

File metadata and controls

387 lines (218 loc) · 20.6 KB

二、开始使用 Kali Linux

在本章中,我们将深入探讨 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 将是我们的首选平台。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,我们需要安装并准备好它。您会注意到,安装 Kali Linux 的选项很少;我将使用一个预构建的虚拟机,当前版本为 2019.1。

安装

如果您利用 Kali Linux 预构建的虚拟机,您所要做的就是使用 VMware 或 VirtualBox 打开它。需要提取 VMware 预构建的机器,但您可以使用 7zip 提取虚拟机。

利用预构建的虚拟机可以节省手动安装 Kali Linux 的时间。请注意,如果在打开预构建的虚拟机时出现提示,则只需选择"I copied it"

7Zip 可从下载 https://www.7-zip.org/download.html

在 macOS 上安装 Kali Linux

如果要使用 VMware Fusion 在 macOS 上从头开始安装 Kali Linux,可以执行以下步骤:

  1. 在 VMware Fusion 中,macOS 按Ctrl+N命令+N;此时会弹出新建虚拟机对话框,如图 4所示:

图 4:在 VMware Fusion 中安装 VM 的不同选项

  1. 将 Kali Linux.iso文件拖到窗口中,然后单击继续。接下来,选择 Linux 作为操作系统,然后选择 Debian 9.x 64 位,然后单击 Continue,如图 5所示:

图 5:来宾操作系统的选项

  1. 选择启动固件为 UEFI,然后点击继续,如图 6所示:

图 6:VM 操作系统固件类型的选项

  1. 单击 Customize 对分配给虚拟机的 RAM 和 CPU 进行一些更改。您可以根据自己的需要进行调整;在我的配置中,我将使用两个 CPU 和 2GB 的 RAM,如图 7所示:

图 7:VM 的设置

  1. 启动虚拟机后,选择 Start installer 并按照提示进行操作,直到安装完成,如图 8所示:

图 8:Kali Linux 的不同启动选项

完成安装步骤后,您将看到 Kali Linux 已经新安装,如前面的屏幕截图所示(图 8。现在,您已经准备好进入配置阶段。

使用 Windows Linux 子系统(WSL)安装 Kali Linux

Kali Linux 能够使用 WSL 和Windows 应用商店应用在 Windows 中本机运行。需要执行以下安装步骤,以便在安装必要工具的情况下启动并运行 Kali:

  1. 首先,安装 WSL;要执行此操作,请按 Windows 键+r,输入appwiz.cpl,然后单击确定。
  2. 选中 Windows Subsystem for Linux 复选框,如图 9所示。请注意,一旦安装,您的计算机将需要重新启动:

图 9:选择 Linux 的 Windows 子系统

  1. 在 Windows 应用商店中,搜索Kali Linux Windows Store App,然后安装应用。打开应用后,它将执行一些初始步骤,例如创建新的 root 用户帐户。完成后,您可以继续使用sudo apt-get update命令更新 Kali Linux,如图 10所示:

图 10:在 WSL 中更新 Kali Linux

  1. 要查看可用软件包的完整列表,请使用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 应用。

安装应用后,您可以继续执行以下步骤:

  1. 打开Ubuntu Windows 应用商店应用并使用以下命令执行应用的更新和升级:
sudo apt-get update

sudo apt-get upgrade
  1. 更新 Ubuntu 后,您需要安装 Python 2.7 版;这可以使用以下命令完成:
sudo apt-get install python
  1. 您还可以使用诸如katoolin之类的工具,可以使用以下命令对其进行克隆:
git clone https://github.com/lionsec/katoolin.git && cp katoolin/katoolin.py /usr/bin/katoolin

chmod +x /usr/bin/katoolin
  1. 您可以使用sudo katoolin命令运行Katoolin工具,这将为您提供一个菜单,您可以使用该菜单添加 Kali 存储库并安装分类列出的各种工具,如图 12所示:

图 12:WSL 中安装在 Ubuntu 中的 Katoolin

本书将使用安装在虚拟机或物理主机上的 Kali Linux。本书的范围不包括在 WSL 中使用 Kali Linux。

使用 VirtualBox 安装 Kali Linux

VirtualBox 是一个跨平台的虚拟机监控程序;在 Windows 和 macOS 中导入预构建的 Kali Linux 虚拟机的过程是相同的。

下载预构建的虚拟机后,它将采用.ova格式。可以使用以下步骤将其导入 VirtualBox:

  1. 如果您使用的是 macOS 版本,请打开 VirtualBox 并单击导入;或者,如果您使用的是 Windows 版本,请单击文件导入。 ** 导航到您下载预构建虚拟机的位置,然后选择.ova文件。然后,单击“下一步”按钮。* 现在,您将看到虚拟机的设置和存储位置。您可以对此进行自定义,也可以将其保留在默认设置中。* 最后,单击导入。*

*导入完成后,可以启动 Kali Linux 虚拟机。您可能会收到一个与 USB 硬件相关的错误,但 VirtualBox 会提到您可以安装什么来解决此问题。

配置 Kali Linux

在启动并运行 Kali Linux 之后,还需要执行一些步骤。

如果您手动安装了 Kali Linux,系统将提示您提供根帐户的用户名和密码。或者,如果您使用的是预构建的虚拟机,则默认用户名为root,密码为toor。要更改密码,您可以使用passwd实用程序,如图 13所示:

图 13:在 Kali Linux 中更改根密码

Kali Linux 中的大多数工具都需要根级别的权限才能运行。但是,始终使用根级别帐户存在风险;例如,考虑你正在浏览互联网,并在恶意网站上登陆。此恶意网站可能包含一个滴管,该滴管会将远程 shell 放到 Kali Linux 上。由于使用的帐户是根级别的帐户,攻击者将拥有一个在您的系统上具有根权限的远程 shell。

为了提供额外的安全层,您需要创建一个没有根级别权限的普通帐户。这可以通过执行以下步骤来完成:

  1. 使用adduser [username]命令。
  2. 按照提示完成用户详细信息,如图 14所示:

图 14:添加非 root 用户

如果不将用户添加到正确的组中,则新创建的用户将无法提升到根级别权限,如图 15所示:

图 15:用户不在 sudo 组中

  1. 要将用户添加到正确的组,需要输入以下命令:
usermod -a -G sudo [username]

这里,-a表示追加,-G指定组。

  1. 将用户添加到sudo组后,需要允许用户利用bashshell。这是使用以下命令完成的:
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.listcat /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 包含sshhttp等服务。如果这些服务设置为自动启动,它们将暴露端口,这将导致 Kali Linux 暴露并易受攻击

如果要启用特定服务,则需要使用systemctl``start [service name]。例如,如果要启用ssh服务器,可以使用systemctl命令启动ssh。另一方面,如果希望在引导过程中自动启动,可以使用systemctl命令启用ssh

下面的屏幕截图(图 19显示ssh服务默认不启动,并演示了如何启用它:

图 19:启用 ssh 服务

现在我们已经安装并更新了 Kali Linux,让我们继续讨论它的一些基本命令。

Kali-Linux 中的基本命令

了解 Kali Linux 中的一些基本命令非常有用。其中一些有用的基本命令包括locatechmodfindlscdpwd

  • 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 中的脚本编写

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 的基本工具

Kali Linux 包含数百种用于渗透测试、取证等的工具。浏览内置的工具以及 internet 上提供的其他工具可能是一项具有挑战性和艰巨的任务。

在本节中,我们将讨论您可能经常使用的基本工具。在阅读本书的过程中,您将了解内置或需要下载的其他工具。下面的列表可以说只是沧海一粟;您可以期望在本书中看到更多这些工具。

Nmap

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 的主要特点如下:

  • 有线等效隐私****WEPWi-Fi 保护接入****WPA密码解密
  • 包注入
  • 支持 WPA 和 WPA2-PSK 密码解密
  • 将捕获的数据导出到文件以进行进一步处理
  • 重播攻击、取消身份验证等

将在第 9 章无线攻击入门中使用并详细解释机组 ng。

开膛手约翰(JTR)和海德拉

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 套件教程

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 中的工具来执行各种类型的信息收集。

问题

  1. 为什么 Kali Linux 是渗透测试人员的首选发行版之一?
  2. Kali Linux 有哪些安装选项?
  3. 哪些命令用于更新 Kali Linux?
  4. 您如何在 Kali 内启动特定服务?
  5. 在 Kali 中至少列出三个基本工具。*********