简单 WEP 破解

2025年3月17日 | 阅读11分钟

在本节中,我们将学习如何简单地破解WEP密钥。为此,我们将使用aireplay-ng重放ARP数据包来生成新的唯一IV。反过来,我们将通过创建新的唯一IV来使用airplay-ng破解WEP密钥。

假设

我们提供的解决方案假设以下几点:

  • 我们使用驱动程序补丁进行注入。如果我们想在继续之前确认我们的网卡可以注入,我们可以进行一次注入测试
  • 发送和接收接入点数据包的距离足够近。我们应该记住,如果我们正在接收来自接入点的数据包,它将不允许我们向AP传输数据包。AP的信号强度比无线网卡强。因此,当我们距离足够近时,AP能够到达并接收我们发送的数据包。我们必须确认使用以下说明,我们可以与特定接入点通信。
  • 活动客户端应有一个或多个无线或有线网络连接,因为它是基于接收一个或多个ARP请求数据包的。如果没有活动客户端,将没有ARP请求数据包。
  • 我们正在使用aircrack-ng版本v0.9。如果我们使用不同版本的aircrack-ng,我们在此版本中使用的一些常见选项可能需要更改。

现在我们需要确认上述所有假设都是正确的。在以下示例中,我们将接口名称wlan0更改为我们的无线网卡接口名称。

使用的设备

在本教程中,我们使用了以下类型的设备:

  • 运行aircrack-ng套件的PC MAC地址:00:0F:B5:88:AC:82
  • AP的MAC地址(BSSID):50:C8:E5:AF:F6:33
  • 无线网络的名称(ESSID):BS1A-Y
  • 接入点的频道:6
  • 无线接口:wlan0

当我们处理网络时,我们必须收集我们正在工作的网络的所有设备信息。现在我们需要根据特定网络更改值。

解决方案

如果我们想破解AP的WEP,我们需要收集大量的IV。这些IV无法通过正常的网络流量快速生成。如果我们有耐心并想破解WEP,通过监听和保存网络流量,我们可以收集足够的IV并破解它们。但实际上,我们都没有耐心。这就是为什么为了加快过程,我们使用注入技术。在注入中,我们拥有接入点,它会非常快速地重发选定的数据包。由于这个原因,我们可以在短时间内捕获大量的初始化向量(IV)。

现在,为了确定WEP密钥,我们可以使用这些大量的捕获IV。执行此操作的基本步骤如下:

  1. 在接入点频道上启动无线接口的监控模式。
  2. 测试无线设备到AP的数据包注入。
  3. 使用aireplay-ng与AP进行虚假身份验证。
  4. 使用airodump-ng在接入点频道上,使用bssid过滤器,收集新的唯一IV。
  5. 使用aireplay-ng的ARP请求重放模式注入数据包。
  6. 运行aircrack-ng并使用收集到的IV来破解密钥。

在AP频道上启动无线接口的监控模式。

在本节中,我们将把我们的网络置于监控模式。通常,我们的网卡只监听发送给我们的数据包。但在监控模式下,我们的网卡会监听空中所有的数据包。使用每个数据包,我们可以根据需要选择一些数据包进行注入。对于非Atheros网卡,此过程不同。

首先,我们需要使用以下命令停止wlan0:

执行此命令后,系统将响应如下:

现在我们将确保没有其他wlanX接口在使用“iwconfig”命令。执行此命令后,它看起来像这样:

如果我们发现任何剩余的wlanX接口,我们需要停止所有这些。现在,我们需要使用“iwconfig”命令确认没有任何剩余。现在我们将使用以下命令在频道6上以监控模式启动无线网卡:

在上述命令中,我们的接入点运行在“6”频道上。如果我们的无线网卡锁定在接入点频道上,以下步骤将正常工作。

