尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
wifit3 WiFi 审计工具 WPA PSK 派生实现完整走读:从 PSK 字符串到 M2 的 MIC
wifit3 WiFi 审计工具 WPA PSK 派生实现完整走读从 PSK 字符串到 M2 的 MIC【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3wifit3 是一个跨平台、仅依赖 USB 网卡的 WiFi 审计工具Wifite 的 USB-only cross-platform 版本可抓取 WPA2 四次握手并离线破密。本文完整走读它的 WPA PSK 派生实现WiFi 密码字符串如何一步步变成 PMK、PTK并最终算出四次握手中 M2 消息的 MIC——这是判断密码对不对的最后一道闸门。为什么 WiFi 密码不能直接当密钥在 WPA/WPA2-PSK 中你在路由器里设置的那串密码PSK并不直接参与加密。802.11i 规定了一条派生链PSK 字符串 → PMK32字节→ PTK48字节→ KCK16字节→ M2 的 MIC16字节其中 MICMessage Integrity Check是四次握手 M2 帧里的数字签名AP 用它验证客户端确实知道密码。反过来hashcat-m 22000破密时也是逐条猜测 PSK、重算 MIC、与抓到的 M2 对比——所以这套派生代码是 wifit3 破密管线的数学核心。四条消息中各自携带什么摘自 handshake.py 的模块注释消息方向Nonce 字段有 MIC对破密的价值M1AP→STAANonce无供体提供 ANonceM2STA→APSNonce有基石SNonce MIC EAPOL 全在这里M3AP→STAANonce 重复有供体M4STA→AP通常为 0有仅当 nonce 未清零时可用wifit3 把这条派生链放在一个零 I/O的纯函数模块里方便在任何场景在线应答、离线验证、单元测试复用。第一步PSK 字符串 → PMKPBKDF2-HMAC-SHA14096 轮入口是 wpa_psk.py 中的pmk()全部核心就一行def pmk(psk: str, ssid: str) - bytes: return hashlib.pbkdf2_hmac(sha1, psk.encode(), ssid.encode(), 4096, 32)三个值得注意的点算法是 PBKDF2-HMAC-SHA1固定 4096 次迭代输出 32 字节——这正是 IEEE 802.11i 对 PSK 类网络的 PMK 定义SSID 是盐同一个密码连不同 SSIDPMK 完全不同改 WiFi 名字就等于换了密钥基础这一步计算量最大4096 轮 HMAC破密工具也在这里最耗算力。第二步PMK → PTKPRF-512 与排序对的巧妙设计ptk() 用 PRF-512以 HMAC-SHA1 为基底把 32 字节 PMK 扩成 48 字节 PTK输入数据是两对 32/6 字节的配对值data min(aa, spa) max(aa, spa) min(anonce, snonce) max(anonce, snonce) return _prf(pmk_bytes, bPairwise key expansion, data, 48)aa/spa是AP 与客户端的 MACanonce/snonce是双方随机数妙处在于min/max 排序无论哪一方先写代码AP 端和客户端算出的 PTK 都相同天然消除谁先谁后的歧义48 字节 PTK 的前 16 字节即kck()截出的KCK专门用来计算 MIC。对应的单元测试test_wpa_psk.py直接断言了交换参数后结果不变验证了这个对称性。第三步KCK 与 M2 的 MICHMAC-SHA1 取前 16 字节MIC 的计算在 eapol_mic()return hmac.new(kck_bytes, eapol_payload_mic_zeroed, hashlib.sha1).digest()[:16]规则只有一条但两个细节容易踩坑先清零再签名对 EAPOL 载荷计算时MIC 字段本身必须先置 16 个零字节否则签名覆盖签名自引用偏移量是 81在 802.1X 载荷内MIC 固定从第 81 字节起、长 16 字节——这个常量定义在 eapol.py也是 hashcat 读取 MIC 的位置。上图中焦点页逐条列出 M1–M4 的 Nonce 与 MIC 字段并给出 Valid 4-Way Handshake (M2M3) 的判定——底层用的就是同一套偏移与长度常量。一条调用链打通实战mic_for()mic_for() 把整条链串成一次调用拥有这个 PSK 的客户端对这段 EAPOL 字节会算出什么 MICdef mic_for(psk, ssid, aa, spa, anonce, snonce, eapol_payload_mic_zeroed): k kck(ptk(pmk(psk, ssid), aa, spa, anonce, snonce)) return eapol_mic(k, eapol_payload_mic_zeroed)wifit3 用它做了两件性质相反的事在线伪造fake_auth.py 的受害者客户端模拟器收到 M1 后用已知 PSK 现场算出合法 MIC 并回发 M2——AP 只有在 MIC 正确时才会推进握手所以收到 M3 就等价于我们的 WPA2 密码学被真机验证正确离线验证crack.py 逐条读取.hc22000哈希行对每个候选密码重算 MIC 并与目标比对不依赖 hashcat 也能独立证明一条 EvilTwin 抓包可被破解EvilTwin 端到端测试 在无硬件环境下走通 M1 → 客户端 M2真实 MIC→ 解析 → 组装 hc22000 → 破解的全链路保证这条数学链自洽。用 IEEE 标准测试向量守住正确性密码学代码最怕差一字节。wifit3 在 test_wpa_psk.py 中直接内置了 IEEE 802.11i 附录 J 的官方向量如pmk(password, IEEE)必须等于f42c6fc5…9710a12e再加一个错误密码必须算出不同 MIC的反向断言——标准向量 对称性 反例三层验证覆盖了整条派生链。关键文件清单文件作用src/wifit3/crack/wpa_psk.pyPMK/PTK/KCK/MIC 纯函数派生链本文主角src/wifit3/dot11/eapol.pyEAPOL-Key 帧组装MIC 偏移 81 / 长度 16src/wifit3/crack/handshake.py握手可破解性判定 hc22000 哈希行生成scripts/ap/fake_auth.py在线用真实 MIC 应答 M2验证密码学scripts/ap/crack.py离线逐候选重算 MIC 验证哈希行tests/crack/test_wpa_psk.pyIEEE 802.11i 标准向量回归测试一句话总结wifit3 把 802.11i 附录 J 的四步密码学压缩进约 50 行纯函数——PBKDF2 出 PMK排序对出 PTKKCK 出 MIC——再用标准向量钉死正确性让验证握手与破密走的是同一套数学。【免费下载链接】wifit3Wifite but USB-only cross-platform.项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何为AI插件写评估测试?portal-ai-plugins的51个测试套件与Token节省基准方法论完整解析

