ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

无线网络安全实验:aircrack-ng抓包与WPA握手破解原理及实战

无线网络安全实验:aircrack-ng抓包与WPA握手破解原理及实战 简介这份资源是西南科技大学无线网络安全技术课程的实验四报告面向学习无线网络安全、需要完成WPA/WPA2破解实验的高校学生与安全入门者。内容围绕使用aircrack-ng工具链展开涵盖配置实验环境、开启网卡监听模式、生成字典文件、抓取握手包并暴力破解WPA密钥的完整流程同时包含实验思考与问题分析如破解原理、家用WiFi安全加固建议及握手包文件定位等排错经验。资源包共1个doc文件大小约1.37MB为可直接参考的完整实验报告文档。目前已有812人学习浏览适合作为无线安全实验的对照模板帮助读者理解aircrack-ng套件中airmon-ng、airodump-ng、aireplay-ng与aircrack-ng的协同用法并借鉴实验者自评与讨论部分完善自己的报告。1. 西南科技大学无线网络安全实验aircrack-ng 抓包与 WPA 破解到底在做什么如果你在实验室里第一次接触无线网络安全大概率会拿到一个标题叫「使用 aircrack-ng 进行 WPA 破解」的实验任务。很多人第一反应是去搜 aircrack-ng 中文版、kali 破解 wifi 密码这类关键词结果搜出来的东西要么是零散命令要么是跳步的教程抓包抓不到、握手包拿不下来、跑字典跑半天没结果最后只能抄同学的报告。这篇笔记就是把这个实验从原理到落地完整拆一遍告诉你 WPA 四次握手到底泄露了什么、aircrack-ng 套件里每个工具负责哪一段、参数怎么设、失败时该看哪里。适合正在做这个实验的本科生也适合想系统理解 WPA 安全边界的运维和渗透测试入门者。核心结论先放这里WPA 破解的本质不是「算」出密码而是抓到一个完整的四次握手包然后拿字典去离线比对能不能出结果取决于握手包质量和字典命中率跟工具本身关系不大。2. 先搞清楚 WPA 四次握手泄露了什么从 PSK 到 PTK 的推导链2.1 WPA-PSK 的密钥层次与握手包为什么能被离线爆破WPA-PSK 的认证过程不传输密码本身但它传输了足够多的信息让攻击者可以在本地验证「某个候选密码是否正确」。这条推导链是这样的密码passphrase加上 SSID 经过 PBKDF2 迭代 4096 次生成 PSKPre-Shared Key256 位PSK 再参与四次握手结合 ANonce、SNonce、AP 的 MAC、STA 的 MAC通过 PRF-512 推导出 PTKPairwise Transient KeyPTK 的一部分用来计算握手消息里的 MICMessage Integrity Code。关键点在于ANonce、SNonce、两个 MAC 地址、SSID 这些参数全部在握手包里明文可见MIC 也在包里。所以攻击者拿到握手包后可以拿字典里每个候选密码走一遍同样的推导算出 MIC 去比对。比对成功密码就对了。这就是离线爆破的全部逻辑。这也解释了为什么 WPA 比 WEP 安全得多WEP 的 IV 空间太小可以被统计分析直接还原密钥WPA 的 PBKDF2 迭代 4096 次每次候选密码都要做一次完整推导计算成本高只能靠字典命中。所以「破解」这个词其实不太准确叫「字典验证」更贴切。2.2 aircrack-ng 套件分工别把抓包和爆破混在一个工具里很多人以为 aircrack-ng 是一个工具其实它是一套。做这个实验至少涉及四个命令各自职责不同工具职责本实验中的角色airmon-ng管理无线网卡监听模式把网卡切到 monitor 模式airodump-ng扫描 AP、抓包、锁定目标找到目标 AP 并抓四次握手aireplay-ng注入帧、发起 deauth强制客户端重连以触发握手aircrack-ng离线比对字典用握手包验证候选密码常见做法是先用 airmon-ng 开监听再用 airodump-ng 锁定目标 BSSID 和信道抓包的同时用 aireplay-ng 发 deauth 逼客户端重连抓到握手后 CtrlC 停掉最后用 aircrack-ng 跑字典。整个流程里aircrack-ng 只在最后一步出场前面全是抓包的事。新手最容易犯的错就是抓包还没成功就急着跑 aircrack-ng结果提示「No valid WPA handshakes found」。2.3 实验环境与网卡选型不是所有无线网卡都能注入这个实验对硬件有硬性要求网卡必须支持 monitor 模式和帧注入。常见的笔记本内置网卡大多不支持注入需要外接 USB 无线网卡。选型时看芯片方案RTL8812AU、AR9271、MT7612U 这几类在 Kali 下驱动成熟、支持注入是实验室里比较稳的选择。环境上Kali Linux 是标配因为驱动和工具链开箱即用。如果你在虚拟机里做必须把 USB 网卡直通给虚拟机否则 airmon-ng 看不到网卡。检查网卡是否被识别、是否支持监听用下面两条命令# 查看无线网卡是否被识别 iwconfig # 查看网卡支持的接口模式重点看是否有 monitor iw list | grep -A 8 Supported interface modesiwconfig输出里能看到 wlan0 这类接口名说明驱动加载正常。iw list里如果 Supported interface modes 列表包含 monitor说明网卡支持监听模式如果还包含 AP 和 managed基本够用。注意有些网卡虽然列了 monitor但注入能力受限实际发 deauth 时可能失败这时候换网卡比调参数更有效。3. 用 airmon-ng 和 airodump-ng 抓到一个可用的 WPA 握手包3.1 开启监听模式并确认网卡状态第一步是把网卡切到监听模式。Kali 下直接# 杀掉可能干扰的进程然后开启监听模式 airmon-ng check kill airmon-ng start wlan0 # 确认监听接口已创建通常叫 wlan0mon iwconfigairmon-ng check kill会干掉 NetworkManager、wpa_supplicant 这些会抢占网卡的进程不做这一步后面开监听经常失败。airmon-ng start wlan0执行后原来的 wlan0 会变成 wlan0mon不同驱动命名可能不同以 iwconfig 输出为准。如果提示「monitor mode enabled」说明成功。参数说明airmon-ng start后面跟的是物理接口名不是监听接口名。如果你已经开过一次监听再执行会报错先用airmon-ng stop wlan0mon关掉再重开。这一步翻车的典型现象是 iwconfig 里看不到 wlan0mon原因多半是网卡不支持监听或者被其他进程占用回到airmon-ng check kill重来。3.2 扫描周边 AP 并锁定目标监听模式开好后用 airodump-ng 扫描# 扫描所有信道上的 AP 和客户端 airodump-ng wlan0mon输出分上下两块上半部分是 AP 列表包含 BSSIDAP 的 MAC、CH信道、ENC加密方式、ESSID网络名下半部分是连到这些 AP 的客户端列表包含 STATION客户端 MAC和 BSSID它连的 AP。你要找的是 ENC 列显示 WPA2 或 WPA 的目标记下它的 BSSID 和 CH。锁定目标后重新开一个终端指定信道和 BSSID 抓包# 锁定目标 AP只抓这个信道输出到文件 airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 6 -w wpa_capture wlan0mon参数说明--bssid指定目标 AP 的 MAC-c指定信道必须和 AP 一致否则抓不到-w指定输出文件前缀。执行后airodump-ng 右上角会显示「WPA handshake:」字样一旦抓到完整握手这里会变成目标 BSSID。如果一直不出现说明还没抓到握手需要下一步的 deauth。3.3 用 aireplay-ng 发 deauth 逼出四次握手WPA 握手只在客户端连接 AP 的瞬间发生。如果目标 AP 下已经有客户端连着而且一直不掉线你就抓不到握手。这时候需要主动断开客户端逼它重连# 对目标 AP 下的某个客户端发 deauth逼它重连 aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon参数说明--deauth 5表示发 5 个 deauth 帧数量别太多够触发重连就行-a是 AP 的 BSSID-c是目标客户端的 MAC从 airodump-ng 下半部分拿。如果不想指定客户端可以省略-c对广播地址发但效果不如指定客户端稳。发完之后盯着 airodump-ng 的界面右上角出现「WPA handshake: AA:BB:CC:DD:EE:FF」就说明抓到了。这时候 CtrlC 停掉 airodump-ng当前目录下会生成 wpa_capture-01.cap 等文件握手包就在这个 cap 文件里。提示deauth 帧属于管理帧在开启了 802.11wPMF的网络里会被保护发出去也没用。实验室环境一般没开 PMF但如果你发现 deauth 发了十几次都抓不到握手先确认目标是不是开了 PMF或者换个有客户端在线的 AP 试。4. 用 aircrack-ng 跑字典参数、字典和结果判读4.1 握手包有效性检查与 aircrack-ng 基本命令抓到 cap 文件后先别急着跑字典确认里面确实有握手# 检查 cap 文件里是否包含握手 aircrack-ng wpa_capture-01.cap如果输出里出现「1 handshake」或者「WPA (1 handshake)」说明握手有效。如果显示「0 handshakes」说明没抓到回去重新抓。这一步是很多人忽略的直接跑字典跑半天没结果其实是握手包根本就是空的。确认有效后跑字典# 用字典文件对握手包进行离线比对 aircrack-ng -w /usr/share/wordlists/rockyou.txt -b AA:BB:CC:DD:EE:FF wpa_capture-01.cap参数说明-w指定字典路径-b指定目标 AP 的 BSSIDcap 文件里可能有多个 AP 的包指定 BSSID 避免跑错目标。如果只有一个 AP-b可以省略。执行后 aircrack-ng 会显示「Reading packets」「Aircrack-ng X.XX」然后开始逐个候选密码比对速度取决于 CPU 和字典大小。4.2 字典选择与命中率rockyou 不是万能药字典决定了能不能出结果。Kali 自带/usr/share/wordlists/rockyou.txt这是最常用的入门字典包含约 1400 万个常见密码。但 rockyou 是多年前泄露的密码集对现代强密码命中率有限。实验室环境里如果老师设置的密码是简单数字或常见词rockyou 基本够用如果是随机强密码跑再久也出不来。实际做实验时我一般会准备三档字典第一档是自建的小字典把实验室常见密码比如 12345678、password、admin123、学号后八位放进去几秒钟就能验证流程通不通第二档是 rockyou验证工具链完整第三档才是按需生成的规则字典。用 hashcat 的规则引擎配合 aircrack-ng 的字典可以覆盖「常见词数字后缀」这类模式但这是进阶用法实验阶段先把前两档跑通。注意字典路径别写错/usr/share/wordlists/下如果只有 rockyou.txt.gz需要先gunzip rockyou.txt.gz解压。aircrack-ng 不认 gz 压缩包会直接报错退出。4.3 跑出结果后的判读与常见误报aircrack-ng 跑出结果时会显示「KEY FOUND! [ xxxxxxxx ]」方括号里就是密码。如果跑完字典没找到会显示「Passphrase not in dictionary」意思是字典里没有不代表握手包有问题。这里有个容易误判的点aircrack-ng 在比对过程中会显示「Testing WPA...」和进度但不会实时告诉你「这个密码不对」只有命中才输出。所以跑大字典时要有耐心或者用-b锁定目标减少干扰。另外如果 cap 文件里包含多个握手包aircrack-ng 会逐个尝试速度会慢一些用-b指定 BSSID 可以只跑目标。5. 避坑与排查抓不到握手、跑不出密码、网卡不听话怎么办5.1 现象airodump-ng 一直不显示 WPA handshake原因通常有三个一是目标 AP 下没有客户端在线没有客户端就没有握手可抓二是 deauth 没发出去或者被 PMF 保护三是信道没锁定airodump-ng 在跳信道错过了握手帧。解决先用airodump-ng wlan0mon全信道扫描确认目标 AP 的 STATION 列表里有客户端。如果有客户端但抓不到检查 deauth 命令里的-a和-c是否写对BSSID 和客户端 MAC 一个字符都不能错。如果目标开了 PMF换一个没开 PMF 的 AP 做实验或者用客户端主动重连的方式比如手动断开再连来触发握手。5.2 现象aircrack-ng 提示 No valid WPA handshakes found原因cap 文件里确实没有完整握手或者握手包不完整只抓到四次握手里的部分帧。airodump-ng 右上角显示 handshake 只代表抓到了握手帧不代表四帧都完整。解决用aircrack-ng cap文件单独检查看输出里 handshake 数量。如果是 0回去重抓如果是 1 但跑字典没结果可能是握手包质量差重新抓一次尽量在客户端刚重连的瞬间多抓几秒。另外cap 文件如果被其他工具改过或者截断也会导致握手无效用原始抓包文件。5.3 现象airmon-ng start 报错网卡切不到监听模式原因网卡芯片不支持监听或者驱动没装好或者被 NetworkManager 占用。解决先airmon-ng check kill杀掉干扰进程再airmon-ng start。如果还不行iw list看 Supported interface modes 里有没有 monitor没有就是硬件不支持换网卡。虚拟机环境下确认 USB 网卡已经直通给虚拟机lsusb能看到网卡设备。5.4 现象跑字典速度极慢几万个密码跑十几分钟原因aircrack-ng 是 CPU 跑 PBKDF2单核性能有限字典大了自然慢。另外如果 cap 文件里包含多个 AP 的包aircrack-ng 会逐个尝试进一步拖慢。解决用-b锁定目标 BSSID减少无关计算。字典先用小字典验证流程确认能出结果再换大字典。如果追求速度可以把 cap 文件转成 hashcat 格式用cap2hccapx或hcxpcapngtool用 GPU 跑速度能提升几十倍但这是另一个工具链的事实验阶段用 aircrack-ng 跑通流程即可。5.5 现象deauth 发了但客户端不重连原因客户端可能处于休眠或者已经断开或者 deauth 帧被驱动过滤。解决多发几次 deauth间隔一两秒别一次发太多。如果客户端是手机确认屏幕是亮的、WiFi 是开的。有些客户端在收到 deauth 后会延迟重连耐心等几秒。如果始终不重连换一个活跃客户端或者等新客户端接入时抓握手。6. 从实验到实战握手包转 hashcat 格式与 GPU 加速验证实验做完流程跑通了下一步值得投入的是把 aircrack-ng 的 CPU 爆破换成 hashcat 的 GPU 爆破。原因很直接aircrack-ng 跑 rockyou 大概每秒几千个密码hashcat 在普通显卡上能跑到每秒几十万甚至上百万同样的字典时间差两个数量级。这不是工具优劣是 CPU 和 GPU 在 PBKDF2 这类并行计算上的天然差距。转换流程分两步。第一步把 cap 文件转成 hashcat 认识的 22000 格式# 用 hcxtools 把 cap 转成 hc22000 格式 hcxpcapngtool -o wpa_hash.hc22000 wpa_capture-01.cap # 确认转换结果里包含有效的握手 cat wpa_hash.hc22000hcxpcapngtool是 hcxtools 套件里的工具Kali 下apt install hcxtools就能装。转换后打开 hc22000 文件应该能看到一行以WPA*02*开头的记录包含 MIC、MAC、SSID 等字段。如果文件是空的说明 cap 里没有有效握手回去重抓。第二步用 hashcat 跑# 用 hashcat 模式 22000 跑 WPA 握手指定字典 hashcat -m 22000 wpa_hash.hc22000 /usr/share/wordlists/rockyou.txt # 跑完后查看结果 hashcat -m 22000 wpa_hash.hc22000 --show参数说明-m 22000是 hashcat 里 WPA-PBKDF2-PMKIDEAPOL 的模式编号对应 hc22000 格式--show用来查看已经跑出的结果不会重新跑。hashcat 跑的时候会显示速度H/s和进度GPU 跑 rockyou 通常几分钟内出结果。如果提示「No devices found」检查显卡驱动和 OpenCL 运行时是否装好。这里有个血泪经验hashcat 的字典路径和 aircrack-ng 一样别用 gz 压缩包。另外hashcat 跑的时候机器会发热笔记本长时间跑注意散热别把实验机跑挂了。还有一点hashcat 的--show只显示已经破解的记录如果没跑出结果--show是空的别误以为命令没执行。从验证方法上说判断一个握手包值不值得投入 GPU 跑看两个指标一是 hc22000 文件里WPA*02*记录的完整性二是 SSID 和 MAC 是否和目标一致。如果记录里 MAC 全是 0 或者 SSID 为空说明握手包质量差GPU 跑也是白跑。我一般会先用 aircrack-ng 加小字典快速验证握手包能不能出结果能出再转 hashcat 跑大字典这样不浪费 GPU 时间。最后说个习惯做这类实验抓包阶段多花五分钟确认握手完整比后面跑字典跑一小时没结果强得多。我早期做实验时总想快点跑字典看结果结果 cap 文件里根本没握手白等半天。现在我的流程固定成「抓包 → aircrack-ng 检查握手 → 小字典验证 → 大字典或 GPU」每一步都有确认不跳步。希望帮到你。本文还有配套的精品资源点击获取
返回列表