在此命令中,我们将使用我们的无线接口“wifi0”而不是“wlan0”。这是因为我们使用的是madwifi-ng驱动程序。对于其他驱动程序,请使用“rausb0”或“wlan0”等无线接口名称。

系统对以下输出做出响应:

我们可以在上面的执行中看到wlan0已报告处于监控模式。现在输入“iwconfig”命令以确保接口已正确设置。在此命令之后,我们将得到系统以下响应:

上述响应显示wlan0处于监控模式。在频道6上,它具有2.452GHz的频率,并且我们的无线网卡的MAC地址由接入点指示。只有madwifi-ng驱动程序会指示我们无线网卡的MAC地址。在继续之前,我们应该优先确认所有上述信息。否则,它将影响后续步骤。

测试无线设备数据包注入

在此步骤中,我们将确认我们的网卡在AP的距离范围内,并且可以向其注入数据包。为此,我们将输入以下命令:

其中

-6 表示注入测试。

-e BS1A-Y 用于指示无线网络的名称。

-a 00:14:6C:7E:40:80 用于指示接入点的MAC地址。

wlan0 用于指示无线接口的名称。

执行此命令后,我们将得到系统以下响应:

在上面的执行中,最后一行对我们很重要。它告诉我们一个非常高的百分比,即100%。如果显示低百分比,则表示我们离AP太近或太远。如果百分比显示为0,则表示注入不起作用,我们应该使用不同的驱动程序或修补我们的驱动程序。

开始捕获IV的airodump-ng

在本节中,我们将捕获生成的IV。如果我们想使用特定接入点捕获IV,我们可以使用airodump-ng。

为了捕获IV,请打开另一个控制台,然后输入以下命令:

其中

-c 6 用于指示无线网络频道。

--bssid 50:C8:E5:AF:F6:33 用于指示AP的MAC地址。为了消除无关流量,我们将使用它。

--write 用于将所有数据存储在名为output的文件中。如果我们想跳过这部分,我们可以这样做,因为它不是强制性的。

wlan0 用于指示监控模式下的接口名称。

稍后注入进行时,屏幕看起来将如下所示:

Simple WEP Crack

使用aireplay-ng与AP进行虚假身份验证。

源MAC地址必须与接入点关联才能接受数据包。如果我们注入一个未关联的源MAC地址,则接入点会忽略数据包,并以明文发送“DeAuthentication”数据包。现在AP正在忽略我们所有注入的数据包,这就是为什么没有新的IV被创建。

注入失败的最大原因是与AP缺乏关联。我们应该记住,通过使用已关联客户端的MAC或使用虚假身份验证,AP必须与我们用于注入的MAC相关联。

使用虚假身份验证与AP关联

其中

-1 表示虚假身份验证。

0 表示重关联时间(秒)。

-e BS1A-Y 表示无线网络的名称。

-a 00:14:6C:7E:40:80 表示接入点的MAC地址。

-h 00:0F:B5:88:AC:82 表示我们网卡的MAC地址。

wlan0 表示无线接口的名称。

故障排除提示

某些配置的接入点允许选定的MAC地址进行关联和连接。在这种情况下,我们必须对允许列表有所了解,并知道其中一个MAC地址。否则,我们将无法成功进行虚假身份验证。当我们尝试进行虚假身份验证时,如果我们怀疑这是问题所在,应该使用以下命令。为此,我们将使用另一个会话并运行以下命令:

在此命令之后,我们将看到类似这样的错误消息:

我们可以随时使用tcpdump确认我们是否可能已关联,我们也可以查看数据包。为此,我们将使用另一个会话,然后运行以下命令:

运行此命令后,我们将获得的tcpdump错误消息如下:

接入点(00:14:6c:7e:40:80)告知源(00:0F:B5:88:AC:82)未关联。这意味着注入的数据包未被AP处理或接受。我们可以使用:“tcpdump -n -e -s0 -vvv -i ath0 | grep -i DeAuth”来仅选择DeAuth数据包。如果我们想精确挑选数据包,应该调整“DeAuth”短语。

