wifit3 WPS 路由器型号提取指南:信标 WPS IE 里隐藏的 5 个关键情报
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
Wifit3 是一款仅依赖 USB 无线网卡、跨平台的 Wi-Fi 安全审计工具。它的 Scanner 不仅能看到 SSID 和加密方式,还会逐字节解析每个信标帧(Beacon)里的WPS IE(Wi-Fi 简单配置厂商信息元素),从中提取路由器的厂商、型号、WPS 版本、锁定状态等关键情报——这就是 WPS 路由器型号提取的核心来源。
一、WPS IE 藏在哪里?
WPS IE 并不是标准 802.11 信息元素,而是伪装在厂商特定 IE(Tag 221)里,以 OUI00:50:F2+ 类型4作为身份证:
| 特征 | 值 | 含义 |
|---|---|---|
| Tag ID | 0xDD(221) | Vendor Specific 厂商元素 |
| OUI | 00:50:F2 | Wi-Fi 联盟 |
| OUI Type | 04 | WPS / Wi-Fi Simple Config |
| 内部结构 | 大端 TLV | 2 字节属性 ID + 2 字节长度 + 值 |
wifit3 的信标解析器在遍历 IE 时发现OUI == 00:50:F2且type == 4,就收集 WPS 载荷并交给专用解析函数,代码位置见 _parse_wps_ie。
二、Beacon WPS IE 能解析出哪些字段?
解析函数会遍历嵌套 TLV,把对审计者有意义的字段全部"挑"出来,写入AccessPoint模型(access_point.py):
| WSC 属性 ID | wifit3 字段 | 你得到的情报 |
|---|---|---|
0x1021Manufacturer | wsc_manufacturer | 厂商名,如 "TP-Link" |
0x1023Model Name | wsc_model_name | 型号名,如 "TL-WR841N" |
0x1024Model Number | wsc_model_number | 型号编号 |
0x1011Device Name | wsc_device_name | 设备名(常与 SSID 同源) |
0x1054Primary Dev Type | wsc_device_type | 设备类别(网络基础设施等) |
0x104AVersion / Vendor Ext | wps_version | WPS 1.0 或 2.0 |
0x1057AP Setup Locked | wps_locked | 是否被"锁定" |
0x1008Config Methods | wps_config_methods | 支持 PIN / PBC 哪种方式 |
0x1012Device Password ID | wps_device_password_id | 0x0004表示 PBC 窗口打开中 |
完整属性 ID 清单定义在 messages.py,型号提取逻辑在 wsc/identity.py。
上图的 Scanner 列表中,WPS 列就是信标解析结果的直接呈现:有的 AP 显示WPS 🔒(带锁,已被锁定),有的只显示WPS——这些标记全部来自 Beacon WPS IE 的AP Setup Locked与Config Methods位。
三、型号提取的"三源优先级":谁更可信?
wifit3 没有盲信任信标,它用一个多来源证据仓库 ApIdentity 按优先级合并三个来源(IdSource):
- WSC M1(最高)—— 主动发起 WPS 会话后从 M1 消息的加密 TLV 中提取,AP 亲手"报菜名",最可靠;
- WSC Beacon—— 被动解析信标/探测响应里的 Tag 221,即本文主角;
- IEEE OUI(兜底)—— 只查 MAC 前 3 字节的厂商注册库,能给出厂商但给不了型号。
型号最终通过 ApIdentity.model 按 "Model Name → Model Number → Device Name" 的顺序降级取值,并做合法性校验(避免把厂商名当型号用)。这意味着:只要路由器没关 WPS,wifit3 大概率能比 OUI 数据库给出更精确的厂商 + 具体型号。
四、锁定状态与 PBC 窗口:型号之外的情报价值
wps_locked和wps_device_password_id两个字段的组合驱动了一个关键属性 wps_pbc_active:
当 AP 同时满足「存在 WPS」+「Selected Registrar 激活」+「DevPwId == 0x0004」时,说明PBC(物理按钮)配置窗口正在打开。
这正是自动捕获 PSK 的触发器——窗口约 120 秒,wifit3 会立刻翻转角色当入网方(Enrollee)抢跑握手,在 M8 中解密出明文口令。相关攻击细节(PIN 暴力、PixieDust、锁检测)都写在 campaigns/wps/README.md,锁的静默检测启发式在 lock.py。
上图右侧详情区清楚展示了WPS: 1.0 🔒——这就是从 WPS IE 里读出的Version与AP Setup Locked字段;日志底部的Password for AirLink89300则印证了型号提取(AirLink89300 正是来自 WSC 身份 TLV)。
五、延伸阅读与代码地图
| 模块 | 路径 | 作用 |
|---|---|---|
| 信标 IE 遍历 | parser.py | 识别 Tag 221 / OUI 00:50:F2 |
| WPS IE TLV 解析 | parser.py | 提取型号/版本/锁/配置方法 |
| 身份证据合并 | wsc/identity.py | 三源优先级写入 ApIdentity |
| WSC 属性 ID 字典 | wsc/messages.py | 全部 TLV 编号 |
| WPS 攻击总览 | campaigns/wps/README.md | PIN / PBC / PixieDust 架构 |
| 硬件支持清单 | docs/SUPPORTED-HARDWARE.md | 各 USB 网卡 WPS 能力差异 |
六、安全启示
- 普通用户:信标里广播的 WPS IE 意味着你的路由器在"裸奔"——型号、WPS 版本、是否锁定全暴露给任何在范围内的扫描器。建议在路由器设置中彻底关闭 WPS(PIN 模式),并关注固件更新;
- PIN 模式的 8 位数字只有约 11,000 种有效组合(前半 10⁴ + 后半 10³ + 校验位固定),被暴力破解只是时间问题,PBC 窗口则可以被被动侦测后抢注;
- 关闭 WPS 后,信标中的 Tag 221 WPS 元素消失,wifit3 的型号提取就会降级到仅靠 OUI——厂商仍在,但具体型号无从得知。
【免费下载链接】wifit3Wifite but USB-only & cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考