WIFI WPA/WPA2协议:深入解析与实践
1. WPA/WPA2 协议
1.1 监听 Wi-Fi 流量
解析 WPA/WPA2 的第一步是监听 Wi-Fi 流量,捕获设备与接入点之间的 4 次握手数据。然而,设备通常不会频繁连接或重新连接,为了加速过程,攻击者会发送断开认证包 (Deauthentication Packet),强制客户端重新连接,从而捕获新的握手数据。
1.2 四次握手详解
四次握手是设备与路由器确认密码正确性的重要过程。其基本步骤如下:
-
路由器发送挑战信息: 路由器向客户端发送一个挑战信息,要求其证明拥有正确的网络密码 (PSK)。
-
客户端加密响应: 客户端使用 PSK 加密挑战信息,并将加密结果发送回路由器。
-
路由器验证并确认: 路由器验证客户端的加密响应,确认其拥有正确的 PSK,然后发送自己的确认信息。
-
最终验证并建立连接: 客户端验证路由器的确认信息,双方完成握手,建立加密连接。
尽管四次握手过程中并不会直接暴露 PSK,但握手数据中包含的信息足以用于离线暴力破解或字典攻击。
1.3 准备工作
在攻击设备上执行以下命令,确定可用的无线网络设备:
sudo iw dev
输出示例:
glitch@wifi:~$ iw dev
phy#2Interface wlan2ifindex 5wdev 0x200000001addr 02:00:00:00:02:00type managedtxpower 20.00 dBm
我们可以使用设备/接口wlan2,并且从此输出中可以获取两个对我们有用的重要细节:
addr
是我们设备的MAC/BSSID。BSSID代表基本服务集标识符,它是无线设备或接入点物理地址的唯一标识符。type
显示为managed 。这是大多数 Wi-Fi 设备(如笔记本电脑、手机等)连接 Wi-Fi 网络时使用的标准模式。在 managed 模式下,设备充当客户端,连接到接入点以加入网络。还有另一种模式称为监控模式monitor mode,我们将很快讨论。
1.4 扫描 Wi-Fi 网络
现在,我们想使用我们的设备扫描附近的 Wi-Fi 网络wlan2。我们可以使用
sudo iw dev wlan2 scan
dev wlan2指定您要使用的无线设备,并scan告诉iw扫描该区域以查找可用的 Wi-Fi 网络。
输出示例:
glitch@wifi:~$ sudo iw dev wlan2 scan
BSS 02:00:00:00:00:00(on wlan2)last seen: 520.388s [boottime]TSF: 1730575383370084 usec (20029d, 19:23:03)freq: 2437beacon interval: 100 TUscapability: ESS Privacy ShortSlotTime (0x0411)signal: -30.00 dBmlast seen: 0 ms agoInformation elements from Probe Response frame:SSID: MalwareM_APSupported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 DS Parameter set: channel 6ERP: Barker_Preamble_ModeExtended supported rates: 24.0 36.0 48.0 54.0 RSN: * Version: 1* Group cipher: CCMP* Pairwise ciphers: CCMP* Authentication suites: PSK* Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)Supported operating classes:* current operating class: 81Extended capabilities:* Extended Channel Switching* Operating Mode Notification
这里有很多信息需要剖析,但以下是表明该设备是接入点的最重要的细节:
- 设备的BSSID和SSID分别为和。由于显示了SSID,这意味着设备正在通告网络名称,接入点会这样做以允许客户端发现并连接到网络。
02:00:00:00:00:00 MalwareM_AP
- RSN(Robust Security Network)的存在表明网络正在使用 WPA2,因为 RSN 是 WPA2 标准的一部分。WPA2 网络通常使用 RSN 来定义加密和身份验证设置。
Group and Pairwise ciphers
是 CCMP 。带有密码块链接消息认证码协议 (CCMP) 的计数器模式是 WPA2 使用的加密方法。- RSN 里面的值
Authentication suites
是PSK,表示这是一个 WPA2-Personal 网络,使用共享密码进行身份验证。 - 另一个重要细节是
DS Parameter set
显示通道 6 的值。就 Wi-Fi 而言,通道是指更宽泛的 Wi-Fi 频谱内允许无线设备相互通信的特定频率范围。Wi-Fi 有多种通道,它们都有助于在不同的频段分配网络流量,从而减少干扰。最常见的两种 Wi-Fi 通道是 2.4 GHz 和 5GHz。在 2.4GHz 频段,通常使用通道 1、6 和 11,因为它们不重叠,可最大限度地减少干扰。在 5 GHz频段,有更多可用通道,允许更多网络共存而不会受到干扰。
现在是时候讨论我们可以在某些无线设备上使用的另一种模式:监控模式。这是一种主要用于网络分析和安全审计的特殊模式。在此模式下,Wi-Fi 接口会监听特定信道上的所有无线流量,无论它是否定向到设备。它会被动捕获范围内的所有网络流量以进行分析,而无需加入网络。我们想检查我们的wlan2
接口是否可以使用监控模式。为此,我们将运行命令sudo ip link set dev wlan2 down
关闭我们的设备。然后我们将使用 切换模式以sudo iw dev wlan2 set type monitor
将 wlan2 更改为监控模式。然后使用 重新打开我们的设备sudo ip link set dev wlan2 up
。
glitch@wifi:~$ sudo ip link set dev wlan2 down
glitch@wifi:~$ sudo iw dev wlan2 set type monitor
glitch@wifi:~$ sudo ip link set dev wlan2 up
我们可以使用命令确认我们的接口处于监控模式sudo iw dev wlan2 info
。
输出示例:
glitch@wifi:~$ sudo iw dev wlan2 info
Interface wlan2ifindex 5wdev 0x200000001addr 02:00:00:00:02:00type monitorwiphy 2channel 1 (2412 MHz), width: 20 MHz (no HT), center1: 2412 MHztxpower 20.00 dBm
2. 结论
WPA/WPA2 虽然安全性较高,但仍存在被破解的可能性。