ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

无线网络安全评估实战:从WPA2到WPA3的渗透测试全解析

无线网络安全评估实战:从WPA2到WPA3的渗透测试全解析 干无线安全评估这么多年每次接到项目甲方提的第一个需求基本都是“看看我们的Wi-Fi能不能被搞进去”。这句话听着简单真要严谨组织一次测试里面的东西一点都不少网络是个人加密还是企业认证用的是WPA2还是已经上了WPA3有没有对外提供Portal认证的访客网络这些不同场景对应的测试思路完全不同如果上来就掏出一块网卡跑一套默认命令很容易测了个寂寞。这篇文章我想把无线网络中常见的认证/加密方式这条线从头捋一遍重点放在渗透测试视角下每种机制的攻击面、测试思路、实操细节和常见翻车点。内容不追求“拿到Wi-Fi密码”这一个单一目标而是尽量把个人网络、企业网络、Portal认证、WPA3这些场景都覆盖到方便你在授权测试项目里按图索骥。同时必须强调一句所有测试方法只能在拿到明确授权的范围内使用本文是技术交流不是教你薅隔壁老王的宽带。1. 认识无线网络里的“认证”和“加密”先分清要测试什么1.1 认证和加密不是一回事很多刚入门的朋友会把“Wi-Fi密码”当成一个东西来理解实际上在802.11协议体系里认证和加密是两层独立的概念。认证解决的是“你是谁”的问题。个人网络里它表现为“你知道这个密码”企业网络里它表现为“你有合法的账号和证书”Portal场景里它表现为“你通过了某个页面的登录”。加密解决的是“数据在空中怎么保密”的问题。WEP、TKIP、CCMPAES、GCMP这些才是真正对无线帧做加密处理的算法。认证方式确认了你的身份之后系统才会给你分配加密密钥后续通信才用这套密钥加密。这两者经常被混在一起说比如“WPA2-PSK”里的PSK指的是预共享密钥也就是认证凭据而它使用的加密算法是CCMP/AESWPA3的SAE握手本身同时完成了认证和密钥协商。测试之前一定要先拆清楚你要测的对象到底是哪一层不然很容易出现你明明把密码跑出来了却发现对方网络根本没有启用加密这种尴尬情况。1.2 常见认证/加密方式的分类从我实际测试中遇到的场景来看目前无线网络大致可以分成这么几类网络类型认证方式加密算法典型场景开放网络无认证无 / Portal叠加无加密或OWE商场、咖啡店访客Wi-FiWEP静态密钥共享密钥WEP RC4老旧设备、物联网热点WPA/WPA2-PSKPSK预共享密钥TKIP / CCMP(AES)家庭、小型办公WPA2-Enterprise802.1X RADIUSCCMP(AES)中大型企业、高校WPA3-PersonalSAEGCMP(AES)新型家用路由器、企业新部署WPA3-Enterprise802.1X RADIUS升级GCMP(AES)高安全需求企业OWEEnhanced Open无认证加密无认证 加密公共网络升级方案为什么无线渗透测试要按这个分类去组织思路因为每一类机制的攻击面差异极大。WEP这种老古董几乎没有安全性可言抓够IV就能破解WPA2-PSK的攻击核心是“离线字典猜解”只要密码弱就有戏企业级网络密码本身可能非常复杂但EAP协议实现和证书校验往往存在漏洞Portal认证则完全绕开密码攻击走的是逻辑绕过的路子。1.3 测试前必须完成的情报收集一个合格测试的第一步永远是先搞清楚目标网络的类型这个环节叫“无线侦查”。操作上就是把网卡切到监听模式用airodump-ng扫一遍周围环境airmon-ng start wlan0 airodump-ng wlan0mon扫描结果里最关键的几个字段是BSSIDAP的MAC地址用来唯一确定目标设备CH信道后续监听这个信道才能抓到对应帧ENC/CIPHER加密算法类型区分WEP、TKIP、CCMPAUTH认证方式常见的有PSK、SAE、MGT企业级802.1XESSID网络名称另外还需要用wash或airodump-ng --wps确认AP是否开启了WPS用tcpdump配合监听模式抓Probe Request帧看看周围有哪些客户端在主动探测SSID这些客户端后续可能是抓握手包的关键。这一套侦查做完你才对“这个网络怎么测”有判断依据。直接跳过这步拿着默认参数瞎跑很可能在WPA3-Enterprise上折腾半天最后发现自己连目标网络名都看错了。2. WPA2-PSK个人网络的测试套路从握手包到PMKID2.1 四步握手抓包的关键细节WPA2-PSK是目前家庭和小型办公最常见的方式。它的认证流程分两层先是连接时的四次握手4-way handshake完成PSK到成对主密钥PTK的派生之后才是正常通信。四次握手本质上是用PSK派生出来的PMK通过交换随机数生成PTK再用PTK校验双方是否持有同一个PSK。这个流程里最关键的一点是握手包里有你验证密码所需的全部信息——AP的随机数ANonce、客户端的随机数SNonce、双方的MAC地址以及最后的EAPOL消息校验值。也就是说只要抓到了握手包攻击者就可以在本地无限次地尝试不同的密码每次都算出对应的PTK和校验值比对不需要再接触AP和客户端。这就是著名的“离线字典攻击”。实操中有两个容易翻车的点第一Deauth掉线动作一定要控制好频率。我用aireplay-ng -0 3 -a BSSID -c STATION通常只发3到5个去认证帧只要客户端掉线重连一次就能抓到握手包。一次性发几百个容易把一个区域的客户端全部打掉在测试现场非常明显而且可能误伤别的网络。第二抓包期间要时刻盯住右上角的握手包标记。airodump-ng抓到握手包后会在界面右上角显示“WPA handshake: BSSID”的一行提示这时候可以立刻停止Deauth再把抓下来的cap文件丢给aircrack-ng验证一下aircrack-ng handshake.cap -w /usr/share/wordlists/rockyou.txt如果跑不出来不代表没抓到包只说明字典里没有正确密码。2.2 PMKID攻击不需要客户端在线的更优解法抓握手包的痛点是必须等一个客户端连上AP才能用Deauth把它打下来。很多商场、办公区的Wi-Fi虽然开着但周围可能一个客户端都没有这时传统的抓包思路就彻底没戏了。PMKID攻击解决的就是这个问题。PMKID是AP在关联阶段主动发给客户端的一个信息元素位置在RSN IE里。它由PMK、AP MAC、客户端MAC和固定字符串拼接后经过哈希生成。因为计算PMKID只需要AP侧的随机数而且AP会在客户端连接时主动把它发出来所以攻击者只要伪装成一个客户端去和AP完成一次关联请求就能在收到的响应帧里提取出PMKID完全不需要任何真实客户端在线。用hcxdumptool可以直接实现扫描加抓PMKID一步到位hcxdumptool -i wlan0mon -o dump.pcapng --enable_status1抓到之后再用hcxpcapngtool把pcapng转成hashcat可识别的22000格式hcxpcapngtool dump.pcapng -o hash.22000 hashcat -m 22000 hash.22000 wordlist.txt这套组合拳是我在测试中用的最多的方式原因很实在目标AP只要支持PMKID目前绝大多数WPA2路由器都支持就不需要管周围有没有人连这个Wi-Fi也不需要发Deauth帧隐蔽性比传统方式好太多。不过要注意某些新固件AP已经把PMKID功能关闭了所以PMKID并不是万能钥匙抓不到的时候还得回到抓握手包的老路上。2.3 字典攻击与规则调优无论是握手包还是PMKID最终都要落到密码猜测上。这一步的效率高低直接决定一场测试能不能出结果。我自己的经验是破解WPA2-PSK优先顺序是先跑弱口令字典再跑社交工程组合最后才上规则变换和掩码爆破。弱口令字典rockyou、wpa-topology、crackstation、常见中文拼音键盘组合社交工程组合根据目标的名称、城市、电话号段、成立年份定制生成比如公司叫“Future”可能密码就是“Future123”或“future2024”规则变换用hashcat的-r规则给字典词自动做大小写、后缀、前缀变换掩码爆破针对已知特征做暴力穷举适合位数不长的纯数字或纯字母如果目标是企业或校园周边字典爆破成功率会比随机家庭网络高很多因为团队往往会设置统一密码便于记忆。关键字组合规则是个好东西比如hashcat -m 22000 hash.22000 base.txt -r best64.rule另外多说一句GPU对hashcat的影响极大。同一套字典在CPU上跑可能要几天放到GPU上可能几小时就完成。不建议在虚拟机里直接把hashcat挂在大字典上先把字典数量和目标密码结构搞清楚再开跑别浪费测试时间。2.4 WPS PIN这个老问题WPS PIN攻击在WPA2-PSK测试中属于“另一个赛道”。WPS机制允许用户通过输入8位PIN码来代替输入复杂的Wi-Fi密码而这8位PIN码的最后一位是校验位实际有效熵只有7位其中前4位和后3位又分成两组独立校验。这个设计导致理论爆破次数只有11000次左右。早年用reaver一遍遍尝试就能在几小时内拿到PIN码进而通过PIN反算出Wi-Fi密码。现在的情况是新路由器普遍加入了PIN尝试锁定机制很多甚至默认关闭WPS。所以WPS攻击的适用面比十年前窄了很多但仍有大量廉价路由器、运营商定制光猫开着WPS测试时用wash扫一下成本极低万一碰上了就是一条捷径。注意如果目标AP启用了WPS锁定强行爆破会导致PIN被锁死测试时务必控制尝试频率并在测试范围确认时提前和甲方沟通好边界。3. 企业级WPA2-Enterprise的渗透测试思路3.1 为什么企业网络是另一个世界个人网络的命门是密码强度企业网络的核心是身份管理系统。WPA2-Enterprise使用802.1X做接入控制客户端要经过“请求-认证-授权”三个阶段才能真正获取IP上网。这个体系里很关键的角色是RADIUS服务器它负责验证用户身份并根据返回的属性和VLAN信息决定用户落在哪个网段。对攻击者来说企业网络的主密码根本不存在每个人有自己的域账号。所以测试思路要转换不是“破解网络密码”而是“冒充合法用户”或“截获合法凭据”。从一个宏观角度看企业网里值得关注的认证方法有这些表里列出的几种EAP方法证书要求主要弱点LEAP无MSCHAPv2可被字典攻击PEAP-MSCHAPv2服务器证书可选不校验证书时易遭中间人EAP-TTLS服务器证书可选内部方法取决于实现EAP-TLS双向证书安全性最高但有证书管理成本3.2 常见EAP方法的弱点LEAP是思科早期主推的认证协议本质是用MSCHAPv2封装用户名密码。MSCHAPv2的NT Hash可以被离线破解它又把密码分成了两段DES加密导致即使密码长度很长只要每段破解出来就算整体丢失。用asleap这种工具配合字典跑LEAP就像跑一个古老的NT哈希一样轻松。PEAP-MSCHAPv2是当前企业中非常常见的组合。理论安全性不差因为用户名密码是封装在TLS隧道里的但实际部署中有很多AP没有强制校验证书。一旦客户端不校验服务器证书攻击者可以部署一个自己的RADIUS让客户端把凭据完整地交过来。EAP-TTLS和PEAP类似也是靠TLS隧道保护内部认证方法区别在于它可以在隧道里跑几乎任意认证方式包括只送用户名密码的PAP。如果内部方法用的是PAP中间人拿到的就直接是明文密码。EAP-TLS是双向证书认证既要有服务器证书也要有客户端证书。这种机制在实现得当的情况下破解面很小攻击重点从算法层面转移到了证书管理和客户端设备安全性上。3.3 搭建钓鱼AP的测试思路企业网络的渗透测试中最重要的测试动作是“伪造接入点让真实客户端主动连上来”。和针对PSK的Deauth攻击不同企业网络里攻击者的目标通常不是抓握手包而是搭建一个看起来合法的假AP诱导用户输入凭据。我在测试中常采用的一个思路是准备一台独立笔记本或树莓派用hostapd-mana这类工具配置一个与目标同名的AP加密方式也设置成WPA2-EnterpriseRADIUS指向本机。当目标用户的电脑连过来时它会弹出输入域账号的窗口用户一旦输入凭据就会经过我们伪造的RADIUS转发或落地。这种方法能不能成功很大程度取决于对目标SSID和证书状态的伪装是否够像。如果目标网络启用了证书校验且客户端信任的CA是公司内网CA那么攻击者很难伪造。反过来如果AP没有强制客户端校验证书或者企业内部下发了一个不校验的配置那么一场简单的钓鱼AP测试就能直接验证出严重风险。测试结束后要给甲方明确展示“哪些设备的保存网络配置被诱导过来”这是修复报告里最重要的证据。3.4 证书校验与信任链测试在这个环节实操层最值得做的一件事是检查企业下发的无线配置文件中“是否勾选校验服务器证书”。很多企业的802.1X配置是IT部门为了省事批量下发的客户端默认CA校验步骤被漏掉。我用下面这种方式验证在客户端保存的EAP配置里查看CA证书是否为空用伪造的RADIUS证书自签名搭建evil twin观察客户端是否直接弹出认证窗口。如果客户端弹窗了说明它对服务器身份没有任何校验任何人搭个同名AP都能收集员工凭据。这种问题比某个弱密码严重得多因为它影响的是整个域账号体系。反过来如果客户端拒绝连接并提示证书错误那就说明这套防线基本是到位的。证书层面的测试结论往往可以指导甲方做架构调整比如统一升级到EAP-TLS或至少强制在内网AD里下发并校验CA证书。4. Portal认证Captive Portal的测试重点4.1 Portal认证的工作流程Portal认证常见于商场、酒店、机场、企业访客网络典型体验是连接Wi-Fi后打开任意网页被重定向到认证页面输入手机号验证码或者账号密码通过后才能上网。从渗透测试视角看这种场景下无线加密本身可能只是开放或WPA2-PSK访客密码真正的安全边界在“认证后的ACL访问控制列表”和“会话管理逻辑”上攻击面完全是另一套东西。Portal的实现细节因厂商而异常见的有运营商级BRAS比如华为、H3C的Agile Controller、开源的CoovaChilli、OpenNDS以及各类商业Wi-Fi营销系统。但逻辑都比较相近客户端请求被重定向到Portal服务器Portal验证通过后通知接入设备放开该MAC的访问权限。4.2 绕过逻辑类测试点这类测试不需要爆破密码而是寻找实现层面的“逻辑漏洞”来绕过认证。我梳理一下常测的几类MAC地址克隆Portal经常以MAC作为身份标识认证通过后放开的是某个MAC。如果能在认证前先观察合法客户端的MAC比如从Probe请求里修改本机MAC为已认证设备的地址有可能直接绕过。IP直接访问有些Portal只拦截80/443端口用HTTPS直接访问内网IP、SSH到某台服务器或使用其他非HTTP协议可能完全不被拦截。ACL下发参数篡改Portal认证通过后接入设备会下发一条针对用户IP或MAC的放行规则。如果Portal本身存在注入点或重放问题可能篡改变成放行全部流量。HTTP响应头绕过某些Portal通过检查HTTP响应是否包含特定状态码来判断是否需要重定向。伪造Host头或User-Agent、提前设置连接属性可能跳过重定向逻辑。IPv6/组播/广播流量很多Portal只过滤IPv4单播流量对IPv6本地链路、组播DNS、DHCPv6等流量不加限制可以利用这些通道访问本网段其他设备。这些测试的每一项都需要在授权的测试网络里逐一验证。写报告的时候建议对照“认证机制-绕过方式-影响范围”的方式展示方便甲方技术团队理解修复优先级。4.3 会话管理和并发限制除了一开始的绕过Portal的会话生命周期也值得做针对性测试。重点是以下几个细节。会话超时时间。如果Portal允许长期在线不踢出那么一个已认证设备的会话被攻击者接管通过ARP欺骗拿到同一IP后可以长时间上网而无需认证。测试时我会故意保持连接数小时观察是否有强制下线机制。会话固定。如果Portal在认证页面URL中带了一个固定会话参数攻击者可以诱导已认证用户访问特定链接然后自己使用同一个会话参数进入网络。这类问题在自研Portal里出现频率不低。并发登录限制。同一账号是否允许多设备同时登录如果允许意味着一个账号可以被多个设备共用泄露后很难定位责任人。这种问题在“手机号验证码”类Portal中非常常见。5. WPA3与OWE网络的测试现状5.1 WPA3-SAE握手机制的变化WPA3-Personal用SAE握手取代了WPA2的PSK四次握手。SAE基于蜻蜓密钥交换和PSK比起来最核心的变化是引入了“前向保密”即使攻击者最终知道了密码也无法解密过去抓到的加密流量。同时SAE的握手过程不允许离线字典攻击攻击者必须每次在线交互才能验证一个密码猜想这让传统抓包破解的方式基本失效。对渗透测试来说最直接的影响是过去那种“抓握手包-hashcat跑字典”的路径在纯WPA3网络里走不通了。如果目标网络固件强制WPA3-Personal且周围没有降级通道那么针对PSK的离线破解手段将毫无效果。5.2 降级攻击与兼容性测试实际测试WPA3网络时重点往往不在算法本身而在过渡模式和兼容性配置上。很多AP为了兼容老设备启用了WPA3/WPA2过渡模式同一个SSID同时支持SAE和PSK让新老客户端都能连。在这个模式下攻击者可以诱导目标客户端降级使用WPA2-PSK接入然后抓取传统的EAPOL握手包继续走hashcat在线破解。降级的方式通常是抑制SAE的Beacon帧和Probe Response伪造一个只支持WPA2的同名AP让客户端误以为网络只支持旧协议从而主动用它保存的凭据来连接。这类攻击在现实中并不困难因为很多客户端在后台自动连接时优先会选信号更强、兼容性更好的AP。测试时的一个有效检查项是目标网络是否启用了“禁止WPA2兼容”模式以及客户端的“自动连接保存网络”行为是否允许不同加密方式下重连。如果客户端允许从WPA3平滑降级到WPA2且不提示用户这个网络在实际攻击面下并没有比WPA2-PSK强多少。5.3 OWE增强开放网络测试要点OWEEnhanced Open是公共Wi-Fi的新标准用来替代完全无加密的开放网络。它通过无认证的加密协商为每个客户端生成独立的数据加密密钥解决“开放网络裸奔被嗅探”的问题。注意它不提供访问控制任何人都能连上网络只是数据加密了。对渗透测试来说OWE网络里不存在“破解密码”这个动作测试重点转向OWE的关联过程是否强制实施还是允许降级到传统开放模式客户端是否容易被欺骗连接到无加密的同名APOWE网络内部的横向访问控制比如客户端隔离是否到位。实际测试中我遇到最多的问题反而是客户端隔离失效OWE本身实现了链路层加密但很多商业AP的访客隔离默认配置并不完善同一OWE网络里设备之间可以互相访问这比加密状态更值得关注。6. 无线渗透测试的完整流程与一线经验6.1 从授权到执行的测试流程无论个人还是企业网络完整的无线渗透测试都要按标准化流程推进不能上来就“测”。第一步是明确范围。要有明确的书面授权写清楚哪些SSID可以测、哪些时间段允许主动攻击如Deauth、是否允许钓鱼AP、是否允许抓取员工凭据。我建议测试前把“技术动作清单”也作为附件列出来让甲方每个点都知道你在干什么。第二步是环境准备。至少准备一块支持监听模式和注入的外接无线网卡常见的芯片有Atheros AR9271、Realtek RTL8812AU等驱动建议先用Kali自带或厂商最新驱动物理位置尽量靠近目标AP但不要太显眼。第三步是记录信息。建一个工作笔记内容包括目标BSSID、信道、加密类型、发现的所有客户端MAC、抓包哈希值、破解结果、截图证据。无线信号是会漂移的不记录过程后期写报告会非常被动。第四步是执行测试。按照“侦查-抓握手包/PMKID-字典破解-尝试钓鱼/绕过”的顺序进行每完成一个阶段立刻保存证据。第五步是清理现场。测试结束后恢复网卡模式关闭伪造AP清理临时文件。如果用了钓鱼页面收集过凭据要确保这些数据不被二次扩散。6.2 测试报告怎么写才有效报告最容易被忽略的地方是“可复现性”。很多测试报告只写“目标密码为12345678建议修改”甲方看了也不知道自己哪里配置错了。我的习惯是每个发现都附带以下四个要素前置条件测试时目标AP型号、固件版本、固件配置利用步骤具体的工具命令和关键截图影响分析拿到了什么级别的权限、能做什么修复建议具体的配置项和验证方法比如对于PSK弱密码报告里我会写“目标AP支持PMKID通过hcxdumptool抓取PMKID后用hashcat跑rockyou字典耗时2小时得到密码为xxx。建议改为至少14位随机密码并启用WPA3-only模式。修复后可用同样方式复测。”报告里的表格能用就用。把“发现问题-风险等级-影响范围-修复建议”做成一个矩阵甲方拿去汇报给管理层也一目了然。6.3 安全加固的一线建议最后分享几个我在测试后时常写给甲方的加固建议这些点基本能覆盖80%的常见Wi-Fi风险。个人和小型办公场景关闭WPS功能使用WPA2/WPA3混合模式密码至少14位避免纯数字或姓名生日组合开启访客网络并启用客户端隔离不要和办公网共用一个SSID定期更换SSID密码离职员工手上保留的老密码是很大的后门。企业网络场景企业网尽量统一使用EAP-TLS不要把希望押在PEAP上如果必须使用PEAP-MSCHAPv2一定要开启服务器证书校验并且不能使用自签名但是不校验的CA单独为BYOD自带设备划分访客VLAN和办公终端严格隔离802.1X设备定期复查证书有效期防止证书过期后客户端自动降级到不安全模式。Portal场景Portal会话必须设置合理的超时时间并支持同时限制单账号并发设备数开启客户端隔离对未认证区域要禁止非HTTP流量穿透定期审计Portal的防绕过配置重点关注IPv6和组播流量。结语实际测试中踩过的几个坑最后按惯例聊点个人经验。无线渗透测试和有线渗透差的不仅是技术还有各种“环境噪音”。我踩过的坑里印象最深的有三个。一个是信号波动导致的误判。测试时离AP太远抓到的握手包不完整hashcat跑不出来我还以为是密码太强最后走到AP旁边一测才发现是质量太差。所以测试时先看信号强度RSSI低于-70dBm的结果最好别直接下结论。另一个是自动连接劫持。测试一个WPA2-Enterprise SSID时我自己笔记本里也保存过同名网络的配置结果测试过程中笔记本反复自动重连干扰了数据抓取。从那以后我测试时都会先清掉本机保存的目标SSID并关闭自动连接。还有一个是报告里的证据留存。有一次我抓了一整晚的数据结果导出cap文件时意外覆盖了原始文件导致第二天完全没法复现。后来我所有的抓包文件都会同时存三份保留原始pcapng只在副本上做转换。无线安全测试这些年变化很大WPA3和OWE的普及让很多老套路开始失效但只要是人为配置和维护的系统脆弱点永远存在。希望这篇文章能帮你在下一次授权测试里少走点弯路把有限的精力放在真正有产出的方向上。
返回列表