如何为AI插件写评估测试?portal-ai-plugins的51个测试套件与Token节省基准方法论完整解析

如何为AI插件写评估测试?portal-ai-plugins的51个测试套件与Token节省基准方法论完整解析 【免费下载链接】portal-ai-plugins 项目地址: https://gitcode.com/gh_mirrors/po/portal-ai-plugins portal-ai-plugins 是 Spotify 官方开源的 AI 插件市场&#…

📅 2026/10/15 11:56:13
群聊高级配置实战:openclaw-lark 按群白名单、技能绑定与自定义系统提示词设置指南

群聊高级配置实战:openclaw-lark 按群白名单、技能绑定与自定义系统提示词设置指南

群聊高级配置实战:openclaw-lark 按群白名单、技能绑定与自定义系统提示词设置指南 【免费下载链接】openclaw-lark 飞书官方出品的 OpenClaw 飞书/Lark Channel 插件 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-lark openclaw-lark 是飞书/Lark…

📅 2026/10/15 15:52:22
VueUse 函数详解:useArrayFindLast——响应式获取数组中最后一个匹配元素

VueUse 函数详解:useArrayFindLast——响应式获取数组中最后一个匹配元素

前端 【免费下载链接】vueuse Collection of essential Vue Composition Utilities for Vue 3 项目地址: https://gitcode.com/gh_mirrors/vu/vueuse 点击查看 免费下载 useArrayFindLast 是 VueUse 提供的一组响应式数组工具函数之一,它把原生 Array.p…

📅 2026/10/26 18:11:43
MORE NEWS

更多资讯

📰

超市管理系统.zip从解压到跑通:环境配置与核心改造

简介:这份毕业设计与课程设计两用的超市管理系统项目,面向计算机相关专业在校生、初入行的开发者及需要快速搭建完整演示系统的同学,可覆盖前端页面展示、后端业务逻辑与数据库配置等常见课设/毕设环节。压缩包共 2001 个文件、约 52.19MB&am…

📰

JDK 15.0.2.zip:解压即用的最小可信交付单元

简介:本资源为Oracle官方发布的Java开发工具包JDK 15.0.2完整安装包(zip格式),面向Java初学者、中级开发者及教学实践者,用于搭建标准Java开发与运行环境,支撑新特性学习、项目编译调试及JVM性能验证。压缩…

📰

七自由度车辆动力学模型:MATLAB+Dugoff轮胎的底盘控制标定实战

简介:本资源是一份面向车辆动力学建模与仿真初学者及进阶工程师的七自由度车辆模型实践资料,聚焦汽车控制算法开发、驾驶模拟器构建与底盘性能优化等实际场景。压缩包含2个核心文件:Simulink模型文件(seven_dugoff.mdl&#xff09…

📰

Python自动化办公实战:Excel、Word、PDF、PPT批量处理与避坑指南

简介:这份Python自动化办公教程面向希望提升日常办公效率的职场人士与编程初学者,以Python为工具解决表格处理、文档生成、邮件收发等重复性事务。教程从基础语法讲起,逐步覆盖Excel读写与图表制作、Word与PDF文档操作、PPT快速入门、邮件收发…

📰

EMD-KPCA-LSTM多维时间序列预测:非平稳光伏功率的MATLAB实现

简介:面向光伏功率预测与多变量时间序列建模需求,这份程序包提供完整的EMD-KPCA-LSTM组合模型实现。资源适合有一定深度学习基础、希望将信号分解与特征提取方法融入LSTM预测流程的研究者。包内共24个文件,以MATLAB源程序(.m&…

📰

3ds Max界面太难?十区拆解+新手必练操作,轻松入门动画与效果图

简介:全套3ds Max动画制作实例教程的完整课件PPT,面向三维动画初学者、高校师生及培训讲师,可帮助快速熟悉3ds Max 2019的操作界面与基本操作,为后续建模、材质、动画设计打下基础。资源为单个PPTX演示文稿,共1个文件&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