This commit is contained in:
wizardforcel 2016-10-21 20:18:51 +08:00
parent 7b66759d9f
commit e872ed0b87
1 changed files with 120 additions and 1 deletions

121
ch3.md
View File

@ -100,6 +100,125 @@ MAC 过滤器是个古老的技巧,用于验证和授权,它们根植于有
### 刚刚发生了什么?
我们使用`airodump-ng `监控了流量,找到了连接到无线网络的正常用户的 MAC 地址。之后我们可以使用`macchanger `工具来修改无线网卡的 MAC 地址,与客户端保持一致。这会欺骗接入点,使其相信我们是正常耳朵客户端,它会允许我们访问它的无线网络。
我们使用`airodump-ng `监控了空气,找到了连接到无线网络的正常用户的 MAC 地址。之后我们可以使用`macchanger `工具来修改无线网卡的 MAC 地址,与客户端保持一致。这会欺骗接入点,使其相信我们是正常耳朵客户端,它会允许我们访问它的无线网络。
我们鼓励你探索`airodump-NG`工具的不同选项,通过访问官网的文档:` http://www.aircrack-ng.org/doku. php?id=airodump-ng`。
## 3.3 开放验证
术语“开放验证”是个误解,因为它实际上不提供任何验证。当接入点配置为使用开放验证的时候,所有连接它的客户端都可以成功验证。
我们现在使用开放验证来获得验证并连接到接入点。
### 实践时间 -- 绕过开放验证
让我们现在看看如何绕过开放验证。
1. 我们首先将我们的接入点` Wireless Lab`设置为开放验证。在我的接入点中,这可以通过将`Security Mode`设为`Disable Security`来轻易完成。
![](img/3-3-1.jpg)
2. 我们之后使用`iwconfig wlan0 essid Wireless Lab`命令来连接到这个接入点,之后验证我们到接入点的连接是否成功。
3. 要注意我们没有提供任何用户名/密码来通过开放验证。
### 刚刚发生了什么?
这可能是目前为止最简单的联系了。你可以看到,在连接到开放验证网络和连接到接入点时没有任何障碍。
## 3.4 共享密钥验证
共享密钥验证使用例如 WEP 的共享密钥来验证客户端。信息的交换展示在这张图中:
![](img/3-4-1.jpg)
无线客户端发送验证请求给接入点,它会回复一个 challenge。现在客户端需要使用共享密钥加密这个 challenge并发送ui接入点接入点解密它来检查是否它可以恢复原始的 challenge 文本。如果成功了,客户端就验证成功,如果没有,它会发送验证失败的信息。
这里的安全问题是,攻击者可以被动监听整个通信,通过嗅探空气来访问 challenge 的纯文本和加密文本。他可以使用 XOR 操作来获取密钥流。密钥流可以用于加密任何由接入点发送的未来的 challenge而不需要知道真实的密钥。
这种共享验证的常见形式就是 WEP或者无线等效协议。它易于破解并且由数不清的工具用于使破解 WEP 网络变得容易。
这个练习中,我们会了解如何嗅探空气来获取 challenge 或者加密后的 challenge获取密钥流使用它来验证接入点而不需要共享密钥。
### 实践时间 -- 绕过共享验证
绕过共享验证比上一个练习更加困难,所以仔细遵循下列步骤:
1. 让我们首先为我们的` Wireless Lab `网络建立共享验证。通过将安全模式设置为 WEP ,将验证设置为`Shared Key`,我们已经在我的接入点上完成了设置。
![](img/3-4-2.jpg)
2. 让我们现在将正常的客户端连接到该网络,使用我们在第一步设置的共享密钥。
3. 为了绕过共享密钥验证,我们首先需要嗅探接入点和客户端之间的封包。但是,我们也需要记录整个共享密钥的交换。为了完成它,我们使用`airodump-ng `工具的` airodump-ng mon0 -c 11 --bssid <mac> -w keystream `命令。`-w`选项在这里是新增的,让 Airodump-NG 在`keystream`为前缀的文件中储存信息。顺便,在不同文件中储存不同的封包捕获的会话是个好主意。这允许你在很长时间之后分析它们。
![](img/3-4-3.jpg)
4. 我们可以等待正常客户端连接到接入点,或者使用之前用过的解除验证的技术强迫重新连接。一旦客户端连接并且工项密钥验证获得成功,` airodump-ng`就会通过嗅探空气自动捕获这个改变。当`AUTH `列出现了`WEP`,就说明捕获成功。
5. 捕获到的密钥流储存在当前目录`keystream`为前缀的文件中。我这里的文件名称是`keystream-01-00-2191-D2-8E-25.xor`。
6. 为了伪造共享木妖验证,我们使用`aireplay-ng`工具。我们执行` aireplay-ng -1 0 -e "Wireless Lab" -y keystream01-00-21-91-D2-8E-25.xor -a <mac> -h AA:AA:AA:AA:AA:AA mon0`命令。这个`aireplay-ng`的命令使用我们之前获得的密钥流,并尝试验证 SSID 为 ` Wireless Lab`MAC 地址为`address 00:21:91:D2:8E:25`的接入点。启动 WIreshark并通过`wlan.addr == AA:AA:AA:AA:AA:AA`过滤器嗅探所有感兴趣的封包。我们可以使用 Wireshark 来验证它。你应该能在 Wireshark 的界面上看到记录,像这样:
![](img/3-4-4.jpg)
7. 第一个封包是验证请求,由`aireplay-ng `工具发给接入点:
![](img/3-4-5.jpg)
8. 第二个封包由接入点发给客户端的 challenge 文本组成,像这样:
![](img/3-4-6.jpg)
9. 第三个封包中,这个工具向接入点发送了加密的 challenge。
![](img/3-4-7.jpg)
0. 由于`aireplay-ng`工具将导出的密钥流用于江米,验证会成功,接入点会在第四个封包中发送成功消息。
![](img/3-4-8.jpg)
1. 在验证成功过之后,这个工具伪造了接入点的关联,像这样:
![](img/3-4-9.jpg)
2. 如果你在你的接入点管理界面中的无线日志中查看,你会看到 MAC 地址为` AA:AA:AA:AA:AA:AA `的客户端建立了连接。
![](img/3-4-9.jpg)
### 刚刚发生了什么?
我们成功从共享验证交换中导出了密钥流,并且使用它来伪造接入点的验证。
### 试一试 -- 填满接入点的表格
接入点拥有最大客户端数量,超过之后它们就会拒绝连接。通过为`aireplay-ng`编写一个小型的包装器,我们就可以自动发送数百个连接请求,从随机的 MAC 地址发往接入点。这会填满路由器的内部表格一旦达到了最大客户端数量接入点会停止接受新的连接。这通常叫做拒绝服务DoS工具可以强制路由器重启或使其失去功能。这也可以导致所有无线客户端失去连接以及不能使用授权后的网络。
## 小测验 -- WLAN 验证
Q1 如果强迫无线客户端重新连接到接入点?
1. 发送解除验证的封包
2. 重启客户端
3. 重启接入点
4. 以上全部
Q2 开放验证是干什么的?
1. 提供了适当的安全
2. 不提供任何阿暖
3. 需要使用加密
4. 以上都不是
Q3 如何破解共享密钥验证?
1. 从封包中导出密钥流
2. 导出加密密钥
3. 向接入点发送解除验证的封包
4. 重启接入点
## 总结
这一章中,我们了解了 WLAN 验证。隐藏 SSID 是“隐藏式安全”的策略很容易被攻破。MAC 地址过滤器不能够提供任何安全,因为 MAC 地址可以从无线封包中嗅探,而 MAC 地址在封包中毫无加密。开放验证不提供任何实际的验证。共享密钥验证的破解有些麻烦,但是,使用了正确的工具,我们可以导出和储存密钥流,我们可以使用它来回应之后由接入点发送的所有 challenge。最后我们可以获得验证而不需要知道真实的密钥。
下一章中,我们会看一看 WLAN 加密机制的不同 -- WEPWPA 和 WPA2 -- 并看一看其中的不安全性。