黄玮
(!(wlan.fc.type_subtype==0x24) && !(wlan.fc.type_subtype==0x1d)) && !(ipv6.version==6) && (frame.number==1 || frame.number==12||frame.number>18)
悄无声息的「监听」模式
动手准备好自己的无线「监听」环境
SSID 信息泄露
echo "SA\t\t\tEnc\tType\tESSID"
tshark -r full-connect-public.pcap -Y "wlan.fc.type_subtype==0x08 || wlan.fc.type_subtype==0x04 || wlan.fc.type_subtype==0x05 || wlan.fc.type_subtype==0" -T fields -e frame.number -e wlan.sa -e wlan.fixed.capabilities.privacy -e wlan.fc.type_subtype -e wlan.ssid | sort -u
# 3c:46:d8:59:e8:f4 1 5 OpenWrt
# 3c:46:d8:59:e8:f4 1 8 OpenWrt
# 76:73:c1:7d:ef:a1 4 OpenWrt
# 76:73:c1:7d:ef:a1 1 0 OpenWrt
# 包含中文的 ESSID 怎么办?
echo "SA.Addr\t\t\tEnc\tFC_TS\tESSID"
tshark -r utf8-ssid-full-beacons-public.pcap -Y "wlan.fc.type_subtype==0x08 || wlan.fc.type_subtype==0x04 || wlan.fc.type_subtype==0x05 || wlan.fc.type_subtype==0" -T fields -e wlan.sa -e wlan.fixed.capabilities.privacy -e wlan.fc.type_subtype -e wlan.ssid | sort -u
echo -e "\xe8\xae\xa9\xe6\x88\x91\xe5\xba\xb7\xe5\xba\xb7\xe4\xbd\xa0"
# 让我康康你
#!/usr/bin/env python
import os
import sys
from scapy.all import Dot11Elt, rdpcap
pcap = sys.argv[1]
if not os.path.isfile(pcap):
print('input file does not exist')
exit(1)
pkts = rdpcap(pcap)
i = 0
output = {}
print("{:5} {:18} {:18} {:18}".format("No.", "SA", "Type", "ESSID"))
for pkt in pkts:
i += 1
if not pkt.haslayer(Dot11Elt) or pkt.info.decode('utf8').strip('\x00') == '':
continue
if pkt.subtype == 0: # Association Req
output["{:18} {:18} {:18}".format(pkt.addr2, "Assoc Req", pkt.info.decode('utf8'))] = "{:5} {:18} {:18} {:18}".format(i, pkt.addr2, "Assoc Req", pkt.info.decode('utf8'))
if pkt.subtype == 4: # Probe Req
output["{:18} {:18} {:18}".format(pkt.addr2, "Probe Req", pkt.info.decode('utf8'))] = "{:5} {:18} {:18} {:18}".format(i, pkt.addr2, "Probe Req", pkt.info.decode('utf8'))
if pkt.subtype == 5: # Probe Resp
output["{:18} {:18} {:18}".format(pkt.addr2, "Probe Resp", pkt.info.decode('utf8'))] = "{:5} {:18} {:18} {:18}".format(i, pkt.addr2, "Probe Rep", pkt.info.decode('utf8'))
if pkt.subtype == 8: # Beacon Frame
output["{:18} {:18} {:18}".format(pkt.addr2, "Beacon", pkt.info.decode('utf8'))] = "{:5} {:18} {:18} {:18}".format(i, pkt.addr2, "Beacon", pkt.info.decode('utf8'))
for key in output.keys():
print(output[key])
STA Mac Address 信息泄露
IEEE group recommends random MAC addresses for Wi-Fi security - 2015.7
We have tried it on 802.11n, on 802.11g and 802.11ac," he said. "This is something that can be done by a firmware update, if manufacturers decide to do so.
# 使用「随机」MAC 地址
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
# 使用「指定」MAC 地址 aa:bb:cc:dd:ee:ff
sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff
2015-03-15 wpa_supplicant v2.4
add support for MAC address randomization in scans with nl80211
⚠️ 不仅是 Probe Request 泄露你的行踪
kismet wifi wardriving
SSID 滥用与 Evil SSID
唯一标识 | 长度 | ESSID |
---|---|---|
1byte | 1byte | 0~32byte |
SSID
,此字段设置为0SSID
字段的长度SSID
:人类可读、可识别的无线网络名称
IEEE 802.11-2012
允许字符集范围未定义(未限制)sudo airbase-ng --essid "<script>alert(/hacked/)</script>" -a "23:33:33:33:33:33" -c6 wlan0
Access Point Clone (
Evil Twin
) Traffic Interception – An attacker fools legitimate wireless clients into connecting to the attacker’s own network by placing an unauthorized access point with a stronger signal in close proximity to wireless clients. Users attempt to log into the substitute servers and unknowingly give away passwords and similar sensitive data.
Preferred Network List, PNL
)时,同时保存 {ESSID, BSSID} , 自动连接 历史网络时同时校验 ESSID 和 BSSID
PNL
时,甚至可以同时保存 {ESSID, BSSID, Location} 。超出历史无线网络所在定位范围过大时,拒绝 自动加入 目标无线网络Probe Request
没有得到响应之后,就会认为目标无线网络当前不在附近,后续的 Probe Response
会在一段时间之内被自动忽略MANA Attack
会通过网络嗅探自动保存所有「看到」的 STA
网络连接请求和通信会话形成一个本地 PNL
,后续再收到 Probe Request
后会对本地 PNL
中存在的 STA
发送匹配的 Probe Response
KARMA Attack
的防御措施也能用来防御 MANA Attack
Windows 10 build 1703 之前版本
默认启用的 Wi-Fi Sense
功能会自动连入系统内置的所谓「高质量热点名单中热点」KARMA Attack
KARMA Attack
的防御措施也能用来防御 Lure10 Attack
Beacon Frame
广播Beacon Frame
有 SSID
包含在自己的 PNL
,则会自动发起连接KARMA Attack
KARMA Attack
的防御措施也能用来防御 Known Beacon Attack
Evil Twin
实验指南详见课本OpenWrt
也可以用于 Evil Twin
实验恢复/破解认证凭据
IEEE 802.11
协议的组成部分IEEE
随后在 2004.7.23 的 IEEE 802.11i-2004
报告中同时包含了 TKIP
和 CCMP
WEP
协议Wi-Fi 联盟
接受了 IEEE
的上述相关报告并冠以 WPA2
这个 商业名称 发布Wi-Fi 联盟
提出 TKIP
协议,归类于 WPA
标准的一部分
TKIP
- Temporal Key Integrity Protocol,临时密钥完整性协议WEP
的 临时过渡 解决方案,保留了 WEP
的基本架构与过程方式TKIP
随后由于安全性原因于 2009 年 1 月被 IEEE
废弃IEEE 802.11
标准中,TKIP
已不再视为安全,目前已经处于废弃状态FMS
attack on WEP RC4 - 2001FMS
attack - 2006PTW
Attack - 2007
Klein's attack on RC4
PTK = PRF(PMK||A-nonce||S-nonce|| AP Mac || STA Mac)
PMK = PBKDF(Passphrase, SSID, ssidLength, 4096, 256)
PRF
通常使用 Hash
函数来实现
A-nonce
在 4 次握手消息中的第 1 个 EAP 包;S-nonce
在 4 次握手消息中的第 2 个 EAP 包;AP
的 beacon frame
广播包、STA
和 AP
之间的 probe request
、probe response
、association request
和 association response
中都可以提取到;如果我们可以恢复/破解出上述公式中的 Passphrase 就可以加入目标网线网络
⚠️ 我们在嗅探获得的数据包中并不能得到
PTK
实际上我们能够提取到的是
PTK
的组成部分之一:校验和字段MIC
值
# CCMP
wlan.rsn.pcs.type==4 && wlan.rsn.pcs.count==1
# TKIP
wlan.rsn.pcs.type==2 && wlan.rsn.pcs.count==1
# CCMP && TKIP mixed
wlan.rsn.pcs.type==2 && wlan.rsn.pcs.type==4
# ex: exp/chap0x03/wpa-wpa2-auth-public.pcap
# CCMP 条件下协商使用 AES Cipher, HMAC-SHA1 MIC (2)
# 只看 AP 的 Beacon Frame 中声明的安全信息
wlan_rsna_eapol.keydes.key_info.keydes_version == 2 || (wlan.rsn.pcs.type==4 && wlan.fc.type_subtype==8)
# ex: exp/chap0x03/full-connect-public.pcap
# CCMP 条件下协商使用 AES Cipher, AES-128-CMAC MIC (3)
# 只看 AP 的 Beacon Frame 中声明的安全信息
wlan_rsna_eapol.keydes.key_info.keydes_version == 3 || (wlan.rsn.pcs.type==4 && wlan.fc.type_subtype==8)
# ex: exp/chap0x03/wpa2-tkip-public.pcap
# TKIP 条件下协商使用 RC4 Cipher, HMAC-MD5 MIC (1)
# 只看 AP 的 Beacon Frame 中声明的安全信息
wlan_rsna_eapol.keydes.key_info.keydes_version == 1 || (wlan.rsn.pcs.type==2 && wlan.fc.type_subtype==8)
TKIP
还是 CCMP
加密模式,均是「数据机密性」保护算法,与身份认证无关AP
单向 通过 挑战-响应
模式验证客户端身份,且挑战算法均使用了「消息签名算法」来生成 随机数挑战值
A-nonce
在 4 次握手消息中的第 1 个 EAP 包;S-nonce
在 4 次握手消息中的第 2 个 EAP 包;SSID
, AP MAC
和 STA MAC
TargetPassphrase
代入 PMK
公式
TargetPMK = PBKDF(TargetPassphrase, SSID, ssidLength, 4096, 256)
EAPOL
包中的签名算法信息(例如 AES-128-CMAC
或 HMAC-SHA1
或 HMAC-MD5
)即可计算出对应的 TargetPTK
EAPOL
中的 MIC
算法信息计算出 TargetMIC
与 EAPOL
握手消息中的第 2 个消息中包含的 MIC
进行比较TargetMIC == MIC
,则说明找到了 Passphrase = TargetPassphrase
。否则,继续遍历尝试下一个 TargetPassphrase
,直到找到或穷举完口令字典等等,目标客户端已经连接上目标 AP 了怎么抓取到认证 4 次握手中的前 2 个数据包?
请看稍候即将登场的 Deauthentication Attack
目标 AP 不在附近也能恢复出目标 AP 的入网认证口令?
Evil Twin
去攻击附近曾经连接过 目标 AP
的无线客户端aircrack-ng -w /usr/share/wordlists/rockyou.txt -e OpenWrt exp/chap0x03/full-connect-public.pcap
Steube
公布了一种基于 PMKID 的针对 WPA/WPA2 PSK 认证算法的新型字典攻击方法PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
PMK Name
是固定静态字符串,PMKID
,MAC_AP
和 MAC_STA
均可以通过抓包获得MIC
字典爆破过程原理相同Deauthentication Attack
,客户端意外掉线会引起目标用户警觉逻辑上来说,EAP认证过程发生在请求者(supplicant)和认证服务器(authentication server)之间
物理上来说,AP 扮演了认证过程的中间人
AP
是一个开放访问的接入点Evil Twin
攻击,因为(客户端)没有办法验证 AP
的身份
Evil Twin
攻击针对 WPA/WPA2
企业级认证是否能成功主要取决于「无线网络用户」的安全意识Evil Twin
攻击得手Evil Twin
攻击得手假 AP
搭建的 SSL/TLS 加密隧道,当然可以直接“看到”基于明文口令生成的 挑战-响应应答消息
(单向散列运算值),如上图所示。
Evil Twin
攻击得手asleep
直接 跑字典 爆破出口令。
EAP
实现方法,例如:EAP-MD5, EAP-OTP, EAP-GTC , LEAPEAP
实现方法,例如:PEAP, TTLS, EAP/TLSEAP
认证证书信任链或购买权威CA签发的用于身份认证的证书CN
字段值是否与公司通告一致(只是缓解风险,如果攻击者完全克隆企业的证书信息,则本方法无效)绕过 AP 的 MAC 地址过滤
⚠️ 基于 MAC 地址过滤功能的是「纸老虎」安全机制
脆弱的 WPS 认证机制
Headless
设备静态预分配 PIN
码的弱随机产生算法或静态确定性产生算法《Wi-Fi Simple Configuration Technical Specification》 的 4.3.2 Guidelines and Requirements for PIN values
The recommended length for a manually entered device password is an 8-digit numeric PIN. This length does not provide a large amount of entropy for strong mutual authentication, but the design of the Registration Protocol protects against dictionary attacks on PINs if a fresh PIN or a rekeying key is used each time the Registration Protocol is run.
PIN values should be randomly generated, and they SHALL NOT be derivable from any information that can be obtained by an eavesdropper or active attacker. The device’s serial number and MAC address, for example, are easily eavesdropped by an attacker on the in-band channel. Furthermore, if a device includes multiple PIN values, these values SHALL be cryptographically separate from each other. If, for example, a device includes both a label-based PIN and a Device Password on an integrated NFC Tag, the two Device Passwords SHALL be different and uncorrelated.
WPS
协议中使用到的 PIN
码本身是 定长的 8 位数字 ,理论爆破需要尝试 108 次,即 1亿次;以下内容是为了便于理解,简化说明
STA MAC
加入黑名单封禁一段时间
AP
配置禁用 WPS
功能E-Hash1
、E-Hash2
、PKE
、PKR
都是可以直接通过抓包获得的,剩下的 PSK1
和 PSK2
分别对应 PIN
码前后两半,可被枚举E-S1
和 E-S2
是整个 离线破解 的关键,⼀旦这 2 个参数被计算出来,则对照公式可以离线遍历 PSK-1
和 PSK-2
的可能性验证计算出的 E-Hash1
是否与抓包得到的 E-Hash1
相同E-S1
和 E-S2
在实际设备中的实现算法使用的是 伪随机数发⽣器依赖于存在伪随机数发生器缺陷的特定路由器
回顾 《网络安全》第 4 章 网络监听 一节提到的所有 局域网 攻防手段
Deauthentication Attack
MAC 地址
、类型为 Deauthenticaion(subtype=12)
的 管理帧
不断发往目标 AP
Statistics -> I/O Graphs
sudo aireplay-ng --deauth 1 -a 3C:46:D8:59:E8:F4 -c 62:27:AD:C4:0F:F2 wlan0 --ignore-negative-one
# 18:36:35 Waiting for beacon frame (BSSID: 3C:46:D8:59:E8:F4) on channel 11
# 18:36:43 Sending 64 directed DeAuth (code 7). STMAC: [62:27:AD:C4:0F:F2] [44|39 ACKs]
# sudo aireplay-ng --deauth 1 -a 3C:46:D8:59:E8:F4 -c 62:27:AD:C4:0F:F2 wlan0 --ignore-negative-one
# 18:37:18 Waiting for beacon frame (BSSID: 3C:46:D8:59:E8:F4) on channel 11
# 18:37:26 Sending 64 directed DeAuth (code 7). STMAC: [62:27:AD:C4:0F:F2] [31|30 ACKs]
Protected Management Frames (PMF)
机制
WPA2
启用了 PMF
后(WPA
不支持)
MIC
产生算法从 HMAC-SHA1
进化为 AES-CMAC
PTK
产生算法从 SHA-1
进化为 SHA-256
解密流量
wpa-pwd
,填入已知共享密钥保存IEEE 802.11
的首选项设置面板,勾选启用:Enable decryption
功能wpa_passphrase
wpa_passphrase <SSID> <Passphrase>
# wpa_passphrase OpenWrt WelcomeCUCer-2018
# network={
# ssid="OpenWrt"
# #psk="WelcomeCUCer-2018"
# psk=04f305d51a8331d0839a48900a47560f80665d4fdb1ca28290bdcbb3908ffb64
# }
import hashlib, binascii
def wpa_psk(ssid, password):
dk = hashlib.pbkdf2_hmac(
'sha1',
str.encode(password),
str.encode(ssid),
4096,
256
)
return (binascii.hexlify(dk))
print(wpa_psk('OpenWrt', 'WelcomeCUCer-2018')[0:64].decode('utf8'))
基于 加密 GTK 负载
的 纯无线 ARP 投毒攻击
密钥类型 | 用途 | 来源 |
---|---|---|
PSK | 认证 | (离线)配置😈 |
PMK | 长期使用😈,产生其他加密用途密钥 | EAP 协商 |
PTK | 加密单播(unicast)通信 | 产生自 PMK/PSK |
GTK | 加密广播(broadcast)和多播(multicast)通信 | 产生自 PMK/PSK |
AES-CCMP
还是 RC4-TKIP
,实际的无线通信数据加密过程使用了 流密码加密
工作模式密钥流
虽然也会复用加密密钥和 IV,但存在一个不断增长的 密钥重用计数器
。只要计数器正常计数工作,密钥流
就不会出现重用现象E()
。C(K)
,其中 K
为主密钥。K
为种子、C(K)
为随机序列生成器产生一个“无限长”的 流密钥
,将待加密明文与 流密钥
进行逐字节异或操作完成 流密码加密
E(A) = A xor C
E(B) = B xor C
E(A) xor E(B) = (A xor C) xor (B xor C) = A xor B xor C xor C = A xor B
从以上计算公式可以看出:如果 C 在 A 和 B 的加密过程中被重用,则攻击者只需要掌握了:
即使不知道密钥 K
,也可以通过 B = E(A) xor E(B) xor A
恢复出目标用户发出的明文
WPA/WPA2 PSK
的 4 次握手认证
消息中的第 3 个消息 EAPOL3 是由 AP
发给 STA
IEEE 802.11i
规定如果丢包可以重传KRACK
攻击的多种攻击效果
WPA
的 RC4-TKIP
和 WPA2
的 AES-CCMP
均受漏洞影响PTK
的前提下,解密通信数据、中间人篡改消息GTK
的前提下,解密通信数据、中间人篡改消息AP
通知 STA
:PTK
已生成完毕,可以 安装
用于后续单播通信加密。另外,GTK
被加密后以密文形式包含在 EAPOL3 中。此时 重放计数器
被设置为 AP
发送 EAPOL1 时设置的 重放计数器r+1
AP
只有在接收到 STA
发送的 EAPOL4 才会真正 安装 PTK
IEEE 802.11i 协议最关键的缺陷定义即将登场
STA
只要自己把 EAPOL4 “成功” 发出去,就会按照协议规定认为 EAPOL 4 次握手
已经完结,接下来的会话过程就会使用前述“握手成功”的 PTK
和 GTK
AP
并没有 “成功接收” 到 EAPOL4 ,还可以重发一遍 EAPOL3 ,要求 STA
重新安装一次 PTK
和 GTK
AP
判定 EAPOL 4 次握手
完结的标准是收到 EAPOL4在 KRACK 之前,IEEE 802.11i 的 4 次握手安全性证明是建立在一个重要(假设)前提之上:
PTK
和GTK
的密钥只会被安装一次。
攻击者实施 KRACK
攻击的 1 个重要前提是:攻击者能通过中间人攻击劫持目标 STA
和目标 AP
的通信过程。具体来说的典型实施手段如下:
AP
和目标 STA
之间的通信过程Deauthenticaion Attack
强制目标 STA
从目标 AP
断开且重新连接目标 AP
时要连接到攻击者搭建的 信号更强 的不同信道同名无线网络STA
和目标 AP
的跨信道中间人攻击链路KRACK
攻击才能真正开始KRACK
攻击在实践中较难利用成功的一个重要原因
STA
来说比目标 AP
信号更强 的无线网络STA
给 AP
回应的 EAPOL4 ,触发 AP
的 EAPOL3 重传
重传计数器
相比于 EAPOL1 的 重传计数器r
已经是 r+2
了r+2
的 EAPOL3 给目标 STA
IEEE 802.11i
规定,STA
只要收到 EAPOL3 , 不管三七二十一 ,必须回复 EAPOL4 。并且, 不管四七二十几 ,STA
需要执行 PTK
重装 操作。更进一步的过分要求是:会话密钥加密密钥流生成算法里使用的 nonce
需要重置为 1
nonce
和 A-nonce
与 S-nonce
没有任何关系nonce
实际上就是一个当前加密会话的「发包计数器」,初始值为 1STA
用已经协商好的 PTK
以及对应的 nonce
加密后的密文STA
实际是被打了个「流密码加密的密钥重用攻击」组合拳
STA
来说比目标 AP
信号更强 的无线网络来实现「中间人攻击」?因为他们的程序员没有按照 IEEE 802.11i
规范去开发代码 🤷
the implementation does not accept retransmissions of message 3.
如果想要了解关于 KRACK
的更多利用方式细节,一定要仔细阅读作者发表在 CCS 17 上的论文。
# lsb_release -a
# No LSB modules are available.
# Distributor ID: Kali
# Description: Kali GNU/Linux Rolling
# Release: 2020.4
# Codename: kali-rolling
# date
# Sun 17 Jan 2021 02:12:47 PM CST
wpa_supplicant -v
# wpa_supplicant v2.9
# Copyright (c) 2003-2019, Jouni Malinen <j@w1.fi> and contributors
Two unit tests, 0 integration tests
KRACK
作者在 Blackhat Europe
做报告时用的一张图:单元测试只能保证组件可以独立工作,一旦集成测试就会暴露出「协作」漏洞
KRACK
就是一个典型的「组件协作漏洞」Rogue Access Point, Rogue AP
AP
方式专门攻击无线客户端行为的笼统称谓
Evil Twin
KRACK
中使用到的「跨信道中间人攻击」技术本节要介绍的是一种「后门」方式实现的
Rogue AP
在未经有线网络管理员允许/授权情况下,悄悄接入目标有线网络并开启无线网络功能的 AP
。
Rogue AP
本身如果还具备远程控制能力,则相当于在企业内网直接建立了一个「远程攻击跳板」Rogue AP
Rogue AP
802.1X
认证,避免任何设备只要连入网线即可访问企业内网Rogue AP
回顾 《网络安全》第 4 章 网络监听 一节提到的所有局域网攻防手段
对于企业级认证来说,可以对 Radius 协议进行『中间人攻击』
参见《网络安全》第 4 章局域网安全加固方法和建议。
禁用 DHCP,采用静态地址配置
ARP
广播ARP
广播的发生场景
无加密无线网络中使用的明文 Portal 认证
http
会话中的身份认证 cookie
提取和重放STA
的 MAC
地址被克隆Simultaneous Authentication of Equals
,一种 在线计算 的「零知识证明」算法SAE
过程协商出一个 随机认证用共享秘钥 ,代替 PSK
模式时的「预共享静态秘钥」PMF
SAE
保证了即使捕获到了无线数据包、拥有预共享的无线网络入网口令,但由于每个无线会话均使用了“不可预测”($\frac{1}{2^{128}}$ ~ $\frac{1}{2^{256}}$ 几率重复)的随机会话秘钥,使得解密抓包数据在 可爆破计算意义上 没有可能SAE
握手过程的加密算法降级攻击hostapd
和 wpa_supplicant
实现缺陷导致的侧信道信息泄露SAE
握手过程的计算资源消耗型拒绝服务攻击威胁/漏洞类型 | WPA3 是否已经解决 | 备注 |
---|---|---|
SSID 信息泄露 | ❌ | |
Evil Twin | ❌ | 企业级认证模式里启用双向证书认证可解决 |
SSL Stripping | ❌ | 应用层风险 |
DNS 欺骗 | ❌ | 应用层风险 |
Rogue AP | ❌ | |
ARP 欺骗等 | ❌ | |
悄无声息的监听 | ⚠️ 部分解决 | OWE 保证了不再有明文无线通信网络 |
STA 地址泄露 | ⚠️ 大部分已解决 | 无线设备厂商和操作系统厂商共同努力 |
SSID 滥用与 Evil SSID | ⚠️ 大部分已解决 | 无线设备厂商和操作系统厂商共同努力 |
解密数据 | ✅ | |
离线字典破解握手认证报文 | ✅ | |
PMKID 离线破解 | ✅ | |
DeAuth Attack | ✅ | WPA2 + PMF 也能做到 |
KRACK | ✅ |
Wi-Fi 分享类应用
Wi-Fi
Wi-Fi
功能的设备在不使用 Wi-Fi
功能时关闭无线开关(软开关或硬件开关)
Evil Twin
攻击套取到你连过的 AP
的 EAPOL Packet
用于离线破解 WPA/WPA2 PSK
密码AP
AP
隔离功能
WPA3-SAE
WPA3-SAE/WPA2-PSK only
,禁用 WPA
兼容模式WPS
功能SSID
名
WPA/WPA2/WPA3-企业级
身份认证
IT
技术能力的企业强烈建议配置 EAP-TLS
Rogue AP
并告警Rogue AP
构建的无线网络实施 DeAuth Attack
802.1X
端口认证,避免 Rogue AP
物理接入