首页 > 安全 > 系统安全 >

Kali Linux无线渗透测试入门指南 第三章 绕过 WLAN 身份验证

2016-11-14

安全的错觉比不安全更加糟糕,因为你不可能为面对被黑的可能性做准备。WLAN 的身份验证模式可能很弱,可以被破解和绕过。这一章中,我们会查看一些 WLAN 中所使用的基本的身份验证模式,以及学习如何破解它们。

安全的错觉比不安全更加糟糕,因为你不可能为面对被黑的可能性做准备。

WLAN 的身份验证模式可能很弱,可以被破解和绕过。这一章中,我们会查看一些 WLAN 中所使用的基本的身份验证模式,以及学习如何破解它们。

3.1 隐藏的 SSID

在默认的配置模式下,所有接入点都在信标帧中发送它们的 SSID。这让附近的客户端能够轻易发现它们。隐藏 SSID 是个配置项,其中接入点并不在信标帧中广播它的 SSID。因此,只有知道接入点 SSID 的客户端可以连接它。

不幸的是,这个方法不能提供可靠的安全,但是网络管理员认为它很安全。隐藏 SSID 不应该被看作安全手段。我们现在来看看如何发现隐藏的 SSID。

实践时间 – 发现隐藏的 SSID

执行下列指南以开始:

使用 Wireshark,如果我们监控Wireless Lab网络中的信标帧信标帧,我们就能够以纯文本查看 SSID。你应该能看到信标真,像这样:

\

配置你的接入点来隐藏Wireless Lab网络的 SSID。这个配置项在不同接入点中可能不同。这里,我需要检查Visibility Status选项的Invisible选项,像这样:

\

现在如果你查看 Wireshark 的记录,你会发现Wireless Lab的 SSID从信标帧中消失了。这是隐藏 SSID 所做的事情:

\

为了绕过信标帧,我们首先使用被动技巧来等待正常客户端连接到接入点。这会生成探测请求和响应,它包含网络的 SSID,从而揭示它的存在。

\

作为替代,你可以使用aireplay-ng来发送接触验证封包给所有代表Wireless Lab接入点的路由器,通过输入:aireplay-ng -0 5 -a --ignore-negative mon0,其中是路由器的 MAC 地址。-0选项用于选则接触验证攻击,5是要发送的封包数量。最后,-a指定了所定位的接入点的 MAC 地址。

\

接触验证的过程会强迫所有正常客户端断开连接并重连。为接触验证的封包添加个过滤来单独查看它们是个好主意。

\

来自接入点的探测响应最后会发现 SSID。这些封包会出现在 Wireshark 中。一旦正常客户端连接回来了,我们就可以通过探针的请求和响应帧来查看隐藏的 SSID。可以使用过滤器(wlan.bssid == 00:21:91:d2:8e:25) && !(wlan.fc.type_subtype == 0x08)来监控所有发往或来自接入点的非信标封包。&&符号代表逻辑 AND 操作符,!符号代表逻辑 NOT 操作符:

\

刚刚发生了什么?

即使 SSID 隐藏而且不广播,当正常的客户端尝试连接到接入点时,它们就交换了探测请求和响应的封包。这些封包包含接入点的 SSID。由于这些封包没有加密,它们可以被非常轻易地嗅探来发现SSID 。

我们在之后的章节中会出于其它目的,例如跟踪,涉及到探测请求。

许多情况下,所有客户端可能已经链接到接入点,并且在 Wireshark 记录中没有探测请求或响应的封包。这里,我们可以强制客户端断开接入点的链接,通过发送伪造的解除验证封包。这些封包会强迫客户端重新连接到接入点上,从而获取 SSID。

试一试 – 选择解除验证

在之前的练习中,我们广播了解除验证封包来强制所有无线客户端重新连接。尝试验证如何使用aireplay-ng工具,选择性对某个客户端执行它。

要注意,即使我们使用 Wireshark 演示了许多概念,但也可以使用其它工具来完成攻击,例如aircrack-ng套件。我们推荐你探索整个 aircrack-NG 套件以及其它位于官网的文档:http://www.aircrack-ng.org。

3.2 MAC 过滤器

MAC 过滤器是个古老的技巧,用于验证和授权,它们根植于有线世界。不幸的是,它们在无线世界中变得十分糟糕。

