Reaver是Kali Linux中一款款专注于破解Wi-Fi Protected Setup(WPS)协议的工具,通过对无线路由器的WPS PIN码进行暴力破解,最终获取无线网络的WPA/WPA2-PSK密码(即Wi-Fi连接密码)。
WPS是许多无线路由器默认开启的简化网络配置功能,允许用户通过输入8位PIN码快速连接Wi-Fi,无需记忆复杂的WPA密码。但该协议制存在设计缺陷:8位PIN码的前4位和后3位可分别破解(最后1位为校验位),实际暴力破解空间仅为11000种可能(前4位0000-9999,后3位000-999),远小于直接破解WPA密码的复杂度。
Reaver通过模拟WPS认证过程,向目标路由器发送大量PIN码尝试请求,当猜中正确PIN码后,即可获取路由器返回的WPA-PSK密码。此外,Reaver支持与pixiewps工具联动,利用部分路由器的WPS漏洞加速破解(无需完整暴力破解),是无线网络安全测试中破解WPS-enabled路由器的核心工具。
命令参数说明
必要参数(必须指定)
| 参数 | 英文描述 | 中文翻译与详细说明 |
|---|---|---|
| -i, --interface=<wlan> | Name of the monitor-mode interface to use | 指定用于破解的监控模式网卡接口(如wlan0mon),必须先将网卡切换为监控模式(可通过airmon-ng实现),否则无法捕获和发送WPS认证帧。 |
| -b, --bssid=<mac> | BSSID of the target AP | 目标无线路由器的BSSID(MAC地址,格式如AA:BB:CC:DD:EE:FF),用于唯一标识目标设备,可通过airodump-ng扫描获取。 |
可选参数
| 参数 | 英文描述 | 中文翻译与详细说明 |
|---|---|---|
| -m, --mac=<mac> | MAC of the host system | 指定本机网卡的MAC地址(用于伪装,避免被目标路由器识别为同一设备),格式与BSSID相同,如11:22:33:44:55:66。 |
| -e, --essid=<ssid> | ESSID of the target AP | 目标无线网络的名称(ESSID),如"MyHomeWiFi",可选参数,用于辅助确认目标设备。 |
| -c, --channel=<channel> | Set the 802.11 channel for the interface (implies -f) | 指定目标路由器所在的信道(如6、11),需与目标信道一致,设置后自动启用固定信道模式(-f),不进行信道跳频。 |
| -s, --session=<file> | Restore a previous session file | 恢复之前保存的破解会话文件(.wpc格式),用于继续中断的破解过程,避免重新开始(如断电、网络中断后)。 |
| -C, --exec=<command> | Execute the supplied command upon successful pin recovery | 当PIN码破解成功后,自动执行指定命令(如发送通知、保存结果到文件),示例:-C "echo '破解成功' >> result.txt"。 |
| -f, --fixed | Disable channel hopping | 禁用信道跳频,强制网卡固定在当前信道(通常与-c参数配合使用,确保与目标信道一致)。 |
| -5, --5ghz | Use 5GHz 802.11 channels | 指定使用5GHz频段信道(默认扫描2.4GHz),适用于目标路由器工作在5GHz频段的场景。 |
| -v, --verbose | Display non-critical warnings (-vv or -vvv for more) | 显示详细输出信息,-v显示基本警告,-vv显示认证过程,-vvv显示完整数据包交互(用于调试)。 |
| -q, --quiet | Only display critical messages | 仅显示关键信息(如破解成功、致命错误),减少冗余输出。 |
| -h, --help | Show help | 显示帮助信息(参数说明和示例)并退出。 |
高级参数
| 参数 | 英文描述 | 中文翻译与详细说明 |
|---|---|---|
| -p, --pin=<wps pin> | Use the specified pin (may be arbitrary string or 4/8 digit WPS pin) | 使用指定的PIN码进行认证(而非暴力破解),支持4位或8位PIN码,适用于已知PIN码时直接获取WPA密码。 |
| -d, --delay=<seconds> | Set the delay between pin attempts [1] | 设置两次PIN码尝试之间的延迟时间(秒),默认1秒,部分路由器对频繁尝试敏感,需增大延迟(如5秒)避免被锁定。 |
| -l, --lock-delay=<seconds> | Set the time to wait if the AP locks WPS pin attempts [60] | 当目标路由器锁定WPS功能后,等待解锁的时间(秒),默认60秒,部分路由器锁定时间更长(如300秒),需手动调整。 |
| -g, --max-attempts=<num> | Quit after num pin attempts | 设置最大PIN码尝试次数,达到次数后自动退出,避免无限制尝试(如设置为1000,尝试1000次后停止)。 |
| -x, --fail-wait=<seconds> | Set the time to sleep after 10 unexpected failures [0] | 连续10次非预期失败后,暂停的时间(秒),默认0秒,适用于网络不稳定场景,减少错误重试。 |
| -r, --recurring-delay=<x:y> | Sleep for y seconds every x pin attempts | 每尝试x次PIN码后,暂停y秒(如-r 10:30表示每尝试10次,暂停30秒),用于规避路由器的频率检测。 |
| -t, --timeout=<seconds> | Set the receive timeout period [10] | 设置接收数据包的超时时间(秒),默认10秒,网络延迟高时可增大(如15秒),避免误判超时。 |
| -T, --m57-timeout=<seconds> | Set the M5/M7 timeout period [0.40] | 设置WPS M5/M7帧的超时时间(秒),默认0.4秒,部分路由器响应较慢,需增大(如1秒)。 |
| -A, --no-associate | Do not associate with the AP (association must be done by another application) | 不自动与目标AP关联,需通过其他工具(如aireplay-ng)手动建立关联,适用于特殊认证场景。 |
| -N, --no-nacks | Do not send NACK messages when out of order packets are received | 接收乱序数据包时不发送NACK消息,部分路由器对NACK敏感,禁用后可提高兼容性。 |
| -S, --dh-small | Use small DH keys to improve crack speed | 使用小DH密钥加速破解,需与pixiewps配合使用,但可能导致部分路由器认证失败(不推荐常规使用)。 |
| -L, --ignore-locks | Ignore locked state reported by the target AP | 忽略目标AP返回的锁定状态,强制继续尝试PIN码(可能导致路由器永久锁定WPS,谨慎使用)。 |
| -E, --eap-terminate | Terminate each WPS session with an EAP FAIL packet | 每次WPS会话结束时发送EAP FAIL包,部分路由器需要此包才能正确处理下一次尝试。 |
| -J, --timeout-is-nack | Treat timeout as NACK (DIR-300/320) | 将超时视为NACK消息,适用于D-Link DIR-300/320等特定型号路由器,提高兼容性。 |
| -F, --ignore-fcs | Ignore frame checksum errors | 忽略帧校验和错误,适用于无线信号差、数据包易损坏的场景,避免频繁报错中断破解。 |
| -w, --win7 | Mimic a Windows 7 registrar [False] | 模拟Windows 7系统的WPS登记器,部分路由器仅允许特定系统的WPS请求,启用后可提高兼容性。 |
| -K, --pixie-dust | Run pixiedust attack | 启用pixiewps攻击(灰尘攻击),利用目标路由器的WPS漏洞快速破解PIN码,无需完整暴力破解(推荐优先使用)。 |
| -Z | Run pixiedust attack | 与-K参数功能相同,启用pixiewps攻击(兼容旧版本语法)。 |
| -O, --output-file=<filename> | Write packets of interest into pcap file | 将关键数据包(如WPS M1-M7帧)保存到pcap文件,用于后续分析或手动提取参数供pixiewps使用。 |
使用教程
1. 准备工作
1.1 硬件与软件要求
- 无线网卡 :必须支持监控模式 和数据包注入 (如Alfa AWUS036NH、TP-Link TL-WN722N v1),可通过
iw list | grep "monitor"验证(有输出表示支持监控模式); - 软件依赖 :Kali Linux默认预装Reaver,验证命令:
reaver -h;若未安装,执行sudo apt update && sudo apt install reaver; - 辅助工具 :需要aircrack-ng套件(包含airmon-ng、airodump-ng),用于启用监控模式和扫描目标,安装命令:
sudo apt install aircrack-ng。
1.2 目标条件
Reaver仅对满足以下条件的目标有效:
- 目标路由器开启WPS功能(可通过airodump-ng扫描时的"WPS"列确认,显示"PBC"或"PIN"即支持);
- WPS功能未被锁定(部分路由器在多次失败尝试后会临时锁定,需等待解锁);
- 无线信号强度足够(建议高于-70dBm,信号过弱会导致数据包丢失,延长破解时间)。
2. 基础流程:使用Reaver暴力破解WPS PIN
该流程适用于目标路由器无已知漏洞的场景,通过暴力尝试所有可能的WPS PIN码获取WPA密码。
-
步骤1:启用无线网卡监控模式
- 列出所有无线网卡,确认接口名称(如wlan0):
iwconfig- 停止干扰监控模式的进程(如NetworkManager):
sudo airmon-ng check kill- 将网卡切换为监控模式(接口名变为wlan0mon):
sudo airmon-ng start wlan0- 验证监控模式是否启用(显示"Mode:Monitor"):
iwconfig wlan0mon -
步骤2:扫描目标WPS网络
使用airodump-ng扫描附近开启WPS的路由器,记录关键信息:
sudo airodump-ng wlan0mon扫描结果中需关注:
- BSSID:目标路由器的MAC地址(如AA:BB:CC:DD:EE:FF);
- CH:目标信道(如6、11);
- ESSID:网络名称(如"TP-Link_1234");
- WPS:确认支持WPS(如"WPS: 1.0"或"WPS: Locked",锁定状态需等待解锁)。
按"Ctrl+C"停止扫描,记录目标BSSID和信道。
-
步骤3:开始暴力破解
使用Reaver对目标发起WPS PIN暴力破解,基础命令格式:
sudo reaver -i 监控接口 -b 目标BSSID -c 目标信道 -vv示例(监控接口wlan0mon,BSSID为AA:BB:CC:DD:EE:FF,信道6):
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -vv参数说明:
-vv显示详细认证过程,便于观察进度和排查问题。破解过程解析:
- Reaver首先与目标路由器建立WPS连接,交换M1-M3帧;
- 依次尝试可能的PIN码(00000000到99999999,按优化顺序尝试);
- 每次尝试后,根据路由器返回结果判断PIN码是否正确(前4位或后3位正确会有不同响应);
- 若路由器锁定WPS,会自动等待设定的锁定延迟时间(默认60秒)后继续。
-
步骤4:获取破解结果
破解成功后,终端会输出类似以下信息:
[+] WPS PIN: 12345670 [+] WPA PSK: 87654321abcdef [+] AP SSID: TP-Link_1234其中:
- "WPS PIN"为目标路由器的WPS PIN码;
- "WPA PSK"为Wi-Fi连接密码,可直接用于连接网络;
- "AP SSID"为目标网络名称,确认与扫描结果一致。
-
步骤5:恢复网卡正常模式(可选)
破解完成后,关闭监控模式,恢复网卡正常工作:
sudo airmon-ng stop wlan0mon sudo systemctl start NetworkManager # 重启网络管理服务
3. 进阶流程:结合pixiewps加速破解(灰尘攻击)
若目标路由器存在WPS漏洞(如使用Realtek、eCos系统的设备),可通过-K参数调用pixiewps工具,无需暴力尝试即可快速获取PIN码,大幅缩短破解时间。
-
步骤1-2:同基础流程,启用监控模式并扫描目标(记录BSSID和信道)。
-
步骤3:启用pixiewps攻击
命令格式(添加
-K参数):sudo reaver -i 监控接口 -b 目标BSSID -c 目标信道 -K -vv示例:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -K -vv参数说明:
-K启用pixiewps攻击,Reaver会自动捕获WPS认证数据并传递给pixiewps,利用漏洞破解PIN码。攻击过程解析:
- Reaver与目标建立WPS连接,捕获M1-M3帧中的关键参数(DH公钥、随机数、哈希值等);
- 自动调用pixiewps,尝试模式1-3漏洞利用(针对不同厂商设备);
- 若目标存在漏洞,pixiewps会在几秒到几分钟内输出正确PIN码,Reaver随后计算WPA密码。
-
步骤4:同基础流程,获取WPA密码并恢复网卡模式。
4. 特殊场景处理
4.1 中断后恢复破解进度
Reaver会自动保存会话文件(.wpc格式,位于当前目录,以BSSID命名),中断后可通过-s参数恢复:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -s AA:BB:CC:DD:EE:FF.wpc -vv
4.2 已知PIN码时直接获取WPA密码
若已知目标WPS PIN码(如从路由器底部标签获取),可通过-p参数直接认证:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -p 12345670 -vv
执行后会直接返回WPA-PSK密码,无需暴力破解。
4.3 应对路由器锁定WPS
部分路由器在5-10次失败尝试后会锁定WPS(10-60分钟),可通过以下参数减少锁定风险:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -d 5 -l 300 -vv
参数说明:-d 5(每次尝试间隔5秒)、-l 300(锁定后等待300秒),降低尝试频率。
4.4 保存WPS数据包用于手动分析
使用-O参数将WPS认证帧保存为pcap文件,供后续用Wireshark分析或手动提取参数:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -O wps_capture.pcap -vv
5. 常见问题与解决方案
5.1 报错"Failed to associate with AP"(无法与目标关联)
问题原因:无线信号弱、目标信道错误或网卡驱动不兼容。
解决方案:
- 靠近目标路由器,确保信号强度高于-70dBm(airodump-ng中"PWR"列数值越大信号越强);
- 确认
-c参数指定的信道与目标一致,错误信道会导致无法关联; - 更新网卡驱动:
sudo apt update && sudo apt upgrade,或更换兼容网卡(如Alfa系列)。
5.2 破解进度停滞,提示"Received timeout"(超时)
问题原因:网络延迟高、路由器响应慢或数据包丢失。
解决方案:
- 增大超时时间:
-t 15(设置为15秒)和-T 1(M5/M7超时1秒); - 启用忽略校验和错误:
-F,减少因信号差导致的数据包校验失败; - 使用
-r 5:10参数,每尝试5次暂停10秒,降低网络负载。
5.3 提示"WPS locked"(WPS已锁定)
问题原因:多次失败尝试触发路由器WPS锁定机制。
解决方案:
- 等待锁定时间结束(默认等待60秒,可通过
-l 300设置为5分钟); - 若频繁锁定,减少尝试频率:
-d 10(每次尝试间隔10秒); - 避免使用
-L参数强制忽略锁定(可能导致路由器永久禁用WPS)。
5.4 pixiewps攻击失败,提示"Pixiewps failed to find a valid PIN"
问题原因:目标路由器不存在pixiewps支持的漏洞,或参数捕获不完整。
解决方案:
- 关闭
-K参数,改用常规暴力破解模式; - 确认目标路由器型号,查询是否存在已知WPS漏洞(如Realtek RTL819x芯片设备较易受攻击);
- 重新扫描并确保捕获完整的WPS帧(可通过
-O保存数据包,用Wireshark验证)。
6. 注意事项
- 法律与伦理红线 :Reaver仅可用于已授权的网络安全测试(如测试自己的路由器),未经允许破解他人Wi-Fi属于违法行为,可能违反《网络安全法》《治安管理处罚法》,面临罚款或刑事责任。
- 破解时间差异:暴力破解时间从几分钟到几小时不等,取决于路由器的WPS实现(部分路由器会故意延迟响应)、信号质量和尝试频率,耐心是成功的关键。
- WPS功能现状 :新版路由器多默认关闭WPS功能或修复了相关漏洞,Reaver的成功率已大幅下降,建议优先尝试pixiewps攻击(
-K参数),失败后再考虑暴力破解。 - 避免滥用工具:即使成功破解他人Wi-Fi,也不可未经允许访问网络资源(如窃取数据、发起攻击),网络安全测试的目的是发现漏洞并帮助修复,而非非法入侵。
- 保护自身网络:作为防御措施,建议关闭自家路由器的WPS功能(在管理界面设置),使用复杂的WPA2-PSK密码(12位以上混合字符),定期更新路由器固件。
7. 总结
Reaver是WPS协议破解的经典工具,通过暴力尝试PIN码或结合pixiewps漏洞利用,可高效获取Wi-Fi密码,是无线网络安全测试的重要工具。但需明确:工具的合法性完全取决于使用场景,必须在获得明确授权的前提下操作。
使用时应优先尝试-K参数启用pixiewps攻击(利用漏洞加速破解),失败后再进行常规暴力破解,并根据目标路由器的特性调整延迟、超时等参数,提高成功率。同时,需时刻牢记法律与伦理边界,将工具用于正当的安全测试与学习,推动网络安全防护水平的提升。