Pixiewps 是一款用 C 语言编写的工具,用于离线暴力破解 WPS PIN,利用某些软件实现中低或不存在熵的漏洞,即 Dominique Bongard 在 2014 年夏季发现的所谓“精灵粉尘攻击”。此工具仅供教育用途。
与传统的在线暴力破解攻击(如 Reaver 或 Bully 等工具实现的方法)需要数小时才能恢复 PIN 不同,该方法仅在数秒或数分钟内就能获得 PIN(具体取决于目标),前提是目标存在漏洞。

自 1.4 版本起,它还可以通过完整的被动捕获(M1 到 M7)为某些设备恢复 WPA-PSK(目前仅适用于某些支持 --mode 3 的设备)。

这一切始于一个社区项目,更多详情可在此处找到:
您也可以访问 wiki。
apt-get -y install build-essential
OpenSSL 也作为可选依赖重新引入,以实现更快的速度。请参阅 构建 部分。
下载
git clone https://github.com/wiire/pixiewps
或
wget https://github.com/wiire/pixiewps/archive/master.zip && unzip master.zip
构建
cd pixiewps*/
make
可选地,可以运行 make OPENSSL=1 以使用更快的 OpenSSL SHA-256 函数。
安装
sudo make install
用法: pixiewps <参数>
必需参数:
-e, --pke : 注册者公钥
-r, --pkr : 注册器公钥
-s, --e-hash1 : 注册者哈希1
-z, --e-hash2 : 注册者哈希2
-a, --authkey : 认证会话密钥
-n, --e-nonce : 注册者随机数
可选参数:
-m, --r-nonce : 注册器随机数
-b, --e-bssid : 注册者 BSSID
-v, --verbosity : 详细程度 1-3,1 最安静 [3]
-o, --output : 将输出写入文件
-j, --jobs : 使用的并行线程数 [自动]
-h : 显示此用法屏幕
--help : 详细帮助及更多用法示例
-V, --version : 显示版本
--mode N[,... N] : 模式选择,逗号分隔 [自动]
--start [mm/]yyyy : 起始日期 (仅模式 3) [+1 天]
--end [mm/]yyyy : 结束日期 (仅模式 3) [-1 天]
-f, --force : 暴力破解全范围 (仅模式 3)
杂项参数:
-7, --m7-enc : 从 M7 恢复加密设置 (仅模式 3)
-5, --m5-enc : 从 M5 恢复秘密随机数 (仅模式 3)
最常见的用法示例是:
pixiewps --pke ... --pkr ... --e-hash1 ... --e-hash2 ... --authkey ... --e-nonce ...
这需要修改版的 Reaver 或 Bully,能够打印 认证会话密钥(--authkey,-a)。推荐使用 reaver-wps-fork-t6x。
该程序还提供了 man 页面和一个详细帮助屏幕(--help),其中包含更多示例。
此功能最初在 Reaver 1.3 中引入。其原理是将私钥选择为 1,从而使得公钥 --pkr 始终为 2。这加快了破解过程,因为 AP 需要更少的计算量来计算 Diffie-Hellman 共享密钥,该密钥后续用于派生加密当前交易的会话密钥。Pixiewps 可以利用此功能,使用户无需输入 --pkr(始终为 2),并且如果指定了额外的参数 --r-nonce 和 --bssid,还可以可选地计算会话密钥(如 --authkey)。
事实证明,某些路由器存在缺陷,无法正确使用此功能。有些甚至无法验证正确的 PIN,导致交易在 M4 后失败。因此,此功能在 Reaver 中已弃用,且不应再使用。
此选项需要 M7 中的 加密设置 属性,该属性在注册器证明知道 PIN 后由接入点(注册者)发送其当前网络配置。
此功能可用于从被动数据包捕获(例如嗅探 PBC 会话)中破解 WPA-PSK(和 WPS PIN)。
此选项仅用于模式 3。使用后,pixiewps 将从当前时间开始暴力破解,一直回溯到 0。概念上与仅使用 --end 01/1970(或 --start 01/1970,因为它们可互换)相同。
空 PIN 以 <empty> 表示,可以在 Reaver 1.6.1 及更高版本中使用 -p "" 进行测试。这源于某些接入点 PIN 方法配置错误,导致 PIN 变量设置为 NULL(或空字符串)。

Pixiewps 可以针对多种平台编译。在 Windows 上,可以使用 MinGW 编译。请确保已安装 pthread 支持。
自 1.4.1 版本起,它已被纳入 OpenWrt 和 LEDE 的官方仓库。
版本号格式为 1.x.y,其中 x 通常表示主要版本,y 表示次要版本(通常用于修复错误或其他小改动)。每个主要版本以 y = 0 开始,即使未明确标记,在发布后的最初几小时内也应视为不稳定版本。
有关版本之间的变更列表,请参阅 CHANGELOG。
:'、'-'、' ',或不使用分隔符WPS pin 和 WPA-PSK)在成功时以 [+] 标记,失败时以 [-] 标记0自第一个版本发布以来,Pixiewps 已经改进很多,但很难跟踪市场上的每一款设备。我们决定添加一条自动消息,表明我们对用户测试设备的参数感兴趣。
kcdtv、rofl0r 和 binarymaster 的帮助和测试soxrok2212、datahead、t6_x、aanarchyy 以及 Kali Linux 社区Pixiewps 基于 Dominique Bongard(@Reversity)的工作: