1. 测试的环境
接收端使用的环境是Linux
操作系统,使用的服务是wpa_supplicant
。
无线网络的搭建,使用了多种无线网络,包括:
Cisco
服务器搭建的专用测试网络(包括普通网络与企业级网络)- 办公场所的公开网络和内部网络(包括普通网络与企业级网络)
- 多个普通个人使用路由器网络(包含隐藏网络)
- 手机热点
2. 扫描到网络展示
因为扫描到的网络中存在bssid
和ssid
的信息,下面为了将这些信息脱敏,均使用了一对一名称的替换。
使用wpa_cli
来扫描(wpa_cli scan
)和展示相应(wpa_cli scan_results
)的网络,展示如下:
bssid / frequency / signal level / flags / ssid
00:00:00:00:5c:5a 5180 -43 [ESS] NETTESTAR34-5G
00:00:00:00:5c:5b 2422 -39 [WPA2-PSK-CCMP][ESS] \x00\x00\x00\x00\x00\x00\x00\x00
00:00:01:00:85:50 2462 -59 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:01:00:85:51 2462 -58 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:02:00:8c:50 2462 -62 [WPA2-PSK-CCMP][ESS] TEST-PSK
00:00:02:00:8c:54 2462 -63 [WPA2-EAP-CCMP][ESS] TEST-TLS
00:00:02:00:8c:51 2462 -63 [WPA2-EAP-CCMP][ESS] TEST-PEAP
00:00:02:00:68:b0 2412 -61 [WPA2-PSK-CCMP][ESS] TEST-PSK
00:00:02:00:68:b3 2412 -59 [WPA2-EAP-CCMP][ESS] TEST-TTLS
00:00:02:00:68:b4 2412 -60 [WPA2-EAP-CCMP][ESS] TEST-TLS
00:00:02:00:68:b1 2412 -61 [WPA2-EAP-CCMP][ESS] TEST-PEAP
00:00:02:00:68:b2 2412 -62 [WPA2-PSK-CCMP][ESS] TEST-admin
00:00:02:00:68:b6 2412 -62 [WPA2-EAP-CCMP][ESS] TEST-802.11r-peap
00:00:02:00:68:bb 5765 -59 [WPA2-EAP-CCMP][ESS] TEST-TLS
00:00:02:00:68:bf 5765 -59 [WPA2-PSK-CCMP][ESS] TEST-PSK
00:00:02:00:68:be 5765 -60 [WPA2-EAP-CCMP][ESS] TEST-PEAP
00:00:02:00:68:bd 5765 -60 [WPA2-PSK-CCMP][ESS] TEST-admin
00:00:02:00:68:bc 5765 -59 [WPA2-EAP-CCMP][ESS] TEST-TTLS
00:00:03:00:a1:6f 5805 -75 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:02:00:68:b9 5765 -60 [WPA2-EAP-CCMP][ESS] TEST-802.11r-peap
00:00:03:00:a1:6e 5805 -75 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:04:00:24:fe 5180 -74 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:04:00:31:a0 2437 -69 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:04:00:31:a1 2437 -67 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:05:00:7b:c1 2437 -75 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:05:00:7b:c0 2437 -77 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:04:00:24:ff 5180 -74 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:06:00:20:c1 2437 -87 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:04:00:31:ae 5320 -54 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:02:00:8c:5c 5320 -56 [WPA2-EAP-CCMP][ESS] TEST-TTLS
00:00:02:00:8c:5d 5320 -56 [WPA2-PSK-CCMP][ESS] TEST-admin
00:00:02:00:8c:5e 5320 -55 [WPA2-EAP-CCMP][ESS] TEST-PEAP
00:00:02:00:8c:5f 5320 -55 [WPA2-PSK-CCMP][ESS] TEST-PSK
00:00:02:00:8c:5b 5320 -54 [WPA2-EAP-CCMP][ESS] TEST-TLS
00:00:04:00:31:af 5320 -56 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:02:00:8c:59 5320 -55 [WPA2-EAP-CCMP][ESS] TEST-802.11r-peap
00:00:02:00:8c:52 2462 -63 [WPA2-PSK-CCMP][ESS] TEST-admin
00:00:02:00:8c:53 2462 -63 [WPA2-EAP-CCMP][ESS] TEST-TTLS
00:00:02:00:8c:56 2462 -63 [WPA2-EAP-CCMP][ESS] TEST-802.11r-peap
00:00:01:00:85:5e 5180 -40 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:01:00:85:5f 5180 -40 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:07:00:e2:94 2437 -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]
00:00:06:00:20:c0 2437 -86 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
00:00:05:00:7d:81 2462 -85 [WPA2-PSK-CCMP][ESS] TEST-Net
00:00:03:00:a1:60 2462 -85 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS] TEST-Net2
在上述列表中,可以观察到没有重复的bssid
,ssid
可以在不同的频率上对应多个bssid
。
每个bssid
对应的是明确的ssid
。
对于隐藏网络,ssid
要么是由多个\x00
组成,要么不存在。
3. 已知的隐藏网络的bssid与ssid对应关系
3.1 取分析样本
在上述列表中,取出一个隐藏网络进行分析,取如下的网络:
00:00:07:00:e2:94 2437 -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]
3.2 设置隐藏网络
通过对wpa_supplicant
中设置其对应的ssid
(例如,叫TEST-A-PSK)以及相关的配置。
再次展示相应的网络,观察存在如下网络:
00:00:07:00:e2:94 2437 -55 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] TEST-A-PSK
可以看到与之前隐藏网络的bssid
是相同的,这个是同一个网络。
3.3 隐藏网络中bssid的展示
这个时候,如果连接网络等,返回的连接事件中包含有bssid
信息,需要通过bssid
在上述扫描结果中找到对用的ssid
。
已知,此bssid
为00:00:07:00:e2:94,使用如下命令:
wpa_cli scan_results | grep 00:00:07:00:e2:94
展示的结果如下:
00:00:07:00:e2:94 2437 -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]
00:00:07:00:e2:94 2437 -55 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] TEST-A-PSK
这时候在结果列表中,将会存在同一个bssid
对应存在两个网络,其中一个是没有ssid
的,另一个展示真正的ssid
。这个情况并没有多次尝试观察,只是表明存在这种状况。
找到真正对于的ssid的方法
分析每行的展示的结果,排除ssid
为空的行,这样就能够获得真正对应的ssid
。