最基本的想法就是基于客户端的 MAC 地址进行验证。MAC 过滤器是为网络接口分配的一段识别代码,路由器能够检查这个代码并将其与允许的 MAC 列表进行比较。允许的 MAC 地址列表由网络管理员维护,储存于接入点中。我们现在要看看绕过 MAC 过滤器有多容易。

实践时间 – 绕过 MAC 过滤器

让我们遵循以下指南来开始:

让我们首先配置我们的接入点来使用 MAC 过滤,之后添加受害者笔记本的客户端 MAC 地址。我的路由器上的设置页面是这样:

\

一旦开启了 MAC 过滤,只有允许的 MAC 地址能够成功被接入点验证。如果我们尝试从不在 MAC 地址白名单中的机器连接接入点,就会失败。

在这个场景背后,接入点发送验证失败的消息给客户端。封包记录像这样:

\

为了绕过 MAC 过滤器,我们可以使用airodump-ng来寻找连接到接入点的客户端 MAC 地址。我们可以通过输入airodumpng -c 11 -a --bssid mon0命令。通过指定bssid命令,我们只监控接入点,这是我们所感兴趣的。-c 11命令将频道设置为接入点所在的11。-a命令确保在airodump-NG输出的客户端部分中,只展示相关客户端,以及到接入点的连接。这会向我们展示所有和接入点相关的客户端 MAC 地址。

\

一旦我们找到了白名单中的客户端 MAC 地址,我们可以使用macchanger工具来修改客户端的 MAC 地址,Kali自带这个工具。你可以使用macchanger –m wlan0命令来完成。你使用-m命令指定的 MAC 地址就是wlan0接口的新 MAC 地址。

\

你可以看到,将 MAC 地址修改为白名单客户端之后,我们现在能够连接接入点了。

刚刚发生了什么?

我们使用airodump-ng监控了空气,找到了连接到无线网络的正常用户的 MAC 地址。之后我们可以使用macchanger工具来修改无线网卡的 MAC 地址,与客户端保持一致。这会欺骗接入点,使其相信我们是正常耳朵客户端,它会允许我们访问它的无线网络。

我们鼓励你探索airodump-NG工具的不同选项,通过访问官网的文档:http://www.aircrack-ng.org/doku. PHP?id=airodump-ng。

3.3 开放验证

术语“开放验证”是个误解,因为它实际上不提供任何验证。当接入点配置为使用开放验证的时候,所有连接它的客户端都可以成功验证。

我们现在使用开放验证来获得验证并连接到接入点。

实践时间 – 绕过开放验证

让我们现在看看如何绕过开放验证。

我们首先将我们的接入点Wireless Lab设置为开放验证。在我的接入点中,这可以通过将Security Mode设为Disable Security来轻易完成。

\

我们之后使用iwconfig wlan0 essid Wireless Lab命令来连接到这个接入点,之后验证我们到接入点的连接是否成功。

要注意我们没有提供任何用户名/密码来通过开放验证。

刚刚发生了什么?

这可能是目前为止最简单的练习了。你可以看到,在连接到开放验证网络和连接到接入点时没有任何障碍。

3.4 共享密钥验证

共享密钥验证使用例如 WEP 的共享密钥来验证客户端。信息的交换展示在这张图中:

\

无线客户端发送验证请求给接入点,它会回复一个 challenge。现在客户端需要使用共享密钥加密这个 challenge,并发送ui接入点,接入点解密它来检查是否它可以恢复原始的 challenge 文本。如果成功了,客户端就验证成功,如果没有,它会发送验证失败的信息。

这里的安全问题是,攻击者可以被动监听整个通信,通过嗅探空气来访问 challenge 的纯文本和加密文本。他可以使用 XOR 操作来获取密钥流。密钥流可以用于加密任何由接入点发送的未来的 challenge,而不需要知道真实的密钥。

这种共享验证的常见形式就是 WEP,或者无线等效协议。它易于破解,并且由数不清的工具用于使破解 WEP 网络变得容易。

这个练习中,我们会了解如何嗅探空气来获取 challenge 或者加密后的 challenge,获取密钥流,使用它来验证接入点,而不需要共享密钥。

实践时间 – 绕过共享验证

绕过共享验证比上一个练习更加困难,所以仔细遵循下列步骤:

让我们首先为我们的Wireless Lab网络建立共享验证。通过将安全模式设置为 WEP ,将验证设置为Shared Key,我们已经在我的接入点上完成了设置。

\

让我们现在将正常的客户端连接到该网络,使用我们在第一步设置的共享密钥。

为了绕过共享密钥验证,我们首先需要嗅探接入点和客户端之间的封包。但是,我们也需要记录整个共享密钥的交换。为了完成它,我们使用airodump-ng工具的airodump-ng mon0 -c 11 --bssid -w keystream命令。-w选项在这里是新增的,让 Airodump-NG 在keystream为前缀的文件中储存信息。顺便,在不同文件中储存不同的封包捕获的会话是个好主意。这允许你在很长时间之后分析它们。

\

我们可以等待正常客户端连接到接入点,或者使用之前用过的解除验证的技术强迫重新连接。一旦客户端连接并且工项密钥验证获得成功,airodump-ng就会通过嗅探空气自动捕获这个改变。当AUTH列出现了WEP,就说明捕获成功。

捕获到的密钥流储存在当前目录keystream为前缀的文件中。我这里的文件名称是keystream-01-00-2191-D2-8E-25.xor。

为了伪造共享密钥验证,我们使用aireplay-ng工具。我们执行aireplay-ng -1 0 -e "Wireless Lab" -y keystream01-00-21-91-D2-8E-25.xor -a -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 的界面上看到记录,像这样:

\

第一个封包是验证请求,由aireplay-ng工具发给接入点:

\

第二个封包由接入点发给客户端的 challenge 文本组成,像这样:

\

第三个封包中,这个工具向接入点发送了加密的 challenge。

\

由于aireplay-ng工具将导出的密钥流用于江米,验证会成功,接入点会在第四个封包中发送成功消息。

\

在验证成功过之后,这个工具伪造了接入点的关联,像这样:

\

如果你在你的接入点管理界面中的无线日志中查看,你会看到 MAC 地址为AA:AA:AA:AA:AA:AA的客户端建立了连接。

\

刚刚发生了什么?

我们成功从共享验证交换中导出了密钥流,并且使用它来伪造接入点的验证。

试一试 – 填满接入点的表格

接入点拥有最大客户端数量,超过之后它们就会拒绝连接。通过为aireplay-ng编写一个小型的包装器,我们就可以自动发送数百个连接请求,从随机的 MAC 地址发往接入点。这会填满路由器的内部表格,一旦达到了最大客户端数量,接入点会停止接受新的连接。这通常叫做拒绝服务(DoS)工具,可以强制路由器重启或使其失去功能。这也可以导致所有无线客户端失去连接以及不能使用授权后的网络。

小测验 – WLAN 验证

Q1 如何强迫无线客户端重新连接到接入点?

发送解除验证的封包 重启客户端 重启接入点 以上全部

Q2 开放验证是干什么的?

提供了适当的安全 不提供任何阿暖 需要使用加密 以上都不是

Q3 如何破解共享密钥验证?

从封包中导出密钥流 导出加密密钥 向接入点发送解除验证的封包 重启接入点总结

这一章中,我们了解了 WLAN 验证。隐藏 SSID 是“隐藏式安全”的策略,很容易被攻破。MAC 地址过滤器不能够提供任何安全,因为 MAC 地址可以从无线封包中嗅探,而 MAC 地址在封包中毫无加密。开放验证不提供任何实际的验证。共享密钥验证的破解有些麻烦,但是,使用了正确的工具,我们可以导出和储存密钥流,我们可以使用它来回应之后由接入点发送的所有 challenge。最后我们可以获得验证而不需要知道真实的密钥。

下一章中,我们会看一看 WLAN 加密机制的不同 – WEP,WPA 和 WPA2 – 并看一看其中的不安全性。

安全的错觉比不安全更加糟糕,因为你不可能为面对被黑的可能性做准备。

WLAN 的身份验证模式可能很弱,可以被破解和绕过。这一章中,我们会查看一些 WLAN 中所使用的基本的身份验证模式,以及学习如何破解它们。

相关文章
最新文章
热点推荐