Kali-Linux-无线渗透测试秘籍(一)

174 阅读1小时+

Kali Linux 无线渗透测试秘籍(一)

原文:annas-archive.org/md5/D4F06D7644E988D14E142118F7AFB3EB

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

越来越多的组织正在转向无线网络,Wi-Fi 是一个受欢迎的选择。由于 Wi-Fi 网络的广泛使用,无线网络的安全性比以往任何时候都更加重要。本书提供了一些食谱,可以让您利用 Kali Linux 的高级道德黑客功能,最大限度地提高无线网络测试的成功率。

本书涵盖的内容

第一章,Kali Linux 和无线网络,是对 Kali Linux 世界的介绍,以及如何使用它进行无线渗透测试。

第二章,攻击访问控制,着重介绍了无线网络中可能存在的访问控制,以及如何颠覆这些控制。

第三章,攻击完整性控制,解释了对完整性产生影响的主要组件以及这些控制如何被颠覆。

第四章,攻击机密性,涉及无线网络中机密性的价值,以及如何破坏和改变机密性以拦截数据和收集机密信息。

第五章,攻击可用性,关注无线网络中可用性的重要性,以及如何影响可用性以影响任何无线设备或网络的运行。

第六章,认证攻击,集中讨论了无线网络中认证的工作原理,以及可以采取什么行动来攻击、降级或关闭认证组件。

第七章,蓝牙攻击,专注于蓝牙技术以及如何使用类似的概念对其进行攻击,以及一些新技术。

您需要为本书做好准备

要在本书中编写所有示例,您需要在系统上配置 Kali Linux。

本书的受众

本书适用于熟悉网络技术和基本安全概念,并有兴趣评估无线设备和网络的人员。

章节

在本书中,您会经常看到几个标题(准备工作,如何做…,它是如何工作的…,还有更多…,以及参见)。为了清晰地说明如何完成一个食谱,我们使用以下部分:

做好准备

本节告诉您食谱中可以期待什么,并描述如何设置食谱所需的任何软件或任何初步设置。

如何做…

本节包含按照食谱所需的步骤。

它是如何工作的…

本节通常包括对上一节发生的事情的详细解释。

还有更多…

本节包括有关食谱的其他信息,以使读者对食谱更加了解。

参见

本节提供了有关食谱的其他有用信息的链接。

约定

在本书中,您会发现许多文本样式,用于区分不同类型的信息。以下是这些样式的一些示例及其含义的解释。文本中的代码词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 用户名都显示如下:“在数据库中为 JIRA 创建一个新用户,并使用以下命令授予用户对我们刚刚创建的jiradb数据库的访问权限”。

任何命令行输入或输出都以以下方式编写:

giskismet ­-x Kismet-DATE.netxml ­-q "select * 
    from  wireless" ­-o wardrive.kml

新术语重要词汇以粗体显示。您在屏幕上看到的单词,例如菜单或对话框中的单词,会以这样的方式出现在文本中:“从管理面板中选择系统信息”。

警告或重要说明会出现在这样的地方。

技巧会以这样的方式出现。

第一章:Kali Linux 和无线网络

在本章中,我们将涵盖以下内容:

  • 安装 Kali Linux

  • 在 PC 上安装 Kali Linux

  • 在虚拟环境中安装 Kali Linux

  • 更新 Kali Linux

  • 准备进行无线渗透测试

介绍

在当今世界,分享信息的最常见方式之一是通过无线通信。Wi-Fi 被用于许多地方,包括家庭、工作场所、机场、咖啡店、零售店,以及其他太多的地方无法一一列举。

由于这种通信方式的流行,可以断定这些网络中有很多有价值的信息。正是由于这些信息和这些网络固有的弱点,它们成为那些希望窃取访问权限、信息或两者兼而有之的人的常见目标。

在本书中,我们的目的是双重的,一方面是向你介绍 Kali Linux 中设计用于审计无线网络的工具,另一方面是展示一些可能的不同攻击。这种方法将不仅为你提供关于攻击及其工作原理的信息,还将为你提供有价值的见解,以减少这些攻击的可能性或有效性。

开始使用 Kali

Kali Linux 旨在为那些进行渗透测试和取证的人提供帮助;然而,在本书中,我们将更多地关注前者而不是后者。事实上,在渗透测试的主题上,我们将专注于使用仅用于测试和侵入无线网络或设备安全性的工具。

为了充分利用本书并了解如何用它来渗透无线网络,你应该具备一些基本的技能,以使事情变得更容易。预期如果你要开始这段旅程进入审计无线网络,你至少应该具备以下技能:

  • 对 TCP/IP 协议和 IPv4 的理解

  • 开放系统互联OSI)模型的了解

  • 对网络帧类型的理解(即 IEEE 802.3、802.11 等)

  • 了解无线电频率和技术是有帮助的,但是可选的

  • 有设置和使用无线设备和网络的经验

  • 有 Kali Linux 的实际操作经验是有帮助的,但我们将在学习过程中填补你的知识空白

  • 有使用虚拟化的经验是可选的,如果你打算用它来托管你的设置

  • 解决网络故障的经验

  • 熟练使用命令行

再次强调,这些最后几点中的缺失不会伤害你,但拥有它们将在本书中和你的渗透测试职业中大有帮助。

安装 Kali Linux

准备在计算机系统上安装 Kali Linux 与你可能遇到的其他操作系统类似,首先要确保你具备正确的系统要求。

准备工作

为了开始,让我们看看你需要具备的最低硬件要求,以便安装产品:

  • 至少需要 10GB 的硬盘空间来安装 Kali 操作系统

  • 对于 i386 和 amd64 系统,需要 512MB 的 RAM

  • CD/DVD 驱动器或 USB 启动支持

  • 有一个活跃的互联网连接是可取的

再次,请记住这里列出的内容代表最低限度,你会希望尽可能超过这些要求,以确保良好至卓越的性能。我个人建议至少拥有 4GB 的 RAM,如果可能的话(我个人分别在我使用的系统中拥有 8GB 或 16GB 的内存,但我过去使用 4GB 的内存也没问题)。

你还应该注意 Kali 的要求非常低,这将使你能够在几年前的计算机上运行产品得很好。

如何做...

一旦您确认或升级了系统所需的硬件,现在您需要选择如何安装 Kali。Kali 提供了几种不同的安装和运行产品的方式,每种方式都有其自身的好处,但也有其自身的缺点。然而,在本书中,我们将假设两种选择,即在 PC 上进行物理安装和在虚拟环境中进行安装。

虚拟化与物理

使用虚拟化而不是直接安装在系统上的问题是您应该考虑的一个问题。虚拟化是一个常见的选择,多年来被大大小小的组织所采用,许多组织在各种需求上都大量使用它。对许多人来说,转向虚拟化的推动力可能是许多因素,包括系统整合、节省电力、优化硬件使用、应用程序和系统的隔离、易于管理以及测试等等。

然而,对于渗透测试人员来说,使用虚拟化的方式可能会有所不同。

渗透测试人员的动机之一是能够在主机上以不同的配置运行测试环境。例如,在 Microsoft Windows 作为主机的情况下,在系统的虚拟化环境中运行一个或多个 Kali 环境作为客户端,可以实现整合,以及根据需要拥有专门的配置。

转向虚拟化的另一个原因是利用所谓的隔离沙盒。基本上,这意味着客户系统与主机系统分开,允许两者都可以访问网络和互联网,而不让它们可能相互干扰。在工具和技能可能会对主机或其他系统造成伤害或威胁的情况下,这将是至关重要的。

当然,没有免费的午餐,也不是每种情况下都是理想的,虚拟化也不例外。可能会出现问题的一个领域是硬件支持。在某些情况下,由于虚拟化技术的原因,物理设备可能无法按照您的需求进行功能。一个例子是无线网络和蓝牙;这些技术可能要求 Kali 直接在硬件上运行,而不是在虚拟环境中运行。虽然这种限制并不常见,但可能会令人沮丧。当然,如果我不提到有解决方法,并且可能使一些硬件选项在虚拟化环境中工作,否则不会工作,但这些解决方法可能非常复杂和专业化,超出了本工作的范围。

我必须指出,在一些虚拟化平台上,可以使用 USB 透传来启用外部 USB 适配器的使用。然而,这个选项在支持和功能上有所不同,取决于实际使用的软件平台。请咨询您的软件,了解如何在您的环境中完成此任务的详细信息。

预安装检查清单

与许多可用的操作系统一样,Kali 有一些独特和特定的要点需要考虑,以便使安装顺利进行。幸运的是,Kali 保持其安装要求相当简单,但肯定有一些因素可能会影响您的体验,并使 Kali 的运行方式不太理想。

为了确保我们获得最佳的安装和性能,这里是一个需要考虑的清单示例:

  • 您会将 Kali 安装到硬盘上,还是从可移动介质上运行?

  • 系统当前有多少内存?更多的内存可以带来更好的体验和更好的性能。在我自己的个人系统上,我使用 8GB 运行 Kali 非常流畅。如果你使用的是硬盘以外的设备运行 Kali,更多的内存可能会带来更好的性能,因为更多的 Kali 可以保存在内存中。

  • 你将运行什么应用程序?如果你将在 Kali 中安装其他应用程序,你可能需要调整你的配置以适应它们的包含。一些实用程序需要特殊的硬件(如无线设备)才能正常运行。如果你依赖这些功能或将来会使用它们,请确保你的所有硬件兼容或可以升级。

  • 你有什么类型的硬盘?我曾经在传统硬盘和固态硬盘上运行过 Kali,其中固态硬盘的运行效果更好,性能更令人满意。

  • Kali 对你喜爱的应用程序和设备的软件支持非常广泛,并且随着时间的推移而不断增加。Kali 已经包含了许多用途和情况的应用程序,但你可以根据需要添加。

选择安装选项

在我们评估了我们的系统是否适合安装 Kali 之后,现在我们需要考虑如何安装它。阅读本书的很多人可能在 Windows 环境中有丰富的经验,因此几乎总是直接将操作系统安装到硬盘上。然而,正如我们刚刚了解到的,Kali 提供了额外的安装选项。我们现在需要确定关于安装位置的路径。

让我们看看主要的选项以及每个选项的优缺点:

  • 安装到没有持久性的闪存驱动器:如果你希望使用 Kali 进行取证,这是一种合适的安装方法,因为它不会改变主机,因此不会影响系统上的潜在证据。如果你希望 Kali 帮助你进行网络或主机故障排除,这也是一种非常合适的安装方法。如果你想要一个便携式环境,可以在任何系统上运行而不必担心对主机或闪存驱动器本身的更改,这也是一个理想的选择。

  • 安装到带持久性的闪存驱动器:这种安装方法适用于你希望能够携带 Kali 进行故障排除、取证或拥有便携式渗透测试工具包的情况,但你希望能够保存文件并对系统进行更改而不会在每次关闭系统时丢失这些更改。

  • 安装到硬盘:这是非常受欢迎和有用的,因为它提供了最佳的性能,因为文件不需要在每次启动时加载到内存中。这种安装还提供了保存文件和进行更改而不会在重新启动时丢失的能力。如果你想要一个保留更改的系统,特别是如果你倾向于根据自己的需求调整系统,这是理想的选择。

  • 安装为虚拟化环境:这个选项就像安装到硬盘一样,只是操作系统被安装到允许对 Kali 客户进行更改的虚拟化环境中。

  • 从 CD 或 DVD 运行:我在这里包括这个选项,因为这是另一种类似于将 Kali 安装到非持久性闪存驱动器的选项。这种方法的操作速度通常比这里介绍的任何其他方法都要慢。

Kali Linux 在 VM Ware 上虚拟运行

如果将使用非常特定的硬件,例如高性能图形卡用于破解密码,建议将 Kali Linux 安装在台式电脑上。如果需要从客户现场携带操作系统到客户现场,或者希望测试无线设备,则建议使用笔记本电脑。笔记本电脑和台式电脑的操作系统安装方式相同。

就我个人而言,我在虚拟环境和专用笔记本上运行 Kali,Kali 是唯一安装的操作系统。我选择的系统是一台老式的联想笔记本,带有触摸屏、2.4 GHz CPU、8 GB RAM、250 GB SSD、蓝牙、Wi-Fi,除此之外没有太多其他功能。它绝对不是最先进的,但它有足够的性能和功能,我可以做我需要做的事情,还有多余的性能。

我的笔记本选择主要基于两个主要问题,即硬件支持和性能。通过选择一个稍微老一点的系统,我不必担心 Kali 是否支持硬件,也不必担心需要寻找解决方案来使系统工作,它就可以正常运行。至于性能,我指的是 Linux 传统上不需要最强大的硬件就能获得良好的性能。事实上,Linux 传统上以在旧硬件上运行而闻名,而其他操作系统可能会遇到问题。但是,我确保没有选择太老的硬件,以至于会受到我需要使用的工具的限制。我发现,在过去五年或更短时间内制造的硬件通常可以在大多数情况下正常运行 Kali。

硬盘选择

在选择用于 Kali 的系统时,不要在硬盘上偷工减料。通常最好选择至少有 150GB 空间的硬盘,但如果可能的话,应考虑更大的硬盘,因为您无疑会安装 Kali 中未包含的其他工具(更不用说您生成的数据也会占用空间)。

请记住,作为渗透测试人员,您不仅会被要求,而且需要保持您的发现机密,对于许多测试来说,这意味着擦除硬盘以确保安全。虽然可能清除已安装的操作系统,使其返回到基本或原始未更改的状态,但您仍可能希望擦除硬盘。建议是设置系统的方式,然后对其进行镜像,以便您可以有效地擦除硬盘,然后随时恢复原始镜像。请始终记住,失去对信息的控制或泄露信息不仅会让您的客户感到不满,还会让您面临诉讼、声誉损失、职业损失和不好的业力。基本上,在测试期间和之后,对您收集的数据采取适当的预防措施。

当我获得当前的 Kali 系统时,我做的第一件事之一就是用更大的 SSD 硬盘替换硬盘。我觉得这项投资出于许多原因都是明智的,我会在这里尽量解释。

首先,使用 SSD 固态硬盘通常会在一定程度上减少系统的电池消耗。电池消耗的减少会导致在无法插入墙壁时更长时间的移动使用。

其次,SSD 固态硬盘比传统硬盘快得多。SSD 固态硬盘的读写速度比传统硬盘快。能够更快地检索和操作数据对于渗透测试人员(或任何人)来说都是巨大的好处。

最后,SSD 固态硬盘比较老式的传统硬盘更耐用。计算机内部没有旋转的磁盘意味着移动和携带硬盘加系统不太可能导致硬盘故障。

这些是我在转向固态硬盘时考虑的事情,我觉得自己没有做出错误的选择。

网络卡和无线

在考虑 Kali 时,您需要考虑如何连接到网络以及您可能进行的测试类型。换句话说,我们在本节考虑的是您的网络接口选择,即有线或无线。无线是如今几乎任何类型的设备都常见的一种包含(或者在过去 10 年内制造的设备)。另一方面,随着许多笔记本电脑和便携式电脑完全放弃有线网络连接,有线网络连接在设备上变得不太常见。

在无线网络方面,您可能会发现许多无线网卡,无论是包含在您的设备中还是通过其他方式添加的,都可以在 Kali 上正常工作,或者可以通过从制造商处获取正确的驱动程序来进行修正。下图显示了一个常见的 USB 无线网络适配器的示例:

USB 无线适配器

在考虑购买外部 Wi-Fi 适配器时,我想指出的一件事是,您是否将在某个时候运行 Kali NetHunter。Kali NetHunter 在本书的其他地方有所讨论,但简而言之,它是 Kali 的基于 Android 的版本,适用于移动设备,如智能手机和平板电脑。如果您计划在测试中使用这个平台,您应该确保您在此处购买的 Wi-Fi 适配器与 Kali 的两种形式兼容,这样您就不必购买比您需要的更多的适配器。

您可能还会进行一些蓝牙测试,这种情况下,您可能需要为此目的获取额外的适配器。购买另一个适配器的原因是,蓝牙默认只能延伸到 30 英尺或 10 米的范围。如果您需要更大的范围来扫描更大的区域,您可以获取一个工业蓝牙适配器,它将扫描范围延伸到 1000 英尺或更远。

在 PC 上安装 Kali Linux

因此,考虑到我们的系统要求和考虑因素,再加上大约半小时的时间,我们现在准备安装 Kali。首先,您需要从www.kali.org/获取适用于您的硬件的 Kali Linux 副本。目前,Kali 支持 i386、amd64 以及 ARM(armel 和 armhf)平台。

准备工作

在安装之前,您需要下载适合您的硬件的版本,例如 64 位系统的 amd64。

因此,让我们开始安装过程,创建我们的 Kali 系统。

如何做...

  1. 开始安装过程需要从您用 Kali 准备的 DVD 或闪存驱动器引导系统,可以通过将 ISO 文件刻录到媒体或准备一个带有文件的 USB 驱动器来实现。

  2. 您可以通过从您选择的媒体引导来启动安装。实际的从可移动媒体(如 DVD 或 USB)引导的过程将取决于您的硬件,因此请向您的供应商查询如何在您的系统上执行此操作。

  3. 一旦从您选择的媒体引导,您将被提示选择要执行的安装类型。您可以选择图形模式或文本模式安装。为了更好地展示过程,我们将在这里使用图形模式。

  4. 选择安装模式后,选择您所在地区的语言、位置和键盘布局。

  5. 一旦选择了这些选项,安装脚本将把镜像复制到系统的硬盘,并对硬件进行简要扫描,寻找网络接口。

  6. 一旦提示,选择系统的主机名。

  7. 接下来,为系统的非根用户提供一个全名。

  8. 将根据您提供的全名创建一个默认用户 ID。如果名称不可接受,您可以选择一个新名称。

  9. 在提示时,选择一个时区。

  10. 接下来,安装程序将探测您的磁盘并为您提供两个选择。您可以选择使用整个驱动器专用于 Kali,或者使用逻辑卷管理器(LVM)来自定义安装。如果您对 LVM 不熟悉,建议选择使用整个驱动器。

  11. 根据您的需求,您可以选择将所有文件保存在单个分区中(默认设置),或者为一个或多个顶级目录设置单独的分区。

  12. 点击继续后,安装程序将继续进行安装。

  13. 配置网络镜像。Kali 使用一个中央仓库来分发应用程序。您需要根据需要输入任何适当的代理信息。

  14. 接下来,安装 GRUB。GRUB 是 Linux 的引导加载程序。如果没有,您需要安装 GRUB。

  15. 最后,点击继续重新启动到新的 Kali 安装中。

软件安装完成后,您可以使用安装过程中设置的凭据登录。

在虚拟环境中安装 Kali

在虚拟环境中安装 Kali 是另一个选择,也不比在硬盘上安装困难得多。在这个步骤中,我们将创建我们自己的带有 Kali 的虚拟机。在这个步骤结束时,我们的目标是拥有我们自己的完全配置、运行和定制的虚拟机,该虚拟机将运行 Kali 发行版。

需要记住的一件事是,在kali.org网站上可以下载可用于 Oracle 的 VirtualBox 和 VMware 的虚拟机。如果您不想从头开始创建自己的虚拟机,您可以简单地下载其中一个虚拟机映像,加载到您选择的虚拟化软件中,然后准备好使用。但是,请记住,您可能更愿意从头开始创建自己的虚拟机,以便您可以自定义和设置它的方式。

准备工作

如果您选择虚拟化 Kali 并将其用于无线网络测试,需要注意的是,您将需要配置虚拟环境以与主机系统上的外部适配器配合使用。在大多数情况下,您将需要使用外部 USB 无线适配器,并找出如何配置您的虚拟化软件以使用一种常称为 USB Passthrough 的技术。由于这是虚拟化软件包特有的,我们将不在这里涵盖这个过程。

如何操作...

这里记录的步骤是在 VMware Player 上执行的,但在其他虚拟化平台(如 VirtualBox)上也是相似的。但是,无论虚拟化平台如何,您都需要从 Kali 网站下载 32 位或 64 位 ISO 文件。

  1. 在您的软件中,您需要创建一个新的虚拟机。

  2. 在提示时选择您下载的 ISO 文件。

  3. 选择许多虚拟化软件包将自动检测的客户操作系统,但在某些情况下,您可能需要调整设置。

  4. 设置新虚拟机的名称和位置。

  5. 设置磁盘空间(20 GB 足够,但更多更好)。

  6. 查看硬件配置并启动虚拟机。

  7. 选择图形安装,按照正常选择语言、时区、主机名等。

  8. 在提示进行磁盘分区时,选择硬盘并选择全包。

  9. 点击完成分区并将更改写入磁盘,选择是以进行写入。

  10. 设置网络镜像和引导加载程序。

  11. 等待安装完成。

更新 Kali Linux

安装 Kali Linux 后,更新发行版并不是一个坏主意,以确保您拥有所有工具的最新版本,并应用可能已发布的任何补丁和其他修复。您不仅应该在安装系统后对系统进行更新,而且应该出于同样的原因定期进行更新。事实上,更新和补丁会相当经常地发布,因此最好养成定期检查这些内容的习惯,这样您就不会错过任何内容,也不会让自己处于不安全的状态。

重要的是要认识到,安装完成后应立即运行更新,以及定期运行更新。这是出于许多原因,主要是因为自安装镜像或 ISO 文件发布以来,可能已经发布了新工具或应用程序数据库的新更新。更不用说定期更新软件是保护自己免受安全问题和担忧的关键因素。

如何操作...

为了保持 Kali 系统的最新状态,这个过程非常简单。要快速检查更新,运行以下命令。

  1. 打开命令提示符。

  2. 输入以下命令:apt-get update

  3. 按下Enter

  4. 命令完成后,输入以下命令:apt-get dist-upgrade

  5. 按下Enter

这个过程将需要几分钟(或更长时间),具体取决于您的互联网连接和需要下载的更新数量。如果您保持系统最新并定期检查,您可以期望这个过程不会像第一次进行时那么长。

准备进行无线渗透测试

在安装了 Kali 之后,我们需要做一些准备工作,以便在无线世界中进行适当的渗透测试。我们必须做的第一件事之一是准备好我们的系统,获取有关我们的无线设备的信息,以及获取我们可能需要执行测试的适配器或天线。

让我们学习一些关于连接到系统的无线设备(或网络适配器)的基础知识。

如何操作...

首先,让我们看看如何识别无线适配器:

  1. 您手头应该有的第一条信息之一是您的网络连接的名称和类型。当您使用各种实用工具和脚本以及确保您拥有适当和最佳的适配器以获得最佳测试结果时,这些信息将在以后非常有帮助。

  2. 因此,让我们来看看如何定位和识别当前的网络适配器,以及这些信息在我们进行渗透测试时将来会有多大用处。

使用 ifconfig 来识别网络适配器。

在 Linux 中存在一个命令,可以轻松帮助我们识别无线连接及其状态,这个命令是ifconfig。这个命令可以通过命令行访问,显示系统上每个适配器的网络连接信息及其相关名称。

要运行命令,只需在 Kali 命令行中输入以下内容:

Ifconfig
  1. 按下Enter

  2. 您将从命令中获得的结果看起来有点像下面这样:

如前面的截图所示,我们有很多信息。所以,让我们来分解一下。

您应该注意的第一条信息是网络连接的名称,在这种情况下,它们被命名为eth0lo。您可以在这些位置上有诸如eth1或其他标签的名称,具体取决于网络类型。对于我们的目的,我们应该看到一个标记为wlan0wlan1或以wlan前缀开头的适配器,表示无线连接。对于我们的分析目的,我们将使用eth0适配器;lo 适配器是环回虚拟适配器,在这里对我们没有用处。

您还应该注意到这一行中的UPDOWN,这将告诉您适配器是在线还是离线。

第二个重要信息是以inet标签开头的行。这一行为我们提供了有关当前配置的 IPv4 地址和相关子网掩码等详细信息。直接在其下方的行提供了相同类型的信息,但是针对 IPv6。

下一行为我们提供了一个以ether标记的信息,即网络适配器的媒体访问控制MAC)地址,也称为适配器的物理地址

其余的行提供了有关网络配置和数据传输的详细信息。我们现在将忽略这些。

你应该始终熟悉至少每个适配器的前三行的内容(对于我们的目的,只需你的无线适配器即可)。当你使用各种工具和脚本攻击无线网络时,所有这些信息都会派上用场:

  1. 选择网络适配器。

  2. 你需要采取的下一步行动之一是选择一个无线网络适配器或你需要执行测试的物品。虽然你可以使用内置在笔记本或其他设备中的适配器,但在某些情况下它们确实缺乏一些功能。

  3. 一些可能不存在于内部适配器中,但可能需要的功能是:

  • 支持外部天线

  • 能够执行数据包注入(对于某些攻击是必需的)

  • 某些卡上不兼容的芯片组可能无法与某些特定实用程序一起工作

  • 对新无线标准的支持不足

  • 不支持不同频率

这是一个缺乏支持或功能的功能列表,可能会限制你准确和完整地执行测试的能力。

考虑到这一点,我将展示一个相当常见且工作良好的适配器的示例。以下图片是 TP-Link 的一个支持这里列出的许多功能的适配器的示例:

外部 USB 无线适配器

从上面的照片中可以看出,该适配器最显著的特点是其使用外部天线,旨在提供更好的性能。你甚至可以更换该适配器上的天线,以提供不同范围和性能。

那么,你如何知道哪个适配器适合你呢?在大多数情况下,你可以使用内部无线网络适配器,但并非总是如此。如果你打算对无线网络进行高级攻击,增加测试的范围和功率。

还有更多...

为了加深理解,你可以参考以下部分。

蓝牙适配器

如果你将使用蓝牙进行测试,你将需要获取一个适配器来有效地执行这种类型的测试。虽然大多数设备,如笔记本电脑、平板电脑、台式机和其他计算平台都包括蓝牙支持,但这些都倾向于是短距离的(平均 10 米或 30 英尺),并且不支持重要功能,比如数据包注入(我们稍后会了解)。

一些在渗透测试中可能非常有用的蓝牙适配器的例子是 Sena UD100 和 Ubertooth One。

第一个是 Sena UD100,是一个支持数据包注入和外部(可更换)天线的 USB 蓝牙适配器。默认情况下,该适配器支持最高达 1000 英尺的范围(意味着它可以通过天线升级捕捉到达或超过该限制的设备)。

UD100 工业蓝牙适配器

另一个被称为 Ubertooth One 的适配器更像是一个开发板,而不是一个标准的适配器,但它也可以用于我们的测试。基本上,该适配器不仅是一个网络卡,而且是一个开源(硬件和软件都是)系统,可以用来开发和实现你自己的功能。以下是 Ubertooth One 的图片。

Ubertooth One

那么,你如何决定是否需要蓝牙适配器呢?在大多数情况下,如果你打算进行长距离扫描、执行数据包注入,或者做除了仅仅检测蓝牙设备之外的任何事情,你可能需要获取一个适配器。

第二章:攻击访问控制

在本章中,我们将涵盖以下内容:

  • 处理战争驾驶

  • 映射接入点并提高准确性

  • 创建伪装接入点

  • 通过 MAC 欺骗规避 MAC 过滤

  • 识别淫秽客户端

介绍

在处理无线网络时,可能使用的攻击类型之一是访问控制攻击。属于这一类别的攻击旨在通过规避访问控制措施来渗透和破坏无线网络。这些类型的访问控制措施包括 MAC 过滤、错误配置、伪装接入点以及本章中将讨论的其他项目。

在我们深入研究访问控制之前,让我们更详细地了解一下,以更清楚地理解我们在本章中攻击的是什么。

访问控制过程涉及辨识和授权。任何针对访问控制的攻击都会试图窃取凭据,或者冒充用户或系统,以获取访问权限并执行未经授权或明显恶意的活动。正因为访问控制是攻击的常见目标,组织必须实施强大和适当的控制。

在无线网络上,访问控制可以采用多种不同形式,每种形式可以独立使用,也可以一起部署以形成更强大的解决方案。无线网络中使用的访问控制机制的一些示例包括:

  • MAC 过滤:这是一个过程,其中 MAC 地址被输入到接入点中,目的是允许或禁止持有这些 MAC 地址的设备访问。

  • 隐藏 SSID:这种技术是由网络管理员使用的,用于阻止网络标识符在公开环境中的广播。

  • 接入点位置:网络所有者可以选择将他们的接入点放置在建筑物内的特定地理区域,以限制广播的范围。这限制了恶意方或攻击方获取访问权限的信号量。

这只是一个潜在的措施清单,可以用于访问控制,以限制无线网络仅授权用户的可访问性。

一旦访问控制被破坏或颠覆,攻击者可以继续深入到目标网络中。攻击者可能通过利用无线网络或连接到无线网络的设备中存在的缺陷或错误配置,或者甚至是被忽视或低估的选项来规避访问控制。

访问控制攻击类型

访问控制攻击有多种形式,其中并非所有形式都能在本书的页面中涵盖。但是,我们可以涵盖这种类型攻击中许多更常见的形式。在我们开始探索每一种攻击之前,让我们首先列出本章将涵盖的攻击:

  • 战争驾驶

  • 伪装接入点

  • MAC 欺骗

  • 临时关联

  • AP 错误配置

  • 客户端错误关联

  • 未经授权的关联

  • 淫秽客户端

请记住,这只是可以用来针对无线网络上的访问控制的攻击类型中的一些,它们不应被视为唯一的访问控制攻击类型。

处理战争驾驶

用于针对访问控制的最早和最常用的攻击形式之一是一种称为战争驾驶的技术。简而言之,这种技术是使用无线设备以及专门用于检测或探测到达无线设备范围内的无线网络的软件。

战车如此受欢迎和有效的原因在于,许多计算机用户,无论是个人还是企业,多年来一直在部署802.11无线接入点,却很少考虑安全性。允许用户漫游的无线网络的部署已经超过了采取措施来保护他们的接入点和设备免受潜在攻击的重要性。

对于部署了配置错误或不安全的无线网络,我们有一类攻击者参与这种被称为战车的做法。参与这种活动的人会建造定制的设备,由硬件和软件组合而成,目的是在公共场所巡游,寻找无线接入点和设备。这些人可能只是对定位和针对特定网络感兴趣,或者在某些情况下,他们甚至可能会将这些信息分享到在线数据库或网站,让任何访问者都可以搜索这些接入点。

在实践中,个人使用这种攻击方法是通过在探索目标区域之前启用他们的无线设备和软件。当攻击者选择探索目标区域时,他们可以使用自行车、汽车、摩托车、步行,甚至使用新的方法,如无线无人机。无论使用哪种方法,只要攻击方对探索目标区域采取合理的系统方法,他们就会发现许多无线设备和/或网络。一旦他们找到这些无线网络,他们就可以浏览他们收集到的信息,并确定要专注和渗透的无线目标。

在 Kali Linux 中,我们有许多工具可以轻松促进战车的实践。在发行版中,每一个对战车有用的工具都有其自己的一套功能,这些功能可能存在于其他工具中,也可能不存在。在本书中,我们将专注于使用一种更受欢迎的工具来进行战车,这种工具被称为 Kismet。

战车不仅有一种形式,还有其他属于这个术语的子类型。具体来说:

  • 战飞:与战车相同,但使用小型飞机或超轻型飞机

  • 战气球:与战飞相同,但使用气球

  • 战步行:这涉及将检测设备放在背包或类似物品中,穿过建筑物和其他设施

准备工作

要开始操作,您需要准备以下物品:

  • 一个能够进入监视模式的无线网卡

  • Kali Linux 安装了 Kismet(默认 Kali 安装的一部分)

这里列出的物品是基本要求,如果需要,您可以轻松地使用更多(或不同的)组件。例如,如果您想要增强范围,您可以使用一个带有外部天线连接的 USB 无线网卡,以获得更好的接收效果。您也可以使用不同的无线应用程序来完成这项任务;但是,由于 Kismet 非常受欢迎,我们将在本文中使用它。

如何做到这一点...

Kismet 是一个有效的工具,用于定位和提取无线接入点和设备的有用信息。

在命令行上启动 Kismet 之前,需要注意一点:如果您使用外部 Wi-Fi 适配器,您应该在发出命令之前安装和配置它。默认情况下,Kismet 应该配置为使用物理系统上存在的无线适配器;但是,如果您选择使用外部适配器,您可能需要执行额外的配置,以便让您的适配器被 Kismet 识别。

