5. 作为替代,你可以使用`aireplay-ng `来发送接触验证封包给所有代表`Wireless Lab`接入点的路由器,通过输入:` aireplay-ng -0 5 -a <mac> --ignore-negative mon0`,其中`<mac>`是路由器的 MAC 地址。`-0`选项用于选则接触验证攻击,`5`是要发送的封包数量。最后,`-a`指定了所定位的接入点的 MAC 地址。
MAC 过滤器是个古老的技巧,用于验证和授权,它们根植于有线世界。不幸的是,它们在无线世界中变得十分糟糕。
最基本的想法就是基于客户端的 MAC 地址进行验证。MAC 过滤器是为网络接口分配的一段识别代码,路由器能够检查这个代码并将其与允许的 MAC 列表进行比较。允许的 MAC 地址列表由网络管理员维护,储存于接入点中。我们现在要看看绕过 MAC 过滤器有多容易。
### 实践时间 -- 绕过 MAC 过滤器
让我们遵循以下指南来开始:
1. 让我们首先配置我们的接入点来使用 MAC 过滤,之后添加受害者笔记本的客户端 MAC 地址。我的路由器上的设置页面是这样:
![](img/3-2-1.jpg)
2. 一旦开启了 MAC 过滤,只有允许的 MAC 地址能够成功被接入点验证。如果我们尝试从不在 MAC 地址白名单中的机器连接接入点,就会失败。
3. 在这个场景背后,接入点发送验证失败的消息给客户端。封包记录像这样:
![](img/3-2-2.jpg)
4. 为了绕过 MAC 过滤器,我们可以使用`airodump-ng`来寻找连接到接入点的客户端 MAC 地址。我们可以通过输入` airodumpng -c 11 -a --bssid <mac> mon0 `命令。通过指定`bssid`命令,我们只监控接入点,这是我们所感兴趣的。`-c 11`命令将频道设置为接入点所在的`11`。`-a`命令确保在`airodump-NG `输出的客户端部分中,只展示相关客户端,以及到接入点的连接。这会向我们展示所有和接入点相关的客户端 MAC 地址。
![](img/3-2-3.jpg)
5. 一旦我们找到了白名单中的客户端 MAC 地址,我们可以使用`macchanger`工具来修改客户端的 MAC 地址,Kali自带这个工具。你可以使用` macchanger –m <mac> wlan0 `命令来完成。你使用`-m`命令指定的 MAC 地址就是`wlan0`接口的新 MAC 地址。
接入点拥有最大客户端数量,超过之后它们就会拒绝连接。通过为`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。最后我们可以获得验证而不需要知道真实的密钥。