启动aireplay-ng进行ARP请求重放模式

此步骤非常有用,如果我们想在一种模式下启动aireplay-ng,它会监听ARP请求并将其重新注入网络。AP通常会广播ARP请求数据包并生成新的IV。这就是为什么我们选择ARP请求数据包。再次,我们的主要目标是以更少的时间获得大量的IV。

现在我们将打开另一个控制台,然后输入以下命令:

上述命令将开始监听ARP请求,并且当它听到一个请求时,aireplay-ng会立即开始注入。长时间等待后,如果屏幕显示“get 0 ARP requests”,请参阅生成ARP主题以生成ARP。

当我们注入ARP请求时,我们将得到以下响应:

使用我们的airodump-ng屏幕,我们可以确认我们正在注入。数据包数量正在快速增加。#s表示不错的数量。数据包的良好数量取决于多种因素。每秒典型的数据包范围是300到400。

故障排除提示

当我们收到诸如**“Got a deauth/disassoc packet. Is the source mac associated?”**之类的消息时,这表明我们与AP的关联已丢失。它们将忽略我们所有注入的数据包。现在我们应该回到虚假身份验证步骤,然后我们将成功与AP关联。

运行aircrack-ng获取WEP密钥

现在我们将使用先前收集的IV来获取WEP密钥。如果我们是为了学习目的并想加快破解过程,我们可以在接入点上使用64位WEP密钥。在这种情况下,我们可以通过包含“-n 64”来限制对64位密钥的检查。我们将看到两种方法。这两种方法都推荐用于学习目的。与FMS/Korek方法相比,如果我们尝试这两种方法,我们会发现WEP密钥通过PTW方法能够快速且成功地确定。只有通过ARP请求/重放数据包,此PTW方法才能成功工作。使用airodump-ng,我们捕获完整数据包。这意味着我们不会使用“--ivs”选项。

现在我们将使用另一个控制台,然后输入以下命令:

其中

-b 00:14:6C:7E:40:80 用于根据我们的兴趣选择一个接入点。我们已经应用了过滤器来仅为此接入点捕获数据。这就是为什么这是可选的。

output*.cap 用于收集所有以“.cap”结尾且以“output”开头的文件。

现在我们将使用FMS/Korek方法。为此,我们将使用另一个控制台会话,然后输入以下命令:

其中

-K 用于调用FMS/Korek方法。

-b 00:14:6C:7E:40:80 用于根据我们的兴趣选择一个接入点。我们已经应用了过滤器来仅为此接入点捕获数据。这就是为什么这是可选的。

output*.cap 用于收集所有以“.cap”结尾且以“output”开头的文件。

对于FMS/Korek攻击,如果我们使用的是1.0-rc1,则添加“-k”选项。1.0-rcl 默认使用PTW。

在生成数据包时,我们可以运行此命令。WEP密钥将在短时间内显示并计算。对于64位密钥,我们需要大约250,000个IV,对于128位密钥,我们需要1,500,000个IV。在PTW攻击时,如果我们有64位密钥,我们需要大约20,000个数据包,如果我们有128位密钥,我们需要40,000到85,000个数据包。

生成ARP

我们必须至少收到一个ARP数据包,这样本教程才能工作。为了在我们的家庭网络上生成ARP数据包,最简单的方法如下。

我们将使用一台无线或有线计算机,ping一个在本机局域网中不存在的IP。当一台PC通过以太网电缆连接到我们的局域网时,它被称为有线PC。假设我们的家庭局域网的地址空间是192.168.1.1到192.168.1.254。网络设备被分配了1到254之间的某个IP,所有剩余的IP都将由我们ping。假设我们ping 192.168.1.213,因为这个IP没有被使用。由于这个原因,无线AP将广播一个ARP,然后,这将用于aireplay-ng来启动数据包的重新注入。