在本教程中,我们将通过从命令提示符启动 Kismet 来启动 Kismet,但也可以通过应用程序菜单中的无线攻击部分启动它。在任何一种情况下,启动 Kismet 都将导致在此处记录的相同步骤:

  1. 打开终端窗口。

  2. 在命令提示符处,输入命令kismet

  3. 现在,您将从半图形环境中配置 Kismet。您将使用* Tab Enter *键进行导航。

  4. 如果您看不到灰色字母行,请使用* Tab *键突出显示。否则,保持突出显示。

  5. 按一次* Enter *键。

  6. 按一次* Enter *键以确认 Kismet 正在以 root 身份运行。

  7. 按一次* Enter *键自动启动 Kismet 服务器。

  8. 按一次* Enter *键以验证您要启动 Kismet 服务器。

  9. 按一次* Enter *键以验证您可以添加捕获源:

  10. 根据使用ifconfig发现的无线接口的名称进行输入。如果您记不得,可以打开另一个控制台窗口,并再次运行ifconfig命令以确定正确的接口(通常以wlan开头的名称)。以下屏幕截图显示了接口输入屏幕:

Kismet 界面配置

以下是要遵循的 Kismet 界面配置步骤

    1. 按一次* Tab *键。
  1. 在名称字段中输入无线接口的名称。

  2. 按一次* Tab *键。

  3. 再次按* Tab *键。

  4. 按一次* Enter *键。

  5. 如果您输入名称正确,Kismet 应该能够识别命名的无线接口。它还将生成不需要的虚拟接口的名称,例如wlan0monwlan0monmonwmaster0

  6. 当在 shell(Kismet 窗口)的右下角显示关闭控制台窗口时,按一次键盘的* Tab *键以突出显示关闭控制台窗口

  7. 按一次* Enter *键。

  8. 无线接入点的列表将显示在 shell(Kismet 窗口)的左上方。

  9. 单击下拉菜单中的查看

  10. 单击监视活动。

一旦您到达这一点,您会注意到设备将开始填充窗口。您将看到与每个设备相关的名称、信道、无线标准和其他信息。如果您等待足够长的时间,您会注意到会出现其他设备,并且列出的其他项目可能会有更多的信息填充,这些信息以前可能不存在。

在查看 Kismet 窗口中显示的网络列表时,可能会看到一些看起来有些不同的条目。例如,请查看以下屏幕截图:

主 Kismet 窗口显示检测到的无线客户端。

如果您查看窗口中的项目,您会注意到有一个探测网络的条目。您可以移动到列表中的此项目上,并使用* + - *来打开或关闭选择。您会注意到,当您展开项目时,您会看到会显示一系列项目。此列表记录了来自附近系统的探测请求。这些探测是由无线启用的系统发送的,该系统试图连接到它过去连接过的网络。仔细分析出现在探测请求下的网络名称可以揭示系统连接到的不同接入点的名称,并让您了解系统可能是如何或在哪里使用的。请记住,只要设备未与无线网络关联,许多操作系统都会发送这些探测请求。

还有其他软件包可以用来执行 Kismet 正在执行的相同操作;但是,Kismet 具有高度可定制和被动的优势。被动意味着软件不会向周围的无线接入点发送任何信息,而是监听与接入点相关的连接和流量,以揭示其存在并确定其名称。此外,该软件包还具有检测隐藏接入点的能力,而其他类似的软件包可能无法做到这一点。

映射接入点并提高准确性

战车驾驶的下一步是增强您收集的数据,包括有关接入点或设备本身的位置或地理数据。在现代,通过使用全球定位系统(GPS)技术来收集这些数据已经变得非常容易。现代 GPS 设备可以连接到笔记本电脑或笔记本电脑等系统,使用蓝牙、USB 甚至在某些情况下使用串行连接。如果您打算使用平板电脑或智能手机等移动设备进行战车驾驶,那么您的设备很可能已经包含了内置的 GPS,可以用来映射接入点。

如果您要使用外部 GPS 设备,重要的是要注意并非所有这些设备都是平等的。一些设备能够在开机后很短的时间内获取卫星定位和位置,而其他设备可能需要长达两分钟甚至更长的时间才能在冷启动后获取卫星定位。影响 GPS 数据质量和准确性的另一个因素是 GPS 设备更新其位置的频率;一些设备可能更频繁地更新其坐标,而其他设备可能更新得不那么频繁,可能会影响坐标的准确性。

实际上,所有 GPS 设备都可以用于进行战车驾驶。唯一的要求是这些 GPS 设备能够向请求系统或软件提供当前和相当准确的 GPS 数据。

准备工作

要开始工作,您需要准备以下物品:

  • 能够进入监视模式的无线网卡

  • 已安装 Kismet 的 Kali Linux(默认 Kali 安装的一部分)

  • 蓝牙或 USB GPS 设备

这里列出的项目是基本要求,如果需要,您可以轻松地使用更多(或不同)的组件。例如,如果您想要增强范围,可以使用一个带有外部天线连接的基于 USB 的无线网卡,这样可以获得更好的接收。您也可以使用不同的无线应用程序来完成此任务,而不是 Kismet;但是,由于 Kismet 非常受欢迎,我们将在本教程中使用它。

操作步骤...

为了让 Kismet 访问 GPS 数据,我们需要先进行一些设置。这是通过使用 GPSD 来完成的。GPSD 实用程序用于从 GPS 返回信息,然后我们将在 Kismet 中使用这些信息:

能够与 Kismet 一起使用的 USB GPS 设备

  1. 首先,要使用gpsd,您很可能需要安装它,因为它通常不作为 Kali 的安装过程的一部分。为了安装这个服务,我们只需使用以下命令:
        apt-get install gpsd

  1. 然后,我们需要安装第二个称为gpsd-clients的软件包,以帮助检索 GPS 数据的过程。我们通过发出以下命令来安装这个软件包:
        apt-get install gpsd-clients

  1. 安装完成后,现在应该连接您的 GPS 硬件。我们可以通过发出以下命令来验证 GPS dongle 是否存在:
        lsusb

  1. 然后,验证您的无线适配器是否存在,并获取接口名称:
    ifconfig

  1. 接下来,确保您的 GPS 适配器显示在/dev/目录中。要做到这一点,使用以下命令:
        ls /dev/gps*

上述命令显示在以下屏幕截图中:

列出 GPS 设备的结果

  1. 这也应该帮助你识别名称。一旦你在/dev/中确定了路径,将其作为参数传递给gpsd
    gpsd /dev/gps[x]

  1. 一旦你确定了gps的名称并成功地将其传递给gpsd进程,现在是时候转到 Kismet,看看它是否检测到 GPS。为此,你将像之前一样启动 Kismet。

  2. 进入 Kismet 后,使用反引号/重音符号按钮(`)来访问顶部的 Kismet 菜单。向右滚动至Windows 菜单,然后选择 GPS Details:

GPS 详细信息窗口

  1. 假设您的 GPS 信号良好,您应该会看到一个窗口,显示类似于以下屏幕截图的内容:

在 Kismet 中接收到 GPS 信号。

请记住,如果您没有从多个卫星接收信号,则将无法获得可靠的位置信息。如果您无法从多个卫星接收到良好的信号,则应尝试移动到不同的位置,并等待几分钟,以查看是否可以重新获取信号。

  1. 我们的下一步是将 Kismet 会话期间创建的 .netxml 文件转换为 csv 格式。为此,我们将使用一个名为 giskismet 的应用程序,该应用程序将允许我们将 netxml 转换为我们预期的 csv 格式。在我们做任何事情之前,我们需要安装 giskismet;为此,我们执行以下步骤:

1. apt-get update

2. apt-get install giskismet

3. 按下 Enter


giskismet ­-x Kismet-DATE.netxml ­-q "select *

from  wireless" ­-o wardrive.kml

一旦您将 Kismet 配置为使用 GPS 确定无线访问点和客户端的位置,您还可以使用它来检测不受您控制但连接到您的网络的流氓访问点。为此,您需要知道已批准连接到您网络的访问点,然后使用 Kismet 对该区域进行调查,并找到那些您不认识但可能连接到您网络的访问点。

通过从原始数据创建的 KML 文件,我们现在可以做真正酷的部分,并将这些数据导入到 Google Earth 中:

  1. 使用浏览器打开 Google Earth。

  2. 在左侧,点击我的地点。

  3. 点击导入 KML 文件。

  4. 选择要上传的文件的位置。

  5. 选择并打开 KML 文件。Google Earth 中将打开列表的预览。

  6. 要将这些地点保存在您的列表中,请点击保存。

  7. 位置将保存到我的地点。

  8. 以下屏幕截图显示了在 Google Earth 中显示的来自 KML 文件的信息。

将 KML 数据合并到 Google Earth 中。

创建流氓访问点

在无线网络上妥协或规避访问控制的另一种有效方法是创建所谓的流氓访问点。流氓访问点简单地说就是在网络上安装了一个无线访问点,而没有得到网络所有者或管理员的明确许可或授权。在实践中,一个流氓访问点可以由一个出于善意的员工,甚至是一个不满的员工或入侵者来放置。

访问点可以是软访问点或某种形式的硬访问点中的一种。

软件访问点是通过软件创建的访问点,例如我们在 Kali 中拥有的类型以及其他第三方应用程序。甚至可以说,智能手机上的软件通过 Wi-Fi 连接共享手机的互联网访问,从而将智能手机本身变成了软访问点。

硬件访问点更为直接,因为它采取的是可以在计算机店或大型零售商店购买的硬件设备形式。事实上,当人们想要设置自己的无线网络时,大多数人会想到的就是这种访问点类型。这些访问点来自许多不同的供应商,但它们通常提供类似的功能,并由每个单独供应商添加各种增强功能。

准备工作

要开始工作,你需要先准备好以下物品:

  • 一个能够进入监听模式的无线网卡

  • 安装了 Kismet 的 Kali Linux(默认 Kali 安装的一部分)

这里列出的项目是基本要求,如果需要,你可以很容易地使用更多(或不同)的组件。例如,如果你想要增强范围,可以使用带有外部天线连接的 USB 无线网卡,这样可以获得更好的接收效果。

如何做...

为了配置一个恶意访问点,我们需要执行几个步骤。所有这些步骤的目标是配置系统上的无线适配器模仿访问点,并使用第二个适配器(最好是有线的)连接到互联网。最终结果是适配器模仿访问点拦截的流量将指向有线适配器和互联网,并通过无线适配器将响应发送回请求客户端。

首先,让我们配置一个适配器连接到互联网:

  1. 打开一个终端窗口,并运行ifconfig命令,如第一章Kali Linux 和无线网络中所述。

  2. 确定你希望用来连接到互联网的有线或无线适配器以及你将用作访问点的适配器。

  3. 注意适配器名称(通常wlan表示无线,eth表示有线)以备参考,并跟踪哪个适配器是哪个。你需要确定哪个适配器将连接到互联网,哪个将成为访问点。

  4. 你可以使用 Kali GUI 将一个适配器连接到互联网(在这个例子中,我们将这个适配器命名为eth0)。

我们进程的下一部分是启动无线适配器并配置为访问点的网关。我们可以通过以下步骤完成这一点。在这个例子中,我们假设接口名称为wlan0

  1. 使用ifconfig命令配置wlan0的网关,执行以下命令(在这个例子中,我们将网关设置为10.0.0.1/24,但它可以设置为任何有效的网关,只要它不与现有地址范围或网关发生冲突):

Ifconfig wlan0 10.0.0.1/24 up

  1. 一旦我们将wlan0配置为我们的网关,我们现在想要配置 DHCP 和 DNS 来分配 IP 地址并为我们的客户端执行名称解析。通过配置我们的伪造接入点来为请求的客户端分配 IP 地址,现在可以为他们提供网关和 DNS 服务器的地址。当我们希望执行中间人和嗅探攻击时,DNS 部分变得非常重要,因为它允许我们拦截名称查询并根据我们的需要重定向它们。

  2. 我们在这个过程中的步骤是配置和执行dnsmasq。这个实用程序将允许我们执行 DHCP 和 DNS 的两个角色。

  3. 我们首先创建一个名为dnsmasq.conf的文件,它告诉dnsmasq应用程序如何工作。要做到这一点,您需要打开一个文本编辑器,如gedit或任何创建简单文本文件的工具。在这个文件中,您将输入如下信息:


interface=wlan0

dhcp-range=10.0.0.10,10.0.0.250,12h

dhcp-option=3,10.0.0.1

dhcp-option=6,10.0.0.1

server=8.8.8.8

  1. 完成后,将此信息保存到名为dnsmasq.conf的文件中。

您刚刚创建的此文件的作用如下:

  • Interface:这指定要监听请求并分配地址的接口。

  • Dhcp-range:这提供了dhcp范围以及租赁 IP 地址的小时数。

  • Dhcp-option:这些是dhcp服务器。

  • Server:这是您将要转发查询的 DNS 服务器的地址。请记住,只要有此文件存在,我们正在配置的访问点将转发所有请求到8.8.8.8进行解析(在本例中,该地址指向谷歌的一个免费 DNS 服务器)。如果我们不做任何其他操作,这个系统将只像任何其他访问点一样工作,不会有任何特殊的行为。

如果我们希望拦截请求,我们需要创建一个额外的文件,称为fakehosts.conf,它允许我们告诉dnsmasq我们想要拦截哪些查询:

  1. 我们首先创建一个名为fakehosts.conf的文件,它告诉dnsmasq应用程序哪些请求将被拦截。

  2. 要做到这一点,您需要打开一个文本编辑器,如 gedit 或任何创建简单文本文件的工具,就像我们之前做的那样。在这个文件中,您将输入如下信息:


10.0.0.9 usatoday.com

10.0.0.9 zelda.com

将此文件保存为 fakehosts.conf

  1. 这将导致dnsmasq DNS 服务器对这两个地址的任何请求都响应10.0.0.9。在实际的攻击场景中,我们将放入我们控制的服务器的 IP 地址,这样当受害者访问它时,他们将提供信息或被恶意软件感染,或者我们希望的其他内容。

  2. 我们需要启动dnsmasq,如下所示:


dnsmasq -C dnsmasq.conf -H fakehosts.conf

  1. 这告诉dnsmasq使用dnsmasq.conf-C)进行配置,并在fakehosts.conf中引用关于伪造主机的信息。

  2. 配置和成功启动dnsmasq(意味着没有返回错误)之后,我们现在可以启动接入点本身。这意味着我们将启动一个服务,使我们的无线适配器能够将自己宣传为一个愿意连接的任何人的接入点。为此,我们需要运行一个名为hostapd的程序。

  3. 为了运行hostapd,我们首先需要安装它;这可以通过运行以下命令完成:


apt-get install hostapd

  1. 接下来,与dnsmasq类似,我们需要创建一个conf文件,告诉hostapd.conf如何运行;我们通过执行以下步骤来完成这些操作:

    1. 打开文本编辑器。

    2. 在文件中输入以下内容:


interface=wlan0

driver=nl80211

ssid=freewifi

channel=1

    1. 将文件保存为hostapd.conf

    2. 此文件为我们提供了重要的配置信息;以下是每行提供的含义:

      • 接口:这是要侦听的接口名称。

      • 驱动程序:这是要使用的驱动程序的名称。在这种情况下,我使用了nl80211,它适用于广泛范围的无线适配器,但如果这个驱动程序对您的设备不起作用,您可能需要研究适用于您设备的驱动程序。

      • Ssid:这将是要广告的网络的名称。

      • 频道:这是用于广播无线信号的频道。此值可以设置为您无线环境中的任何值频道。

  1. 接下来,我们需要启动接入点;我们通过执行以下命令来完成此操作:


hostapd ./hostapd.conf

  1. 这将启动接入点。可能会看到关于更新失败的错误消息,但这是正常的,并且通常没有什么不良影响。

  2. 接下来,我们需要进行一些路由,将来自wlan0eth0的流量转发,基本上创建一个非常简单的 NAT 设置。为此,请发出以下命令:


sysctl -w net.ipv4.ip_forward=1

iptables -P FORWARD ACCEPT

iptables --table nat -A POSTROUTING -o

wlan0 -j MASQUERADE

此时,您现在应该可以连接到免费的 Wi-Fi,获取 IP 地址,并开始使用互联网。

一旦您运行了恶意接入点,您有很多选项可以利用它给那些连接到它的人带来烦恼。例如,在接入点上运行像 Wireshark 这样的数据包嗅探器,将允许您捕获通过接入点移动的流量。这意味着连接到接入点的受害者可能会暴露重要数据,例如登录凭据,如果它们没有受到其他保护。

通过 MAC 欺骗规避 MAC 过滤

在您的探索过程中,可能会采用一种技术对抗您,以阻止您的一种技术被称为 MAC 过滤。简而言之,MAC 过滤是一种反制措施,涉及列入白名单批准接入您网络的设备的 MAC 地址,或列入黑名单您不想在网络上使用的设备。虽然这种技术极为罕见,并且通常只出现在最小的网络中,但作为一种经常被推荐的安全机制,它仍经常出现。在这里,我们将探讨如何规避 MAC 过滤并无论如何访问网络。

在大多数消费者和商用级接入点中,很容易找到 MAC 过滤选项。通常,这个选项被称为 MAC 过滤,或者可能在访问控制的一组设置中,甚至可能在一些接入点中被标记为已批准或已阻止的设备。不管它叫什么名字,它的功能都是相同的,即无线网络的管理员将选择收集他们控制的无线设备的所有 MAC 地址,并手动输入到接入点中,从而将它们列入白名单。另一方面,管理员还可以选择使用黑名单,他们将检测到连接到无线网络的或正试图连接到无线网络的恶意设备,并手动输入它们的 MAC 地址进行阻止。在任何一种情况下,这个过程可能会相当乏味和耗时,随着网络规模的增加以及对无线网络进行的更多更改,情况将变得更加如此。

正如你从本节的名称中可能猜到的那样,有一种方法可以逃避 MAC 过滤,那就是通过一种非常简单而有效的技术,即 MAC 欺骗:

无线路由器上的 MAC 过滤选项

MAC 地址欺骗是一种改变网络适配器所报告的 MAC 地址的技术。作为简单回顾,您应该记得 MAC 地址,有时称为物理地址,是分配给每个网络适配器的十六进制值,该值在制造时被分配。部分原因是设计,部分原因是行业标准,这些地址被设计为唯一的,所以没有两个网络适配器应该具有相同的 MAC 地址。正是因为这个原因,MAC 过滤能够起到作用。然而,通过使用 MAC 地址欺骗,我们可以更改报告的地址,从而放入我们想要从网络适配器中报告的任何地址。在实践中,这意味着通过将我们的 MAC 地址更改为我们选择的地址,我们可以通过更改我们的 MAC 地址来逃避黑名单,或者我们可以使用一个已批准设备的 MAC 地址来规避白名单。

那么,让我们看看如何做到这一点。

准备工作

要开始操作,你需要准备以下物品:

  • 一张能够进入监控模式的无线网卡

  • Kali Linux

  • airmon-ng

  • airodump-ng

  • MAC 地址更改器

列出的物品是基本要求,如果需要,您还可以轻松使用更多(或不同的)组件。例如,如果您想要增加信号范围,可以使用一个具有外部天线连接的基于 USB 的无线网卡,该无线网卡可以获得更好的接收。在本篇文章中,我们还将使用 aircrack-ng 套件的两个组件(我们将在本书中更多地了解到)来识别客户端及其 MAC 地址以进行攻击。

如何实现...

接下来是执行攻击的步骤:

  1. 执行这种类型攻击的第一步是将您的 Wi-Fi 适配器切换到监视模式,以便我们可以检测到我们需要的流量和它们的关联 MAC 地址的信息。为此,我们运行以下命令:

airmon-ng start wlan0

  1. 在这种情况下,命令序列告诉 Kali 在 wlan0 接口上启动 airmon-ng 进程。这个应用程序将启动监控模式的接口,这非常重要。基本上,Wi-Fi 中的监控模式允许网卡观察所有无线流量,而无需先关联到任何接入点。

  2. 完成后,我们现在希望查看特定接入点的所有连接的客户端。为此,我们简单地使用以下命令序列:


airodump-ng -i wlan0mon

请注意,我们正在使用的接口的名称是 **wlan0mon** 而不是 **wlan0**。这是因为当我们执行 **airmon-ng** 时,它将网卡切换到监视模式,同时添加了一个新接口 **wlan0mon**。您可以通过简单运行 **ifconfig** 命令查看这些接口名称。

  1. airodump-ng 现在在终端底部显示了所有连接的客户端的列表。第二列列出了连接客户端的 MAC 地址,我们将伪造这些地址以在无线网络上进行身份验证。当然,我们对某些特定内容感兴趣。看一下 airdump-ng 运行中的以下图形:

airodump-ng 正在运行。

  1. 注意接口底部的最后三行。当我们仔细观察时,我们会看到这三行中的第一行显示的是一个未关联到任何接入点的客户端,而接下来的两个条目显示已关联的客户端。要确定一个站点关联的接入点,我们只需要查看条目的第一列,并将底部三行的一个接入点的 MAC 地址与顶部的一个接入点的 MAC 地址匹配。我们甚至可以通过查看与 MAC 对应的网络名称来确定该名称。并不太糟糕。

请注意,您可能会看到多个客户端连接到任何一个接入点,这是完全正常的。只需确保在选择连接到接入点的站点的 MAC 地址时,正确选择了接入点和站点的 MAC 地址,这样您就不必多次重新运行 airodump

  1. 一旦我们选择了一个网络,并注意到了与之关联的站点的 MAC 地址,我们现在想要在我们希望连接到目标的系统上伪装该地址。做到这一点相当简单。

  2. 首先,我们关闭 wlan0mon 接口,以便在下一步中使用无线网卡。为此,我们运行以下命令:


Airmon-ng stop wlan0mon

  1. 现在我们需要关闭我们希望更改 MAC 地址的无线接口。为此,我们运行以下命令:

ifconfig wlan0 down

  1. 现在我们可以使用实用程序macchanger来修改 MAC 地址为之前注意到的那个。为此,请执行以下命令:

macchanger -m [New MAC Address] wlan0

  1. 一旦命令成功完成,我们可以使用ifconfig将接口重新启动:

ifconfig wlan0 up

  1. 现在我们已经将适配器的 MAC 地址更改为新的 MAC 地址,我们可以尝试与网络进行身份验证,看看我们是否能够连接。如果我们能够选择网络并成功连接,那么我们就做对了。如果没有,请再次检查你伪造的 MAC 地址与你从airodump中收集的 MAC 地址是否一致。另外,如果网络正在运行诸如 WEP 或 WPA 之类的保护措施,你将无法连接。不过,别担心;如果你遇到困难,我们将在本书的后面解决这个问题。

识别混杂客户端

在一个安全(或被认为是安全的)网络上放置了一个恶意接入点,现在就有可能发生大量的损害和其他恶作剧。混杂客户端是一个问题,因为这些客户端会发送探测请求,寻找它们可能过去连接过的无线网络。它们参与这个过程的事实使得它们可能会意外地连接到一个网络,并且对安全构成问题。

探测数据包是一种特殊类型的请求,用于连接先前关联的网络接入点。这些数据包由智能手机、笔记本电脑和其他当前未连接到 Wi-Fi 网络的设备发送,用于定位和连接先前关联的网络。当这个探测数据包被发送出去并且客户端先前关联的网络被识别出来时,它们将尝试重新关联,就像它们以前做过的那样。

除了其他配置和技术信息外,大多数设备每 40 到 60 秒发送一次这个请求,这使得使用这些请求来跟踪人员的移动特别有用。我应该指出的是,这些数据包中没有嵌入位置信息。我们只知道如果我们从某个设备接收到了探测请求,它就在监视芯片的一定距离内。

探测请求中嵌入的另一个有趣的信息是 SSID。一个未连接到任何网络的设备将向公众以及特定的接入点发送探测请求:已记住的设备。

例如,当你在家里时,假设你连接到了名为 HOME 的家庭 Wi-Fi 网络。当你没有连接到 HOME 时,一个带有 SSID HOME 的探测请求被广播出去。因此,我们不仅可以知道某个设备距离我们的 Wi-Fi 芯片有一定的距离,我们现在还知道它们设备上记住的网络。这是一个常被批评的漏洞。不过,在我们的情况下,这对于唯一识别某人特别有用。

准备工作

为了开始,你需要准备好以下物品:

  • 一个能够进入监视模式的无线网卡

  • 安装了 Kismet 的 Kali Linux(默认 Kali 安装的一部分)

这里列出的项目是基本要求,如果需要,你可以轻松地使用更多(或不同)的组件。例如,如果你想要增强范围,你可以使用一个带有外部天线连接的基于 USB 的无线网卡,这样可以获得更好的接收效果。你也可以使用其他无线应用程序来完成这个任务;然而,由于 Kismet 非常受欢迎,我们将在这个教程中使用它。

如何做…

Kismet 是一个有效的工具,用于定位和提取无线接入点和设备的有用信息。

只是一个小小的警告:在命令行中发出启动 kismet 的命令之前,您应该确保如果您使用外部 Wi-Fi 适配器,您已经在发出命令之前安装和配置好了它。默认情况下,kismet 应该配置为使用物理系统上存在的无线适配器;但是,如果您选择使用外部适配器,您可能需要执行额外的配置,以便让 kismet 自己识别和配置您的适配器。

在这个教程中,我们将通过命令提示符启动 kismet。但是,它也可以从应用程序菜单的无线攻击部分启动。无论哪种情况,启动 kismet 都会导致这里记录的相同步骤:

  1. 打开一个终端窗口。

  2. 在命令提示符下,输入命令kismet

  3. 现在,您将从半图形环境中配置 Kismet。您将使用TabEnter键进行导航。

  4. 使用Tab键突出显示“否”如果你看不到灰色字母行。否则,保持“是”突出显示。

  5. 再按一次Enter键。

  6. 按一次Enter键以确认 Kismet 正在以 root 身份运行。

  7. 再按一次Enter键以自动启动 Kismet 服务器。

  8. 按一次Enter键以验证你要启动 Kismet 服务器。

  9. 按一次Enter键以验证您可以“添加”一个捕获源。

  10. 输入您使用ifconfig发现的无线接口的名称。如果您不记得,可以打开另一个控制台窗口,再次运行ifconfig命令以确定正确的接口(通常以wlan开头命名)。以下屏幕截图显示了接口输入屏幕:

Kismet 接口配置

以下是 Kismet 接口配置的步骤:

  1. 再按一次Tab键。

  2. 在“名称”字段中输入无线接口的名称。

  3. 按一次Tab键。

  4. 再按一次Tab键。

  5. 再按一次Enter键。

  6. Kismet 应该能够识别已命名的无线接口,如果你输入的名字是正确的话。它还会生成不需要的虚拟接口的名称,比如wlan0monwlan0monmonwmaster0

  7. 当在 shell(Kismet 窗口)的右下角显示“关闭控制台窗口”时,按一次键盘上的Tab键以突出显示“关闭控制台窗口”。

  8. 再按一次Enter键。

  9. 无线接入点的列表将显示在 shell(Kismet 窗口)的左上方。

  10. 单击下拉菜单中的“查看”。

  11. 单击“监视活动”。

与之前一样,如果等待足够长的时间,我们将看到更多的信息填充 Kismet 窗口,包括与探测网络相关的条目。与之前不同的是,我们想看看是否可以以某种方式使用这些信息,我们可以:

kismet 窗口显示检测到的无线客户端。

如果您在探测网络标题下识别出一个吸引您注意的网络,那么您可以使用我们其他食谱中的信息来诱使受害者遭受攻击。我们这样做的方式是创建一个恶意访问点,就像我们在之前的食谱中所做的那样。这一次的不同之处在于,我们将使用我们希望攻击的探测网络的名称来启动恶意访问点。如果一切顺利,客户端最终会连接到我们创建的访问点,然后我们可以开始嗅探流量或执行其他操作。

第三章:攻击完整性控制

在本章中,我们将涵盖以下内容:

  • 在无线网络上嗅探

  • 使用监视模式和数据包注入

  • 执行数据重放

  • 破解 WEP

介绍

在处理任何类型的网络或信息时,需要解决的基本组成部分之一是完整性。数据的完整性是至关重要的,因为信息的接收者需要确信他们接收和依赖的信息忠实于数据的创建者和发送者的意图。如果数据的完整性和信心丧失,那么数据基本上就变得毫无价值。

如果您在安全领域工作了足够长的时间,您无疑会遇到著名的 CIA 三角,它是保密性完整性可用性的简称。简而言之,保密性是指保护信息免受未经授权的访问或披露。可用性是指保持对系统和数据的访问尽可能恒定或接近恒定(通常以正常运行时间来讨论,如 99.999%的正常运行时间)。最后,完整性组件是我们在本章中要讨论的内容。数据的完整性确保信息没有错误、损坏、修改或任何未经授权的第三方所做的事情。

请记住,在处理 CIA 时,提供一个并不意味着你正在解决其他问题。例如,提供完整性控制并不以任何方式意味着信息的保密性,因为这是一种不同类型的控制。事实上,在许多情况下,您可能会为 CIA 的一个方面提供保护,但不会为其他方面提供保护。例如,您可能希望确保您发送的电子邮件可以被所有人阅读,但您可能会对其进行控制,以确保没有人可以更改它,使其看起来像您说了一些您没有说的话。

重要的是要记住,对于任何组织或个人来说,没有魔法子弹或公式来规定这三个组件的完美平衡。您将需要进行风险评估或评估,以确定根据您独特的威胁和漏洞在您的情况下的平衡。

要破坏数据的完整性,攻击者只需找到一种改变或损坏数据的方法,使其受到质疑或无法按原始意图使用。为了执行基于完整性的攻击,恶意方将寻求访问网络(在我们的情况下是无线网络)并影响数据流并以某种方式修改数据。他们如何修改数据将取决于他们的具体目标和意图。

如果恶意方试图使数据变得毫无价值,他们可以重定向它、损坏它,甚至阻止它到达预定目的地。如果恶意方试图以某种方式改变数据以改变过程的结果,他们可能会使用任意数量的旨在改变数据的值或结构以实现其结果的工具。例如,攻击者可能会拦截股票报价并在传递给接收者时更改各种股票的价值,以诱使他们在本来不会买或卖时进行交易。最后,影响网络本身的完整性也可能允许攻击者突破安全性并拦截诸如凭证和其他有价值的信息。

在无线网络中,影响完整性的攻击是广泛而强大的,可以采取多种不同形式,每种形式可以独立使用或结合起来创建更强大的攻击解决方案。无线网络中使用的一些完整性控制机制的例子是:

  • 加密:这是保护机密性和完整性的非常有用的控制或对策。在完整性方面,加密和哈希的数据更难受到破坏,因为它们在没有密钥的情况下是无法解密的,或者(就哈希而言)数据的更改将导致其无效化。

  • 预共享密钥(PSK)系统:这涉及使用在每台工作站或设备上输入的共同密钥,以使其能够对无线接入点进行身份验证。这种保护通常以非企业 WEP、WPA 或 WPA2 的形式出现。

  • 企业认证:这种类型的系统与基于 PSK 的环境工作方式相同,只是密钥管理是通过诸如 RADIUS 等系统进行集中管理的。

这只是可以部署以强制执行完整性的潜在措施的简短清单,然而在无线环境之外还有许多其他可供选择的措施,可以补充或取代上述清单中提到的措施。

一旦获得了网络访问权限并且数据的完整性受到质疑,攻击者可能选择为了任何目的而改变事物。

攻击类型

完整性控制攻击有很多种,当由熟练和有经验的人使用时,所有这些攻击都非常有效。本章介绍的攻击方法代表了一些可以在无线网络及其客户端设备上部署的最有效和最受欢迎的方法。

在我们开始探索每一种攻击之前,让我们首先列出本章将涵盖的攻击类型:

  • 嗅探

  • 数据重播

  • 数据包注入

  • 信标帧的检测

  • 欺骗信标帧

请记住,这些只是可以用来破坏无线网络完整性的攻击类型中的一部分;它们永远不应被视为唯一的攻击类型。

无线网络上的嗅探

嗅探是一种用于观察网络上流量的技术,它从发送者到接收者(在许多情况下还会返回)的过程中进行。嗅探允许您捕获实时流量,并通过使用过滤器进行提炼,或者可以捕获并保存到文件以供以后分析和处理。嗅探是一种获取有关网络和其中设备信息的强大技术,这些信息反过来可以作为后续活动的基础。

请注意,我在本段的第一行中将嗅探称为一种观察网络上流动的流量的技术。这是一个重要的细节,我觉得可能有些微妙,需要相应地指出。嗅探本身绝不应被视为用于执行攻击的东西,否则我们会陷入认为这是它的唯一用途的思维定势。事实上,嗅探是一种每天都用于完全善意和有益的方式的技术。网络管理员使用嗅探器来诊断网络问题,优化性能,以及进行许多其他有益的用途。

在本章中,我们只是利用嗅探的能力来捕获网络中的信息,然后根据我们发现的内容采取行动。使用这个工具的善意或恶意取决于我们发现的结果的意图。

嗅探是如何工作的?

嗅探通过利用或改变某些条件来实现。嗅探的目标是观察系统执行嗅探时所经过的流量,但在正常操作条件下,任何系统只能看到直接发送给它或来自它的信息。这是有道理的,因为一个必须处理所有流过的信息的系统将因效率低下和性能差而陷入困境 - 更不用说它也会是一个安全风险。

为了查看流经的所有流量,网络适配器需要切换到所谓的混杂模式。要理解混杂模式,首先要了解在正常情况下,网络适配器不会在这种条件下运行。在实践中,运行在非混杂模式下的适配器将过滤掉所有不是针对它的流量,并且只处理那些寄给它的流量。然而,当一个网络适配器切换到混杂模式时,情况就会改变。在混杂模式下,适配器将不再过滤掉不是针对它的流量,并且允许系统上安装的软件(用于处理这些信息)查看所有流量。下图显示了一个处于混杂模式的适配器放置在一个网络上。

进行嗅探的系统设置

在现代网络环境中,几乎每个网络适配器都可以切换到混杂模式,只需要相应的指示即可。然而,在大多数情况下,切换到这种模式对于正常操作来说是完全不必要的,因为设备只需要看到针对它的信息。正是因为这个原因,使用设计用于检测系统中使用此模式的方法是有效的,可以定位可能正在运行未经授权的嗅探活动的系统。请记住,适配器处于混杂模式本身并不是警报的原因,因为网络适配器可能以这种模式运行的合法原因。一个主要的例子是网络入侵检测系统NIDS),它们旨在检测并向网络管理员报告可疑的流量或活动的存在。由于它们的本质,这些系统必须以混杂模式运行,以便观察所有流量。

在无线网络中,我们没有混杂模式,但是我们有一些我们在第二章中提到的东西,即监视模式。监视模式具有一些与混杂模式不同的特性。首先,切换到监视模式的适配器可以观察无线网络上传输的数据,而无需首先与其关联。其次,监视模式在大多数情况下阻止适配器传输数据。第三,一个适配器可能被限制在一次只监听一个信道,但这取决于所涉及的设备和驱动程序。

另外需要注意的是:许多包括在智能手机、平板电脑和类似设备中的网络适配器不支持混杂模式,因此必须使用外部适配器才能具备这种能力。

为了观察网络上的所有流量,一旦我们处于混杂模式,我们必须首先能够看到流量。换句话说,如果你不在同一个房间里,就不能窃听对话(不包括窃听设备和 NSA 设备)。在网络中,这意味着你必须在同一个冲突域中。

在传统有线网络中,所有设备都通过集线器连接,它们实际上都在同一个冲突域中。想想集线器的工作方式:发送到集线器上的一个端口的流量会自动发送到集线器上的所有端口。由于任何站点都可以随时发送,碰撞可能会发生,这导致了所谓的冲突域。当存在这种类型的情况时,很容易监听网络上的流量,因为每个站点共享相同的逻辑传输区域。基本上,当观察者和受害者存在,以便彼此看到对方的行动时,嗅探是有效的。

请注意,在现代网络上,使用集线器是不受欢迎的,原因有很多,包括我们在这里讨论的嗅探。在现代网络中,交换机已经完全取代了集线器,以避免这种风险,同时优化网络性能和简化管理。

基本上,对于无线网络来说存在着与之类似的情况,其他设置好的方派可以观察到流量。

要知道,传统有线网络在设计上使用了一种称为CSMA/CD的基于冲突的技术,它是载波监听多路访问 冲突检测的缩写。这在实践中意味着,如果两个或更多站点同时传输,它们将引起冲突(可以将其想象为两个人同时说话)。这项技术将检测到冲突,并通过强制两个站点等待随机一段时间来重新传输,并希望避免另一个冲突。冲突是许多网络的正常部分,直到冲突变得过多,这种情况下,网络可以被分割以减少冲突的数量到一个更好的水平。

在无线网络中,使用一种称为CSMA/CA载波监听多路访问 冲突避免的技术。你可能会猜到,这个过程不是检测冲突,而是完全避免冲突。在实践中,这意味着一个站点将检查是否有人在传输,如果没有,它将发送一个信号表示它准备好传输,以防止其他站点发送数据。在这一点上,设备将传输并在传输完成时发出信号,以释放网络。

一些有线网络确实使用 CSMA/CA,但这并不是非常常见的。

进行成功的嗅探的下一个组成部分是以网络嗅探器的形式拥有软件。在 Kali Linux 中,我们有许多旨在做到这一点的工具;其中一些最受欢迎的工具如下:

  • Dsniff:这是一套围绕嗅探主题的工具,每个工具都设计用于非常有效地执行特定类型的嗅探。许多工具都围绕特定的协议或目的而设计。

  • Tcpdump:这是 Linux 中最常用的网络嗅探器/分析器之一。Tcpdump 是一个命令行工具,非常适合显示头部信息。Tcpdump 可以在www.tcpdump.org上找到。

  • EtherApe:这是一个 Linux/UNIX 工具,旨在以图形方式显示系统传入和传出的连接,以更好地可视化网络活动。

  • Wireshark:最广为人知和使用的数据包嗅探器之一。提供了大量功能,都旨在帮助解剖和分析流量。

  • Kismet:我们在第二章中见过这个实用程序,攻击访问控制,当时我们进行了战争驾驶。这个实用程序有很多功能,包括数据包嗅探器。

嗅探器是用于捕获和扫描网络上移动流量的实用程序。你会发现嗅探器是你攻击工具中非常有价值的一部分,但它们为什么如此强大呢?使用嗅探器的最大原因之一是捕获和解剖未加密的网络流量,至少在我们的情况下是这样。

嗅探器的成功程度取决于某些网络协议的相对和固有的不安全性。诸如经过验证的 TCP/IP 协议从未考虑过安全性,因此在这方面提供的保护不多。有几种协议容易被嗅探:

  • Telnet/RLOGIN:容易被嗅探的包括用户名和密码在内的按键输入

  • HTTP:旨在以明文发送信息而没有任何保护,因此是嗅探的一个好目标

  • 简单邮件传输协议SMTP):在电子邮件传输中常用的协议,它是高效的,但不包括任何防止嗅探的保护

  • 网络新闻传输协议NNTP):所有通信,包括密码和数据,都是以明文发送的

  • 邮政办公室协议POP):设计用于从服务器检索电子邮件,该协议不包括防止嗅探的保护,因为密码和用户名可以被拦截

  • 文件传输协议FTP):设计用于发送和接收文件的协议;所有传输都是以明文发送的

  • 互联网消息访问协议IMAP):在功能和缺乏保护方面类似于 SMTP

这里列出的所有协议都以明文形式传输它们的信息,包括密码、用户名、按键和数据。

准备工作

要开始,您需要准备好以下物品:

  • 能够进入混杂模式的无线网卡

  • 已安装 Wireshark 的 Kali Linux

Wireshark 应该作为 Kali Linux 的默认安装的一部分安装,就像以前一样。您不应该安装这个软件包,而是应该能够在 Kali 的应用程序菜单下的嗅探菜单中选择它。

如何做...

您可能想养成将嗅探活动保存为 PCAP 文件的习惯。这些文件受许多不同的嗅探工具(以及其他应用程序)支持,以支持保存捕获的网络活动以供以后或进一步分析。由于网络条件可能会变化(有时会发生剧烈变化),您正在观察的情况可能是独特的,您可能希望保存文件以供以后参考和审查。

  1. 启动 Wireshark。

  2. 从以下屏幕中选择您希望进行嗅探的接口。

选择嗅探接口屏幕

  1. 或者,您可以使用捕获接口并选中与您的无线适配器匹配的接口。

  2. 在这里按下开始按钮,Wireshark 将开始捕获流量。开始按钮看起来像鲨鱼鳍。

在这一点上,你应该开始观察在主 Wireshark 窗口中捕获的流量。在这里我们正在观察的级别上,嗅探无线流量和有线流量实际上没有区别。然而,有一些事情你可以做,以进一步嗅探无线,我们将在接下来进行探讨。

使用监视模式和数据包注入

我们要介绍到嗅探过程中的下一个项目是一种称为监视模式的模式。监视模式是一种特殊类型的操作,专门限制在无线适配器上。这种模式用于允许无线适配器查看它当前没有关联的无线网络上的流量。这种模式允许我们使用嗅探器在区域内捕获任何无线网络的流量而不受限制。

大多数现代无线适配器都支持监视模式,但并非普遍支持。在 Linux 上,大多数无线适配器可以通过一些命令行配置切换到监视模式。这与您在 Microsoft Windows 平台上可能遇到的情况不同,那里监视模式通常只能通过使用 AirPcap 等外部适配器来使用。

此外,重要的是要确保不要混淆监视模式和混杂模式,因为它们并不相同。混杂模式在有线和无线网络上都可用,允许查看流经嗅探机器的所有流量,无论是否涉及它们。监视模式专用于无线,允许查看您当前没有关联的无线网络上的流量。它们非常相似,但并不相同。

准备工作

要开始,您需要准备好以下物品:

  • 能够进入监视模式的无线网卡

  • Kali Linux 安装了 Wireshark

如何做...

在这个教程中,我们将把一个网络卡切换到监视模式,以便观察来自非关联接入点的流量。

为了将网络适配器切换到监视模式,我们可以使用ifconfig来识别无线适配器(如果您还不知道它的名称)。如果您知道名称,然后执行以下步骤。

  1. 打开一个终端窗口。

  2. 输入以下命令:

 ifconfig <adapter name> down
  1. Enter键,这将使网络适配器脱机。

  2. 输入以下命令:

 iwconfig <adapter name> mode monitor
  1. Enter键,将网卡切换到监视模式。

  2. 输入以下命令:

 ifconfig <adapter name> up
  1. Enter键,将网络适配器重新联机。

  2. 这些命令将把无线网卡置于监视模式。

  3. 为了利用网卡处于监视模式,我们可以发出以下命令:

 airodump-ng <adapter name> 

将网卡置于监视模式非常重要,因为它允许我们进行后续步骤并成功执行它们。在正常情况下,无线适配器必须与无线接入点关联才能像有线网络上的嗅探器一样查看和观察流量。要执行与接入点不关联的攻击,我们将使用监视模式。监视模式将允许我们查看与无线网络或接入点相关的流量,而实际上并不与它关联。事实上,在本书中我们将多次使用监视模式来执行任务,比如在 web 和 WPA 中恢复密钥,以及其他任务。

启用监视模式的确切过程将因使用的无线网卡和相关驱动程序的不同而有所不同。为了确定您当前使用的驱动程序,您可以简单地运行以下命令。

airmon-ng 

在安装了 Ralink、Atheros 和 Broadcom 无线网卡的机器上,系统的响应如下:

我们将逻辑上使用的下一个工具是一个名为airodump-ng的工具;这个工具使我们能够根据需要捕获数据包。事实上,这个工具非常重要,我们以后在对无线网络执行密码和密钥破解时将使用它。

我们通过输入airodump-ng命令和重命名的监视接口(mon0)来激活这个工具,如下所示:

airodump-ng mon0 

airodump-ng命令显示了范围内所有接入点的 BSSID(MAC 地址)、它们的功率、信标帧的数量、数据包的数量、信道、速度、加密方法、使用的密码类型、使用的认证方法和 ESSID。

执行数据重放

现在让我们通过执行一个称为重放或数据重放的后续攻击来提高攻击强度。顾名思义,从网络中捕获的信息被存储,然后播放回被定向的网络设备。然而,如果收集到了正确的信息并且在防御方面几乎没有采取保护措施,这种攻击可能会更加危险。

在受害者登录过程中捕获的登录凭据等信息可以简单地在服务器或其他资源上重放并获得访问权限。在使用未加密协议的环境中,这将非常有效。

在这个教程中,我们将使用地址解析协议ARP)执行重放攻击,但这种攻击可以修改以执行其他协议和操作。然而,在我们深入讨论之前,让我们先谈一谈 ARP 和我们正在做的事情。

ARP 在网络上用于多种目的,但最常见的用途与在网络上定位系统有关。该协议在开放系统互连OSI)模型的第 2 层和第 3 层上运行。在实践中,第 2 层是交换机所在和功能的级别,也是 MAC 地址定义的地方。MAC 地址是一种 ID,通常由制造商分配,并且可以通过软件设置(特别是ifconfig实用程序)进行更改。

在子网上,IP 地址不是用于识别希望通信的机器的主要机制;这是 MAC 地址的功能。

如果我们考虑单个子网,并且考虑在该子网上尝试通信的两个主机,那么现在将使用 MAC 地址而不是 IP 地址。只有在需要在不同的子网或网络之间路由流量的情况下才会使用 IP 地址。在本地子网上,MAC 是将流量从一点传输到另一点的主要机制。

在正常操作下,系统将保留 ARP 查找表或缓存,其中存储有关哪些 IP 地址与哪些 MAC 地址相关联的信息。当尝试发送数据(例如数据包)到子网上的另一个主机时,发送方将查看其目的 IP 地址,一旦发现其位于相同的子网上,就会发送 ARP 广播。此广播将在子网上发送出去,并且实质上将询问该子网上的其他客户端谁拥有特定的 IP 地址,并要求该主机返回其 MAC 地址。

值得注意的是,如果主机先前已经在同一子网上与另一个主机通信过,那么 IP 地址和 MAC 地址的关联将已经存储在本地系统的缓存中,这也称为 ARP 表。

准备就绪

要开始,您需要准备以下物品:

  • 能够进入监视模式的无线网卡

  • Kali Linux

这里列出的物品是基本要求,如果需要,您可以轻松使用更多(或不同)组件。例如,如果您想要增强范围,可以使用具有连接到外部天线的 USB 无线网卡,以获得更好的接收。您还可以使用不同的无线应用程序来完成此任务,但是由于 Kismet 非常受欢迎,因此我们将在本文中使用它。

在本文中,我们将使用aircrack-ng套件中的一组工具,该套件本身包括我们将在其他章节中遇到的许多不同的工具。我们将使用的工具包括:

  • airodump-ng:这用于嗅探网络上流动的流量。

  • aireplay-ng:用于生成流量以破解共享密钥或引起去认证情况,稍后我们将看到。有一些选项可以引起去认证,以捕获 WPA 握手数据,伪造认证,交互式数据包重放,手工 ARP 请求注入和 ARP 请求重注入。

操作步骤...

首先,打开一个控制台使用airodump-ng开始嗅探流量。aireplay-ngairodump-ng将同时运行,但在不同的控制台中。

要启动airodump,请使用以下命令:

airodump-ng <wireless interface name)

Enter,可能需要一些时间,但等待目标网络出现在列表中;以下是示例:

请注意第一列中显示的 MAC 地址。

一旦您的目标出现,您可以开始aireplay。在第二个控制台中,输入以下内容:

aireplay-ng --arpreplay -b <target BSSID> -h <MAC address of connected client> <interface name> 

-b指定目标 BSSID,-h指定连接的客户端的 MAC。

  1. 现在您必须等待 ARP 数据包到达。通常您需要等待几分钟。一旦成功,您将看到类似以下内容:
 Saving ARP requests in replay_arp-1001.cap 
  1. 您还必须启动airodump来捕获回复:
 Read 2493 packets (got 1 ARP requests), sent 1305 packets...
  1. 下一步是重用保存在文件中的捕获的 ARP 数据包。您会注意到它说 ARP 请求被保存在replay_arp-1001.cap中。因此,我们不必等待新的 ARP,只需使用-r参数重用旧的 ARP:
 aireplay-ng -2 -r replay_arp-1001.cap ath0                        
  1. 系统的响应是:
 Size: 86, FromDS: 0, ToDS: 1 (WEP) 

           BSSID  =  00:14:6C:7E:40:80 
       Dest. MAC  =  FF:FF:FF:FF:FF:FF 
      Source MAC  =  00:0F:B5:88:AC:82 

      0x0000:  0841 0000 0014 6c7e 4080 000f b588 ac82  .A....l~@....... 
      0x0010:  ffff ffff ffff 7092 e627 0000 7238 937c  ......p..'..r8.| 
      0x0020:  8011 36c6 2b2c a79b 08f8 0c7e f436 14f7  ..6.+,.....~.6.. 
      0x0030:  8078 a08e 207c 17c6 43e3 fe8f 1a46 4981  .x.. |..C....FI. 
      0x0040:  947c 1930 742a c85f 2699 dabe 1368 df39  .|.0t*._&....h.9 
      0x0050:  ca97 0d9e 4731                           ....G1 

      Use this packet ? y 
      You say "y" and then your system will start injecting: 

      Saving chosen packet in replay_src-0219-123117.cap 
      You should also start airodump-ng to capture replies. 

      Sent 3181 packets... 

破解 WEP

无线网络与其他网络的一个独特特点当然是它们不使用传统媒体,而是使用无线电波将信息从一个点传输到另一个点。这就是使得这些网络如此吸引人和受欢迎的原因,一个人可以在无线网络的范围内随时随地携带设备,并且无需担心电缆等,仍然可以保持访问。然而,这种优势是有代价的,即无线电信号是不加区分的,任何能够接收它们的人也能够处理它们携带的信息。

幸运的是,无线网络的设计者将这视为一个问题,并决定在 IEEE 802.11b 网络设计的初始规范中构建有线等效隐私WEP)的保护措施。在发布时,WEP 被视为一个很好的功能,但不久之后问题就出现了,随后不断恶化。

WEP 是可用加密协议中最古老且可能是最薄弱的。WEP 标准最初被引入作为无线安全的初始解决方案,但很快就发现存在缺陷和高度脆弱。

WPA,或 Wi-Fi 保护访问,是 WEP 的继任者,旨在解决困扰 WEP 的许多问题。在许多方面它取得了成功,并成为了一个更加严格的安全协议。WPA 使用 TKIP、MIC 和 AES 加密作为其保护信息的主要机制。

WPA2 是 WPA 的升级或继任者,旨在解决和取代 WPA 的问题。WPA2 更加强大,使用更严格的 AES 和 CCMP 加密。该标准还有一个版本,使用更强大的系统,如 EAP、TKIP 和 AES(带有更长的密钥)。

然而,在讨论问题之前,让我们看看 WEP 应该如何工作,然后再看看如何利用它的问题。

WEP 是无线加密协议中最古老的,最初引入并集成到 802.11b 标准中时,它被视为一种提供数据传输安全性的方式,与有线网络的安全性差不多。按设计,WEP 协议利用了一些现有技术,包括 RC4 加密协议。

设计和推出时,它的目的是实现以下目标:

  • 防止窃听通信并尝试减少未经授权的数据披露

  • 检查数据在网络中传输时的完整性

  • 使用共享的秘密密钥对数据包进行加密,然后再传输

  • 在轻量、高效的系统中提供机密性、访问控制和完整性

它的问题源于以下情况:

  • 该协议设计时没有经验丰富的密码学家、学术界或公众的审查。

  • 它没有明确定义的密钥分发方法(如集中式密钥管理),除了预共享密钥,必须手动输入到每个站点。因此,密钥在大规模上很难更改;因此,很少更改。

  • 它的设计使得可以通过嗅探工具和操作系统中免费提供的破解工具 passively uncover the key。

  • 不同供应商使用的密钥生成器设计不一致且设计不良,导致存在 40 位密钥使用问题等漏洞。

  • 用于执行密钥调度的算法已被证明容易受到攻击。

  • 完整性检查中使用的 CRC32 存在缺陷,稍加修改即可使攻击者一致地修改数据包以产生他们期望的结果。

  • 初始化向量IVs)只有 24 位长度,这意味着一个轻度活跃的网络可以在五个小时或更短的时间内耗尽整个 IV 池。

  • 它容易受到已知明文攻击,通过分析数据包。

  • 可以通过分析数据包来发现密钥,从而创建解密表。

  • 它容易受到拒绝服务攻击,通过使用未经 WEP 认证的关联和取消关联消息。

准备就绪

要开始,您需要准备好以下物品:

  • 能够进入监视模式的无线网卡

  • Kali Linux

这里列出的项目是基本要求,如果需要,您可以轻松地使用更多(或不同的)组件。例如,如果您想要增强范围,您可以使用一个带有外部天线连接的基于 USB 的无线网卡,这样可以获得更好的接收效果。

如何做...

为了破解运行该协议的接入点的 WEP 密钥,需要进行一个过程,其中需要收集所谓的初始化向量IVs)。这个过程的问题在于,在正常情况下,网络在短时间内不会生成大量这些项目。在正常情况下,这意味着我们需要等待很长一段时间才能获得足够的 IVs 来检索网络密钥。然而,我们可以利用我们之前的配方的信息以及一些新的技能来加快这个过程,以检索密钥。简而言之,我们将向网络注入数据包,以便让 AP 在更短的时间内生成大量数据包,这意味着捕获具有弱 IVs 的数据包的能力增加了。

完成这个过程后,我们可以使用捕获的流量来检索密钥。

简而言之,在这个配方中,我们将要看到的步骤如下:

  1. 在特定的 AP 频道上启动无线接口的监视模式。

  2. 测试无线设备对 AP 的注入能力。

  3. 使用aireplay-ng与接入点进行伪身份验证。

  4. 在一个带有bssid过滤器的 AP 频道上启动airodump-ng以收集新的唯一 IVs。

  5. 启动aireplay-ng以 ARP 请求重播模式注入数据包。

  6. 运行aircrack-ng来使用收集的 IVs 破解密钥。

第一阶段-配置监视器模式

我们破解 WEP 的第一步是将我们的卡切换到监视模式,就像我们之前做的那样。我们需要这样做,以便让网络接口检测到附近网络发送的每个数据包。要在名为wlan0的网络接口上执行此操作:

  1. airodump-ng启动wlan0 99将锁定卡以监听通道9,但这可以更改为您希望观察的接入点的通道。您可以通过运行不带通道指示器的命令来发现您希望目标的接入点的通道)。

  2. Enter

 The system will respond: 

     Interface       Chipset         Driver 

     Wlan0           Atheros         madwifi-ng 
     ath0            Atheros         madwifi-ng VAP (parent: wifi0) (monitor mode 
     enabled) 

您会注意到上面报告ath0已被设置为监视模式。要确认接口已正确设置,请输入iwconfig

系统会回应:

 lo        no wireless extensions. 

 Wlan0     no wireless extensions. 

 eth0      no wireless extensions. 

 ath0      IEEE 802.11g  ESSID:""  Nickname:"" 
        Mode:Monitor  Frequency:2.452 GHz  Access Point: 00:0F:B5:88:AC:82    
        Bit Rate:0 kb/s   Tx-Power:18 dBm   Sensitivity=0/3   
        Retry:off   RTS thr:off   Fragment thr:off 
        Encryption key:off 
        Power Management:off 
        Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm 
        Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0 
        Tx excessive retries:0  Invalid misc:0   Missed beacon:0 

在上面的响应中,您可以看到ath0处于2.452 GHz频率的监视模式,这是通道 9,接入点显示了您无线网卡的 MAC 地址。在继续之前确认适配器的配置是很重要的,以避免以后出现问题。不正确的配置可能导致破解过程无法正常工作或根本无法工作。

第二阶段-数据包注入

为了确保我们能够正确地攻击网络,我们需要确保我们足够靠近以执行数据包注入。为了验证这一点,我们将运行以下命令:

aireplay-ng -9 -e ganon -a 00:28:6C:E4:40:80 wlan0
  • -e ganon:这是无线网络名称

  • -a 00:28:6C:E4:40:80:这是接入点的 MAC 地址

系统应该会回应:

 09:23:35  Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9 
 09:23:35  Trying broadcast probe requests... 
 09:23:35  Injection is working! 
 09:23:37  Found 1 AP  

 09:23:37  Trying directed probe requests... 
 09:23:37  00:28:6C:E4:40:80  - channel: 9 - 'ganon' 
 09:23:39  Ping (min/avg/max): 1.827ms/68.145ms/111.610ms Power: 33.73 
 09:23:39  30/30: 100% 

最后一行很重要,因为我们正在寻找一个接近100%的值;如果这个值很低,这表明你离接入点太远或者信号不好。如果是这种情况,请尝试改变位置。

第三阶段 - 捕获 IVs

现在我们已经走到这一步,我们需要让它开始捕获这些有价值的 IVs。我们通过使用airodump来帮助我们捕获这些宝贵的信息。

打开第二个控制台会话,并保持之前的会话打开以捕获生成的 IVs。然后,输入:

airodump-ng -c 9 --bssid 00:28:6C:E4:40:80 -w output wlan0 
--bssid 00:14:6C:7E:40:80 is the access point MAC address. This eliminate extraneous traffic. 
-w capture is file name prefix for the file which will contain the IVs. 

当注入正在进行时,屏幕会看起来类似于这样:

 CH  9 ][ Elapsed: 8 mins ][ 2007-03-21 19:25  

 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID 

 00:14:6C:7E:40:80   42 100     5240   178307  338   9  54  WEP  WEP         teddy                            

 BSSID              STATION            PWR  Lost  Packets  Probes                                              

 00:14:6C:7E:40:80  00:0F:B5:88:AC:82   42     0   183782 

第四阶段 - 执行伪身份验证

我们使这个过程工作的下一步是与接入点进行身份验证。这很重要,因为如果我们在没有关联并且接入点存在的情况下执行数据包注入,该过程将失败并且连接将被拒绝。事实上,如果被注入的源 MAC 地址没有关联,目标 API 将忽略数据包并发送一个明文的去认证数据包来拒绝连接尝试。当这种情况发生时,因为 AP 正在忽略所有被注入的数据包,不会创建新的 IVs。

你用于注入的 MAC 必须通过伪身份验证或使用已关联客户端的 MAC 与 AP 关联。

为了将客户端与接入点关联,我们将使用伪身份验证:

aireplay-ng -1 0 -e ganon -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 wlan0
  • -1表示伪身份验证

  • 0重新关联时间(秒)

  • -e ganon 是无线网络名称

  • -a 00:14:6C:7E:40:80是接入点 MAC 地址

  • -h 00:0F:B5:88:AC:82是我们的卡 MAC 地址

成功看起来像:

18:18:20  Sending Authentication Request 
18:18:20  Authentication successful 
18:18:20  Sending Association Request 
18:18:20  Association successful :-) 

或者对于挑剔的接入点的另一个变化:

aireplay-ng -1 6000 -o 1 -q 10 -e ganon -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 wlan0
  • 6000:每6000秒重新认证一次。长时间间隔也会导致保持活动数据包被发送。

  • -o 1:一次只发送一组数据包。默认是多个,这会让一些 APs 感到困惑。

  • -q 10:每10秒发送一次活动数据包。

成功看起来像:

18:22:32  Sending Authentication Request 
18:22:32  Authentication successful 
18:22:32  Sending Association Request 
18:22:32  Association successful :-) 
18:22:42  Sending keep-alive packet 
18:22:52  Sending keep-alive packet 
# and so on. 

然而,如果身份验证失败,将会得到以下结果:

18:28:02  Sending Authentication Request 
18:28:02  Authentication successful 
18:28:02  Sending Association Request 
18:28:02  Association successful :-) 
18:28:02  Got a deauthentication packet! 
18:28:05  Sending Authentication Request 
18:28:05  Authentication successful 
18:28:05  Sending Association Request 
18:28:10  Sending Authentication Request 
18:28:10  Authentication successful 
18:28:10  Sending Association Request 

请注意,在这个例子中,出现了一个收到去认证数据包的消息,然后是一系列的重试。如果发生这种情况,这意味着你无法成功继续,你必须再试一次,看看是否能够成功关联。

第五阶段 - ARP 重放模式

回顾之前的方法,我们将使用aireplay-ng来监听 ARP 请求,然后使用这些捕获的信息重新注入到网络中。在这种情况下,我们主要使用 ARP 请求数据包,主要是因为 AP 将重新广播它们,从而生成一个新的 IV。由于这是我们的主要目标,即在短时间内获得大量 IVs,我们正在进行这个操作。

要执行注入,我们需要打开另一个控制台并输入:

aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 wlan0

这将开始监听 ARP 请求,当它听到一个时,aireplay-ng将立即开始注入它。

如果进程成功完成,期望看到类似以下的输出:

 Saving ARP requests in replay_arp-2017.cap 
 You should also start airodump-ng to capture replies. 
 Read 629399 packets (got 316283 ARP requests), sent 210955 packets... 

你可以通过检查你的airodump-ng屏幕来确认你正在进行注入。数据包应该迅速增加。#/s应该是一个不错的数字。然而,不错取决于许多因素。典型的范围是每秒300400个数据包。它可以低至每秒 100 个,高至每秒 500 个。

第六阶段 - 获取 WEP 密钥

现在我们已经将流量捕获到一个.cap文件中,我们现在将尝试从捕获的数据包中检索密钥。为此,我们需要执行以下操作:

打开另一个新的控制台会话并输入:

aircrack-ng -b 00:14:6C:7E:40:80 output*.cap

-b 00:14:6C:7E:40:80 选择我们感兴趣的一个接入点。

.cap选择所有以 output 开头并以.cap结尾的文件。

  1. 您可以在生成数据包的同时运行此操作。在短时间内,WEP 密钥将被计算并呈现出来。对于 64 位密钥,您大约需要 250,000 个 IVs,对于 128 位密钥,您需要 1,500,000 个 IVs。请注意,这些值只是粗略指南,其他变量可能会影响您实际需要收集多少流量和 IVs。

  2. 如果过程成功完成,您应该会看到类似以下内容的东西:

 Aircrack-ng 0.9 

                              [00:03:06] Tested 674449 keys (got 96610 IVs) 

 KB    depth   byte(vote) 
  0    0/  9   12(  15) F9(  15) 47(  12) F7(  12) FE(  12) 1B(   5) 77(   5) A5(   3) F6(   3) 03(   0)  
  1    0/  8   34(  61) E8(  27) E0(  24) 06(  18) 3B(  16) 4E(  15) E1(  15) 2D(  13) 89(  12) E4(  12)  
  2    0/  2   56(  87) A6(  63) 15(  17) 02(  15) 6B(  15) E0(  15) AB(  13) 0E(  10) 17(  10) 27(  10)  
  3    1/  5   78(  43) 1A(  20) 9B(  20) 4B(  17) 4A(  16) 2B(  15) 4D(  15) 58(  15) 6A(  15) 7C(  15)  

                       KEY FOUND! [ 12:34:56:78:90 ]  
      Probability: 100% 

请注意,密钥的显示方式并非您所期望的那样。方括号中的字符是十六进制的通行密钥。如果您删除冒号,然后在提示要与网络关联时将剩余字符粘贴到无线客户端中,它仍然可以工作。

第四章:攻击机密性

在本章中,我们将涵盖以下内容:

  • 创建一个恶意的双胞胎

  • 无线中间人攻击

  • 破解 WEP

介绍

正如我们在上一章中所学到的,数据的完整性是安全的一个重要组成部分,但它只是 CIA 三要素中的一部分。这个三要素的另一个方面是保密性,它涉及到保护信息免受未经授权的披露。这一方面单独就可能成为一个组织的成败关键,因为失去信息的控制,并且这些信息出现在网站、报纸或其他媒体上,可能会带来许多负面后果,包括诉讼。

一个很好的例子是,一个受损的无线网络如何导致对一家公司的严重后果,就像零售商 TJ Maxx 一样。

在 21 世纪初,TJ Maxx 留下了一个无线网络没有保护,后来发现并被网络犯罪分子利用,收集了敏感客户信息,包括信用卡、姓名和地址。

尽管最终发现并阻止了这次攻击,犯罪分子也被绳之以法,TJ Maxx 仍然需要解决技术保护方面的问题。TJ Maxx 因疏忽导致客户信息被盗而成为一场大规模集体诉讼的对象。最终,由于这起诉讼造成的赔偿金额使得零售商损失了数百万美元。

在当今世界,数据的保密性对于一个组织来说非常重要,因此不容忽视。事实上,困扰商业环境中无线网络的一个问题是,它们被认为是不安全的,并且很有可能将数据暴露给未经授权的人。正因为这个原因,许多企业很长一段时间内都不考虑实施无线网络,而且在许多情况下,这些公司禁止在企业场所使用无线设备。这意味着无线接入点可以在企业中设置。企业也会避免购买任何具有无线功能的设备,以避免由于有人连接到企业拥有并包含商业敏感数据的设备上的伪造或不安全的接入点而可能引起的任何问题。这是许多年前的事情了,世界已经改变;许多企业已经将无线网络作为其整体业务战略的一部分。尽管对这些无线网络的保密性和安全性仍然存在一定程度的担忧,但它们已经被广泛采用,并且可以在许多以前不存在的企业中看到。

导致对无线网络保密性的担忧的原因是,除非使用专门的天线或设备,否则它们会向所有方向发射信号。随着设计更好地聚焦信号的专用天线的引入,保护技术和其他技术已经在多年内得到发展,使得无线网络得到了更广泛的接受。

技术已经被证明可以有效保护无线网络的保密性;让我们来看看一些可以用来保护无线网络免受未经授权的侵入和数据泄露的技术:

  • 加密:加密可能是可以用来提高无线网络或任何网络安全性的最简单和最广泛使用的技术之一。我们在这里讨论的无线网络中的加密类型将被设计用于保护传输中的数据,换句话说,即从 A 点到 B 点移动的数据。这对于无线网络来说至关重要,因为将数据从 A 点传输到 B 点的过程涉及通过空中传输信息;因此,任何可以拦截无线电波的人都有可能窃听传输并查看未加密的数据。

  • 密码学:无线网络有许多形式,并使用许多不同的算法,如 AES 或 3DES,来保护数据的机密性,同时提供其他机制来确保数据在传输过程中不被修改。

  • 天线:这是可以用来保护无线网络和无线信号的更有趣的领域之一——使用专门的天线来聚焦和控制信号及其传输,使其不会不加区别地发送信息。专门的天线可以用来将信号聚焦到特定区域,甚至控制信号的传播范围或距离;因此,在这两种情况下限制谁能监听传输。需要注意的是,大多数无线接入点配备的天线被认为是全向天线,这意味着它们被设计为在所有方向均匀地发送信号,以便最大限度地覆盖其区域。虽然这对于消费者或家庭环境来说是可以接受的,因为需要或希望获得最大的覆盖面积,但如果您处于多租户环境或希望将信号聚焦到只有需要的人才能访问的区域,您可能希望进行控制。

  • 预共享密钥PSK):这种机制用于在多个工作站之间共享一个密钥和访问点,目的是使用该密钥对数据进行编码和保护,并防止未经授权的各方修改或披露数据。这些预共享密钥系统非常适用于规模较小的环境,甚至是家庭环境,其中需要保护少量系统。这主要是因为密钥必须手动输入到各个系统中,而其他系统可以进行集中管理。如果必须在每个客户端系统以及访问点上手动输入密钥,随着网络规模的增长,事情可能会变得相当乏味和繁琐。

  • 企业认证:这种类型的系统与基于 PSK 的环境工作方式相同,只是密钥管理是通过诸如 RADIUS 之类的系统进行集中管理的。这些企业系统的好处是它们几乎可以随着企业或部署规模的增长而成倍增长,这意味着密钥管理和安全性仍然可以进行集中管理。企业认证系统确实有一个缺点,那就是它们需要更多的基础设施和时间来进行正确设置和配置;然而,一旦完成了这一步,它就变得更多是一个维护问题。

这只是可以部署以强制保密的潜在措施的简短清单;然而,在无线环境之外还有许多其他可供选择的措施,可以补充或替代上述清单中提到的内容。

一旦获得了网络访问权限,并且数据的完整性受到质疑,攻击者可能选择修改事物以达到他们所选择的任何目的。

攻击类型

针对无线网络的保密性攻击在熟练和知识丰富的攻击者或入侵者手中非常有效和强大。保护无线网络的机制和设备通常会被错误配置,或者这些网络的所有者可能不知道可用的攻击类型。对于不知道其无线网络或保护机制中的配置问题、缺陷或缺陷的系统所有者来说,它们会被广泛地暴露于可以用来攻击它们的各种攻击之中,并且在某些情况下可能会产生毁灭性的影响。请记住,无线网络可以得到保护,但就像任何事情一样,您必须花时间和精力来确保安全性足够并且按照预期的方式存在。

在我们开始探索每种攻击之前,让我们首先列出本章将涵盖的攻击类型:

  • 嗅探

  • 数据重放

  • WEP 数据包注入

  • 检测信标帧

  • 伪造信标帧

记住,这些只是可以用来破坏无线网络保密性的攻击类型中的一部分,它们永远不应被视为唯一的攻击类型。

创建恶意双胞胎

用于攻击保密性的第一种攻击类型被称为恶意双胞胎攻击,或者恶意双胞胎 AP。这种类型的攻击通常不是作为独立攻击使用的,而是与其他攻击一起使用,正如我们将看到的那样。

我们在这里提到的攻击类型最常见的名称往往是恶意双胞胎。然而,不要惊讶地听到诸如流氓接入点、影子接入点、无线蜜罐等许多其他潜在名称。无论你如何称呼它,如果你理解这种攻击中发生的机制,无论它被称为什么名字,你都会没事的。

恶意双胞胎攻击发生在流氓接入点被配置成与合法接入点相同并且放置在附近的情况下。对于外部世界和用户来说,放置更近和/或产生更强信号的恶意双胞胎很可能会成为他们连接的接入点,而不是合法接入点。如果用户选择手动或自动连接到接入点,恶意双胞胎将成为最终用户的接入点和互联网网关。由于恶意方将控制恶意双胞胎,他们将能够拦截通过他们的 AP 传输的任何流量,甚至根据需要修改或重定向它。这意味着攻击者有能力窃取包括密码、用户名和其他数据在内的敏感信息。

实际上,如果稍加思考和计划,并考虑用户连接到无线网络的方式,邪恶的双胞胎攻击可能非常有效。考虑到大多数笔记本电脑、手机或平板电脑等设备的用户通常可以打开无线设备,找到无线网络并连接到它。如果他们进入机场、购物中心,甚至是咖啡店等公共场所,他们通常可以打开无线设备并搜索免费的无线网络。记住这一点,可以很容易地构建一个无线接入点,提供看似免费的互联网访问,并将其保持不安全,以便受害者连接到无线网络并开始浏览互联网或查看电子邮件,从而使自己容易受到攻击。还要考虑这样一个事实,即如果您将无线网络命名为类似于某个公司或组织拥有的东西,用户很可能会连接到它,认为它是一个完全合法和真实的接入点 - 而实际上并非如此。一旦用户连接到这个接入点并开始交换数据,他们可能为保护自己而为时已晚。用户连接到一个不安全或未知的接入点,比如邪恶的双胞胎,可能会无意中被重定向到其他人控制的网站,并且可能包含可部署到他们客户端系统的恶意软件。

准备工作

要开始,您需要准备以下物品:

  • 能够进入监视模式的无线网卡

  • Kali Linux

  • 第二个有线或无线适配器连接到互联网

如何做...

要创建一个恶意的双胞胎,我们将按照几个步骤进行,每个步骤都旨在使系统的一部分准备好执行攻击。

第一步 - 使用 airmon-ng 监视模式

我们必须做的第一步是将无线适配器置于混杂模式或监视模式。这与我们在以前的章节中所做的没有什么不同。在这种情况下,我们将假设我们的无线适配器使用名称wlan0,但请仔细检查以确保您系统上的名称相同。

    airmon-ng start wlan0  

就像以前一样,airmon-ng实用程序已经将我们的无线网卡切换到监视模式,并在此过程中将其重命名为类似mon0的东西。完成后,我们将能够查看所有我们需要的流量。以下图片显示了airmon-ng命令的结果:

airmon-ng 将 wlan0 切换到监视模式。

请记住,我们将在本书中多次使用此实用程序,并且在每种情况下步骤几乎相同。当我们使用此实用程序时,经常变化的是连接后的步骤,以及我们与其一起使用的无线接口的名称。特别注意使用此命令的语法,这样您在未来尝试或练习中使用此命令行应用程序时可以更轻松地进行操作。

第二步 - airdump-ng

监视模式已经就位,现在我们将开始使用相同的无线适配器收集流量。要使用airodump-ng执行此操作,我们将键入以下内容:

    airodump-ng mon0

请注意我们使用了监控接口mon0的新名称;您应该使用ifconfig验证名称,以确保您的新接口名称相同。

完成此步骤后,您应该开始看到访问点;由您选择要创建恶意双胞胎的访问点:

就像以前一样,这个实用程序并不是你见过的最后一个 - 实际上,在本书中的几个其他配方中都使用了几乎完全相同的语法。密切关注语法以及如何使用它,以及它的作用,因为这将节省您以后的时间。

第三步 - 创建具有相同 SSID 和 MAC 地址的新 AP

使用相同的 SSID 和 MAC 地址创建一个新的 AP,有效地克隆了一个好的双胞胎和一个坏的双胞胎,我们需要使用airbase-ng实用程序,并假设我们想要克隆前面截图中名为Tarlogic的网络:

    airbase-ng -a 60:A4:4C:69:D2:48 --essid "Tarlogic" -c 1 mon0

如果该过程有效,您应该会看到如下截图所示的结果:

使用 airbase-ng 的结果

请注意,在截图中,我们创建了一个访问点,然后不久后一个客户端与访问点关联。

有可能在设置访问点并开始广播名称后,您可能会有客户端相当快速地连接,但如果没有发生这种情况,请不要灰心。在某些情况下,您可能必须等待一段时间,直到客户端实际连接到您的访问点。这需要多长时间可能因情况而异。如果您设置了一个模仿咖啡店访问点名称的访问点,并且有很多顾客,那么很可能会有人连接到您的访问点,因为它看起来和行为都像咖啡店的访问点。请记住,我不建议您创建一个模仿咖啡店访问点或其他公共访问点的访问点,除非您有明确的许可。仅仅因为您想要设置一个通常是非法的。

第四步- 强制重新连接

如果您想要查看是否可以让客户端连接到访问点的速度比如果您只是等待要快,您可以有效地将他们从当前的访问点(好双胞胎)中踢下来,并让他们重新连接到您的访问点。为了做到这一点,我们将向目标访问点发送一个去认证帧,将所有人都踢下来。一旦他们被踢下来,如果我们已经正确地定位了自己,他们将连接到我们的邪恶双胞胎。我们的下一步是将邻居从他的访问点中踢下来。

我们可以使用aireplay-ngdeauth数据包来实现这一点:

    aireplay-ng --deauth 0 -a 60:A4:4C:69:D2:48

我们用aireplay发送了一个带有Tarlogic访问点地址的deauth帧。以下图片显示了在aireplay中运行-deauth选项的结果:

发送去认证帧

第五步- 增加功率

为了确保我们有最好的机会捕获客户端,我们需要确保我们的信号比我们正在克隆的接入点更好。如果您无法让自己更靠近,您可以随时增加功率以确保您有更强的信号。

为了产生更强的信号,我们可以这样做:

    iwconfig wlan0 txpower 27

以下显示了iwconfig命令的结果。请注意Tx-Power设置:

通过发送一个去认证数据包,我们故意将连接到合法访问点的客户端从网络中踢出,以便让他们重新连接到我们的网络。尽管仅仅向连接到特定访问点的客户端发送去认证帧并不足以确保他们会重新连接到我们的访问点,但这确实给了他们这样做的机会。有可能您已经捕获到了连接到您的访问点的客户端,而无需进一步操作,但我们希望有更多的保险来实现这一点。所以,让我们继续。

以下显示了iwconfig命令的结果。请注意Tx-Power设置:

使用 iwconfig 命令的结果

这个命令将把 AP 的功率提升到在美国允许的最大值,即 27 dBm 或 500 毫瓦。虽然在一些卡上可能会将功率提升到超过这个限制,比如 2000 毫瓦,但这不仅是非法的,而且会因为额外的热量和压力而缩短您的卡的寿命。

值得强调的是,无谓地增加接入点的功率会带来很多麻烦。正如我们已经提到的,将接入点的功率调高到一定阈值以上可能在您的国家是非法的。将接入点或无线设备的功率调高到超出容量的另一个问题是,它会产生更多的热量,因为用于调制信号的收发器被推到了设计规格之外。随着热量的积聚,它会减少该设备的使用寿命。您甚至可能会将您的设备变成火灾风险。最后,无谓地提高功率违反了法律标准,这意味着您可能会淹没其他接入点范围内的无线设备的信号。虽然这听起来可能是个好主意,但它确实增加了您被抓到的可能性。确保您了解将无线设备的功率调高到超出设计规格或法律限制的问题。

在这一点上,我们可以再次运行airodump来查看客户端是否连接到我们的接入点。我们还可以使用嗅探器来捕获流量或运行中间人攻击,这些我们稍后会做。请记住,到目前为止,我们所做的是从客户端捕获无线流量并将其重定向到我们的接入点。此时还很重要的一点是,我们在本文中所做的一切只是设置了恶意的双胞胎。我们还没有设置自己来捕获任何流量。我们如何做到这一点取决于我们自己。

中间人攻击与无线

中间人攻击是一种更高级的攻击形式,它建立在先前的行动基础之上。这种攻击发生在第三方拦截两个系统之间的通信并观察流量或以某种方式更改流量时。这种类型的攻击绝对比通过嗅探进行的窃听更进一步,但最初它的开始方式非常相似。

让我们从讨论一些基本要点开始这次攻击,首先是关于交换机和欺骗的主题。

我们对交换机的解释旨在作为交换机的功能和放置位置以及网络设备的层次结构的入门或复习。它并不意味着对交换机的细节或设备的解剖以及它们的功能方式进行详尽的讨论。如果您对交换机、它们的功能、为什么要在网络上放置它们以及它们相对于其他传统网络设备(如集线器)的优势不熟悉,那么您可能需要在继续之前查看相关信息。这样做将有助于您充分利用本文并具体了解我们试图实现的目标。

正如您可能已经知道的那样,交换机是一种用于通过 MAC 地址控制流量的设备。这些设备在当今的环境中被广泛使用,您应该期望了解并处理它们,以便在它们阻止您的攻击尝试时能够正确地参与和击败它们。交换机很受欢迎,因为它们可以减少网络拥塞和相关的网络流量,更不用说它们只向 MAC 地址发送流量,也就是说,发送到预期目的地。正是因为这些能力,交换机已经取代了集线器,集线器无法控制流量或阻止其他客户端窃听与它们无关的连接。为了对抗交换机的安全性,已经开发了一些技术,包括 MAC 洪泛、DHCP 饥饿和 ARP 欺骗等行动。其中一些技术用于绕过交换机,而其他技术则旨在直接针对交换机并使其像集线器一样运行,从而使我们的攻击更容易实施。

通常,洪泛攻击不适用于过去十年或更长时间内部署的交换机。通常,现代交换机不再起作用,即使在旧的交换机上,警惕的网络管理员也会注意到网络流量和数量的变化。为了让交换机知道将流量发送到何处,它们维护一个 CAM 表,该表基本上将 IP 地址映射到 MAC 地址。例如,该表表示当流量发送到 IP 地址192.168.1.101时,将该流量发送到 MAC 地址11:22:33:44:EE:FF

如果我们可以改变表中的条目,我们就可以成功地获取别人的流量。这就是所谓的 ARP 欺骗,因为 CAM 表中的条目来自交换机发送的 ARP,以从网卡获取这些信息。

在本节的示例中,我们将利用一种称为 ARP 欺骗的技术,这种技术旨在允许我们插入自己在目标之间,并让他们相信他们仍在直接交谈。

ARP 欺骗是一种攻击形式,通常被用作另一种攻击的组成部分或前兆。在这种攻击中,恶意方在本地网络上发送伪造的 ARP 消息序列。这样做的目的是创建或更改系统或计算机上 IP 和 MAC 地址的连接或关联,使其与应该是的不同。一旦攻击者完成了欺骗部分,他们就可以有效地改变网络段上的流量。一旦攻击者的 MAC 地址连接到一个真实的 IP 地址,攻击者将开始接收任何发送给该 IP 地址的数据。

关于窃听的一点要记住的是,可以使用许多不同的协议进行窃听,如 FTP、HTTP 等。基本上,任何形式的在线通信都可能受到中间人攻击,只要采用正确的方法。在本节的示例中,我们将演示如何仅使用特定协议执行攻击,但这个示例可以扩展到其他适当的协议。

讨论类似 DCF 这样的工具时要记住的一件事是,它利用了许多协议(如 FTP 和 HTTP)在设计时没有考虑安全性的事实。这些协议的设计是为了执行非常特定的功能,比如文件或其他信息的传输,它们在核心功能上表现出色,几乎没有问题。然而,由于这些协议的设计者在实际设计过程中没有考虑到今天我们看到的安全问题,因此像 dsniff 或 Wireshark 等工具就会利用这种缺乏安全性。

在 Wi-Fi 网络的情况下,中间人攻击是一种特别吸引人的攻击,因为环境的设计。在这种环境中,攻击者所要做的就是等待客户端连接,然后开始游戏。使用伪造接入点等方法,或者破解 WEP 或 WPA 密钥并连接到现有网络,都是执行中间人攻击的有效方法。

需要指出的一点是,中间人攻击可能对受攻击的客户端是无法检测到的。就受害者而言,当中间人攻击发生时,他们正在与最初打算进行通信的人进行通信;他们不知道有第三方正在拦截并可能以某种方式操纵他们的流量。如果攻击者不采取任何行动来让他们的存在得到确认,或者不向任何人透露他们的存在,那么很难察觉到他们的存在。然而,有办法可以做到。例如,网络入侵检测系统可以检测到流量的变化,并通知系统所有者或管理员进行响应。

准备工作

要开始操作,您需要准备以下物品:

  • 能够进入监视器模式的无线网卡

  • 安装了 Wireshark 的 Kali Linux

如何做...

为了执行中间人攻击,我们需要整合一些新的和旧的工具和技术。话虽如此,让我们开始吧。

在这种攻击中需要关注的一点是,我们将同时在 Kali 中使用多个终端窗口。事实上,在这个特定的步骤中,我们将使用三个同时运行的终端窗口,每个窗口执行过程的不同部分。因此,请记住要集中注意力,并注意在这个步骤中应该在哪个窗口中。

请记住,在本书中以及在现实生活中,您会发现自己处于多种情况下,需要同时运行多个终端窗口。这通常是因为您需要在命令行中运行多个实用程序,每个实用程序都设计用于执行一个过程或任务的一部分。因此,在执行这些攻击时,请确保您真正注意自己在任何时候处于哪个窗口中,以确保您不会无意中取消或运行一个命令或序列,从而产生与您预期不同的结果。

在这个步骤中,我们将执行一些旨在捕获我们正在寻找的信息的步骤。

将发生的第一步是运行 ARP 欺骗,旨在帮助我们重定向和捕获流量,然后能够在以后捕获凭据。

在尝试此攻击时要记住的一点是,此攻击只能在本地网络上进行;它不会跨不同子网或甚至在两个不同的网络上进行。原因是 ARP 协议只在本地网络上工作——它不是设计用于其他情况。因此,在除本地网络以外的任何地方尝试执行此攻击将导致失败。这是一个非常重要的细节,要记住,忘记它可能会导致攻击失败,这可能会非常令人沮丧。

我们将通过用我们本地系统的 MAC 地址替换服务器的 MAC 地址来执行客户端的第一步。这将把流量重定向到我们的系统而不是实际的服务器。

我们通过在一个终端窗口中运行arpspoof来执行此操作,如下所示:

    arpspoof <client IP> <server IP> 

这将告诉客户端我们是他们在尝试联系服务器时正在寻找的系统。

下一步是用我们系统的 MAC 地址替换客户端的 MAC 地址。这只需简单地颠倒之前使用的 IP 地址的顺序:

Arpspoof <server IP> <client IP> 

以下屏幕截图显示了颠倒 IP 地址的顺序:

在这里,我们告诉服务器我们是客户端。

现在执行这两个命令。当我们这样做时,客户端会认为我们是服务器,服务器会认为我们是客户端!

一旦我们伪造了客户端的 MAC 地址以重定向其流量,我们需要执行一个称为转发或 IP 转发的过程。实质上,我们所做的是通过我们的系统从客户端到服务器和从服务器到客户端转发流量,以确保来自一方的请求到达另一方,反之亦然。如果我们不执行转发,连接将会被有效地中断,因为从一个网络接口路由到另一个网络接口的流量将无法到达目的地。

请记住,此攻击的成功取决于客户端与其预期目的地之间保持可靠和一致的连接。您正在介入此连接尝试以及任何随后的信息交换,并且您正在尝试在所需的时间内保持您的存在未知和未被检测到,以收集您正在寻找的信息。

要启用转发,我们使用ip_forward命令,默认情况下 Linux 中包含此功能,允许我们尝试配置的过程。在正常情况下,此功能是禁用的,因此我们需要重新启用它。Linux 具有内置功能来转发它接收到的数据包。

我们通过使用以下命令来实现这一点:

echo 1 > /proc/sys/net/ipv4/ip_forward

现在,我们的系统已插入到这些通信主机之间,并且我们的客户端和服务器已被调用,我们可以开始下一阶段,即开始嗅探流量,以寻找有用的凭据。

请记住,在使用中间人攻击或任何其他使用嗅探的攻击时,未受保护的协议(如 HTTP 或 FTP)会使攻击变得更加容易。而采用旨在保护信息机密性和完整性的加密的技术(如 SSH)将使嗅探极其无效,无法收集有用的信息或凭据,因为它们旨在保护客户数据。

为了执行这一步,我们将使用一套称为dsniff套件的工具,这套工具已经存在了好几年,但在执行各种不同的攻击时仍然非常有用。该套件包括多种不同的工具,旨在捕获各种流量并提取有用信息,例如来自 FTP、telnet、HTTP、SNMP、POP、LDAP 等容易被拦截和处理其信息的凭据。

为了使用 dsniff,我们发出以下命令:

    dsniff

当我们执行此命令时,您会看到dsniff会迅速回应说它正在eth0上监听。但是,使用-I命令可以告诉它完全在不同的接口上监听。

执行此命令后,我们现在所要做的就是等待。我们正在等待的是客户端连接到服务器。有了dsniff的帮助,我们会发现一旦客户端登录,他们将成为我们嗅探努力的受害者,他们的凭据将直接显示在我们的屏幕上,我们可以记下它们,稍后可以像以下截图所示那样使用它们:

在这个截图中,您会注意到 DCF 已经捕获了连接到服务器的客户端的凭据。实际上,在这里,您可以看到谁连接到谁,因此能够建立客户端/服务器关系。

一旦您在屏幕上看到凭据,您还将看到这些凭据发送到的 IP 地址,这意味着现在您所要做的就是打开您的 FTP 客户端,并将其指向相同的 IP 地址。在提供用户名和密码后,您可以登录到该系统并浏览其中的任何信息和服务。

破解 WEP

无线网络的一个独特特点当然是它们不使用传统媒体,而是使用无线电波将信息从一个点传输到另一个点。这就是使得网络如此吸引人和受欢迎的原因,一个人可以在无线网络的范围内的任何地方携带他们的设备,并且仍然可以保持访问而不必担心电缆等。然而,这种优势是有代价的,即无线电信号是不加区分的,任何能够接收它们的人也能够处理它们携带的信息。

幸运的是,无线网络的设计者将这视为一个问题,并决定在 IEEE 802.11b 网络设计的初始规范中添加保护,即有线等效协议WEP)。在发布时,WEP 被视为一个很好的功能,然而,不久之后问题出现并随后迅速扩大。

WEP 是可用加密协议中最古老且可以说是最薄弱的。WEP 标准被引入作为无线安全的初始解决方案,但很快被发现存在缺陷和极易受攻击。该协议被发现存在缺陷和易受攻击的原因有很多;其中之一是协议中的密码学实现不佳。不仅实现设计和实施不佳,而且没有经验丰富的密码学家审查,他们可能能够发现任何缺陷和漏洞并解决它们。

WPA,或 Wi-Fi 保护访问,是 WEP 的继任者,旨在解决困扰 WEP 的许多问题。在许多领域,它成功了,并成为了一个更加严格的安全协议。WPA 使用 TKIP、MIC 和 AES 加密作为其保护信息的主要机制。

WPA2 是 WPA 的升级或继任者,旨在解决和取代 WPA 的问题。WPA2 更加强大,使用更严格的 AES 和 CCMP 加密。该标准还有一个版本,使用更强大的系统,如 EAP、TKIP 和 AES(带有更长的密钥)。

然而,在我们讨论问题之前,让我们看看 WEP 应该如何工作。之后,我们将继续讨论如何利用它的问题。

WEP 是无线加密协议中最古老的,最初引入并集成到 802.11b 标准中,它被视为提供安全数据传输的一种方式,或多或少与有线网络相当。按设计,WEP 协议利用了一些现有技术,包括 RC4 加密协议。

当它被设计和推出时,旨在实现以下目标:

  • 打败窃听通信和试图减少未经授权的数据披露

  • 在数据流经网络时检查数据的完整性

  • 在传输之前使用共享的秘密密钥加密数据包

  • 在轻量级、高效的系统中提供机密性、访问控制和完整性

它的问题源于以下情况:

  • 该协议是在没有经验丰富的密码学家、学术界甚至公众的审查下设计的。

  • 它没有明确定义的密钥分发方法(如集中式密钥管理),除了预共享密钥,必须手动输入到每个站点。因此,密钥在大规模更改时很麻烦,因此很少更改。

  • 其设计使得可以通过嗅探工具和操作系统中免费提供的破解工具被动地发现密钥,例如基于 Linux 的 Kali。

  • 不同供应商使用的密钥生成器设计不一致且设计不良,导致漏洞,例如使用 40 位密钥的问题。

  • 用于执行密钥调度的算法已被证明容易受到攻击。

  • CRC32 在完整性检查中存在缺陷,并且通过轻微修改,攻击者可以一致地修改数据包以产生他们期望的结果。

  • 初始化向量IVs)只有 24 位长度,这意味着一个轻度活跃的网络可以在五小时或更短的时间内耗尽整个 IV 池。

  • 它容易受到通过分析数据包进行已知明文攻击的影响。

  • 密钥可以通过分析数据包来获取,从而创建解密表。

  • 它容易受到拒绝服务攻击的影响,通过使用 WEP 未经身份验证的关联和取消关联消息。

准备工作

要开始,您需要准备好以下项目:

  • 能够进入监视模式的无线网卡

  • Kali Linux

这里列出的项目是基本要求,如果需要,您可以轻松使用更多(或不同)组件。例如,如果您想要增强范围,您可以使用一个带有外部天线连接的基于 USB 的无线网卡,这样可以获得更好的接收效果。

在这个练习中需要记住的一件重要事情是,我们将使用一系列工具,这些工具都来自一个旨在破解和分析无线网络流量的工具套件。在随后的章节中,我们将重新访问套件中的不同工具,并在途中为不同目的使用它们。这将是你对 air-crack 套件中一些成员的首次探索。

第一步 - 监视模式 airmon-ng

我们必须做的第一步是将无线适配器置于混杂模式或监视模式。这与我们在以前的章节中所做的没有什么不同。在这种情况下,我们假设我们的无线适配器使用名称wlan0,但请仔细检查以确保您系统上的名称相同。

    airmon-ng start wlan0

与以前一样,airmon-ng实用程序已将我们的无线网卡切换到监视模式,并且应该已将其重命名为类似mon0的名称。完成此操作后,我们现在将能够查看所有我们需要的流量。以下屏幕截图显示了airmon-ng命令的结果:

airmon-ng 将 wlan0 切换到监视模式。

第二步 - airdump-ng

有了监视模式,我们现在将开始使用相同的无线适配器收集流量。要使用airodump-ng执行此操作,我们将输入以下内容:

    airodump-ng mon0

请注意我们使用了监视接口的新名称mon0。您应该使用ifconfig验证名称,以确保您的新接口名称与之前相同。

完成此步骤后,您应该开始看到访问点,选择要创建恶意双胞胎的访问点取决于您:

第三步 - airdump-ng 和流量捕获

从此屏幕截图中的访问点列表中,您将注意到有两个启用 WEP 的访问点,我们将选择名为7871的访问点。

airodump-ng --bssid 0A:86:3B:74:22:77 -c 6 -w crack mon0 

这将开始捕获来自 SSID7871的通道6上的数据包,并将它们写入名为 crack 的文件中,该文件将以pcap格式保存。这种方法的问题在于我们需要捕获大量数据包或流量才能真正破解或检索密钥。如果你是一个喜欢耐心等待的人,你可以等待捕获 50,000 或 60,000 甚至 100,000 个数据包后再进行破解过程。然而,这还不够好;我们想要密钥,而且希望在最短的时间内获得它。让我们通过设置可以实现这一目标的情况来做到这一点。

关于需要捕获的数据包数量,实际上存在一些争论,以使破解过程成功,因此您可能需要进行一些实验,以获得一致可靠的结果。然而,仅供参考,需要收集的流量量通常在 60,000 个数据包到 100,000 个或更多之间。

第四步 - 重放流量

为了加快这个过程,我们需要在很短的时间内生成大量的流量。为了做到这一点,我们将执行一个称为数据包注入的过程,我们还将伪造一个 MAC 地址,以诱发一波我们可以捕获的流量。

有许多不同的方法可以重放流量,实际上,这种技术用于在主机或应用程序之间重放认证流量和其他类型的网络流量。然而,请记住,有些类型的流量不能轻松地或根本无法重放。事实上,阻止数据重放攻击的最大因素之一是时间戳,其中包括告诉数据包何时传输以及有效期多长的信息。幸运的是,ARP 流量默认情况下没有这种保护,尽管可以通过其他机制提供。我们在这里使用的技术不会遇到这种限制,因为我们没有捕获或重放受此保护或限制的流量。

执行此步骤所需的组件将是接入点的 SSID,已连接到接入点的客户端的 MAC 地址,以及一个名为aireplay-ng的工具。我们将使用以下格式的实用程序发出命令:

aireplay-ng -3 -b 0A:86:3B:74:22:77 -h 44:60:57:c8:58:A0 mon0 

如果到目前为止我们已经做得一切正确,我们在另一个窗口中运行的airodump仍将在运行,并且能够将我们生成的所有流量捕获到我们命名为 crack 的文件中,然后我们将使用它来进行分析并检索密钥。

第五步 - 破解流量

在我们继续进行第五步,也就是我们实际破解流量的地方,我们需要确保我们已经捕获了数万个数据包,以确保我们有足够的流量进行适当的分析。如果您没有捕获足够的流量,那么这个过程很可能会失败,您将不得不重新生成流量,以捕获更多的流量。因此,请记住要耐心,并确保捕获足够的流量以合理成功地执行该过程。

在尝试从捕获的流量中恢复密钥时要记住的一件事是,这可能需要一些时间,这取决于试图恢复密钥的系统上可用的资源。如果您有一个速度较慢或较旧的系统,预计这个过程会比在具有更多处理能力或内存的系统上花费更长的时间。如果您已经收集了足够的流量,那么这个过程应该是成功的 - 无论花费多长时间。

为了破解流量,我们需要拥有一个捕获文件,这是我们之前使用airodump生成的。我们使用aireplay生成的所有流量都应该被捕获到这个文件中,然后我们可以使用以下实用程序进行分析:

aircrack-ng crack.cap 

如果成功了,aircrack将在屏幕上以十六进制显示密钥,然后您可以将其用于与目标接入点关联时输入到您的无线客户端中。

如果您耐心和细心地执行了这次攻击的步骤,您会发现您有很大的成功机会,并且应该能够随需访问任何启用 WEP 的网络。还要记住,确保使用airodump将足够的流量捕获到文件中可能需要一些练习;学习曲线是正常的。

这种保护无线网络的方式在很大程度上受到了利用,因此被视为一种不被赞同或避之不及的保护形式。当这种保护机制在早期无线网络中首次亮相时,它被认为是一种体面的保护形式。然而,随着技术的发展和攻击者寻求捕获信息的不同方式,很快就发现了一种漏洞。正是这种漏洞在这个特定的配方中被利用。如今的网络不应该将这种保护措施作为保护无线流量的主要手段,因为它并不难破解 - 只需要一点技巧和耐心,你就能得到你想要的信息。