免责声明
本教程仅用于教育目的和网络安全的合法测试,未经授权对任何网络进行渗透测试是违法行为,请确保你只在拥有明确书面授权的网络(例如你自己的家庭网络或用于测试的专用网络)上使用这些技术,作者对任何非法使用本教程信息所导致的后果概不负责。

第一部分:核心概念与工具准备
在开始之前,你必须理解几个核心概念,并准备好必要的工具。
核心概念
-
无线网络监听模式:
- 正常模式: 你的无线网卡连接到一个接入点,只能收发该 AP 的数据。
- 监听模式: 你的无线网卡不再连接任何 AP,而是像“收音机”一样,监听并捕获空中所有无线数据包,这是破解的基础,并非所有网卡都支持此模式。
-
WPA/WPA2/WPA3 加密:
- WEP (已淘汰): 一种非常弱的加密方式,几分钟内即可破解,现代网络已不再使用。
- WPA/WPA2 (最常见): 目前最主流的加密方式,它的安全性在于一个 四次握手 过程,我们破解的目标就是捕获这个握手包。
- WPA3 (最新): 使用更安全的加密协议,Aircrack-ng 对其破解难度极高,甚至不可能,本教程主要针对 WPA/WPA2。
-
四次握手: 当一个客户端设备(如手机、电脑)连接或重新连接到 WPA/WPA2 加密的网络时,它会与接入点进行一次四次握手,在这个过程中,客户端和 AP 交换了加密信息,其中包含了用于验证密码的 PMK (Pairwise Master Key),Aircrack-ng 的核心就是利用捕获的这个握手包,配合一个密码字典,来暴力破解出正确的密码。
(图片来源网络,侵删)
必要工具
-
支持监听模式的无线网卡:
- 推荐型号: Alfa AWUS036系列 (如 AWUS036NHA, AWUS036ACH) 是最经典、兼容性最好的选择。
- 为什么需要它: 内置网卡的驱动通常不支持监听模式,而这类外置USB网卡通常基于 Atheros 或 Realtek 芯片,有很好的开源驱动支持。
-
Kali Linux:
- 推荐: Kali Linux 是专门为渗透测试设计的 Linux 发行版,预装了 Aircrack-ng 套件。
- 方式:
- 虚拟机: 在 VMware 或 VirtualBox 中安装 Kali Linux,最简单安全的方式。
- 物理机 (双系统/U盘): 直接在你的电脑上安装 Kali Linux 或使用 Live USB 启动。
-
密码字典:
- 这是用于暴力破解的“密码列表”,破解成功率取决于字典的质量和大小。
- 如何获取:
- Kali 自带:
/usr/share/wordlists/目录下有许多字典,rockyou.txt.gz(解压后是一个非常有效的字典)。 - 在线下载: 可以在网上搜索 "password wordlist" 找到更多资源。
- 自定义: 你可以自己创建一个包含可能密码的文本文件。
- Kali 自带:
第二部分:实战步骤
我们将按照以下流程进行操作:

- 启用监听模式
- 扫描并发现目标网络
- 捕获数据包
- 强制客户端连接以触发握手
- 提取并分析握手包
- 使用 Aircrack-ng 破解密码
假设你的无线网卡在 Kali 中被识别为 wlan0。
步骤 1: 启用监听模式
打开终端,执行以下命令:
airmon-ng start wlan0
- 命令解释:
airmon-ng是 Aircrack-ng 套件的一部分,用于管理监听模式。 - 预期输出:
- 程序会先列出可能干扰无线进程的进程,并询问是否要杀死它们,输入
y并回车。 - 它会告诉你监听模式已成功启动,并显示新的接口名称,通常是
wlan0mon。
- 程序会先列出可能干扰无线进程的进程,并询问是否要杀死它们,输入
你的网卡 wlan0 已经变成了监听模式的 wlan0mon。
步骤 2: 扫描并发现目标网络
使用 airodump-ng 扫描周围的无线网络。
airodump-ng wlan0mon
- 命令解释:
airodump-ng用于监听和显示无线网络信息。 - 预期输出:
- 终端会显示一个动态列表,包含所有扫描到的 AP (接入点) 和客户端 (STA)。
- AP 信息:
BSSID(AP 的 MAC 地址),PWR(信号强度),CH(信道),ENC(加密方式, 如 WPA2),ESSID(网络名称/SSID)。 - 客户端 信息: 连接到各个 AP 的设备 MAC 地址。
找到你的目标网络,记下它的 BSSID、信道 和 ESSID。
BSSID: AA:BB:CC:11:22:33CH: 6ESSID: "MyWiFi"
按 Ctrl + C 停止扫描。
步骤 3: 捕获数据包并准备捕获握手
我们将针对目标网络进行定向监听,并将捕获的数据包保存到文件中。
airodump-ng --bssid AA:BB:CC:11:22:33 -c 6 -w capture wlan0mon
-
命令解释:
--bssid AA:BB:CC:11:22:33: 只监听指定 BSSID 的网络。-c 6: 只监听指定信道 (6) 的数据,提高效率。-w capture: 将捕获的数据包保存为capture-01.cap,capture-02.cap等文件。capture是前缀。wlan0mon: 使用我们创建的监听接口。
-
预期输出:
- 终端会显示指定网络的详细信息,包括连接到它的客户端列表。
- 屏幕底部会显示数据包捕获的统计信息,如
# packets。
程序正在持续监听,等待握手包的发生。
步骤 4: 强制客户端连接以触发握手
握手包只在客户端连接或重新连接网络时产生,如果目标网络下已经有设备正在使用,你可以跳过这一步,只需等待即可。
如果没有设备在线,我们需要“制造”一个连接机会,最常用的方法是 Deauthentication Attack (解除认证攻击),它会强制已连接的客户端断开连接,客户端通常会自动重新连接,从而触发握手。
打开一个新的终端窗口,执行以下命令:
aireplay-ng -0 10 -a AA:BB:CC:11:22:33 -c CLIENT_MAC wlan0mon
-
命令解释:
-0: 发送解除认证包。10: 发送 10 个解除认证包(你可以调整这个数字,5-10 次就足够)。-a AA:BB:CC:11:22:33: 目标 AP 的 BSSID。-c CLIENT_MAC: (可选) 指定要断开连接的客户端 MAC 地址,如果不加此参数,则会断开所有连接的客户端,你可以从airodump-ng的输出中找到一个客户端的 MAC。wlan0mon: 监听接口。
-
预期效果:
- 在
airodump-ng的窗口中,你会看到指定的客户端被断开连接,然后在几秒内又重新连接回来。 - 当客户端重新连接成功时,
airodump-ng窗口的右上角会显示WPA handshake: AA:BB:CC:11:22:33。这就是我们捕获的握手包!
- 在
看到 WPA handshake 后,立即按 Ctrl + C 停止 airodump-ng,你当前目录下会生成一个 capture-01.cap 文件,里面就包含了我们需要的握手包。
步骤 5: 提取并分析握手包 (可选)
Aircrack-ng 可以直接从 .cap 文件中提取握手包,生成一个更小的文件,便于破解。
aircrack-ng -w /path/to/wordlist.txt -b AA:BB:CC:11:22:33 capture-01.cap
-
命令解释:
-w /path/to/wordlist.txt: 指定你的密码字典路径,Kali 中的/usr/share/wordlists/rockyou.txt。-b AA:BB:CC:11:22:33: 指定目标 AP 的 BSSID。capture-01.cap: 包含握手包的数据包文件。
-
预期输出:
- 程序会开始逐行尝试字典中的密码。
- 如果密码正确,它会显示
KEY FOUND! [你的密码]。 - 如果尝试完整个字典都没有找到,它会显示
KEY NOT FOUND IN WORDLIST。
这就是破解的最后一步! 破解所需的时间取决于密码的复杂度和字典的大小,一个简单的密码和大的字典可能只需要几秒钟,而一个复杂的密码和小的字典可能需要数小时甚至更久。
第三部分:常见问题与技巧
-
问题:
airmon-ng start wlan0提示 "No such device" 或 "Can't open monitor interface"。- 原因: 你的网卡不支持监听模式,或者驱动没有正确安装。
- 解决: 确认网卡型号是否在兼容列表中,尝试在终端输入
lsusb查看网卡识别情况,并安装对应的驱动(如realtek-rt8188eu-dkms)。
-
问题:
airodump-ng扫描不到任何网络。- 原因: 可能是
airmon-ng没有成功启动,或者网卡本身有问题。 - 解决: 检查
iwconfig命令,确认是否有类似wlan0mon的接口,并且它的模式是Monitor。
- 原因: 可能是
-
技巧: 使用
aireplay-ng的-a选项攻击 AP 本身,而不是客户端,有时也能有效触发附近客户端的重新连接。aireplay-ng -0 10 -a AA:BB:CC:11:22:33 wlan0mon
-
技巧: 如果握手一直捕获不到,可以尝试
airodump-ng的--showack选项,它可以帮助识别更微弱的握手信号。 -
重要: 破解过程非常消耗 CPU 资源,如果系统卡顿,可以尝试使用
hashcat,它利用 GPU 进行破解,速度比 Aircrack-ng 快几个数量级。hashcat的基本用法是:hashcat -m 2500 -a 0 handshake.cap wordlist.txt
-m 2500: 指定破解模式为 2500 (PMKID for WPA/WPA2) 或 22000 (WPA-PMK-PMID+SHA256, for WPA3/WPA2)。-a 0: 指定攻击模式为 0 (Straight, 即字典攻击)。handshake.cap: 从.cap文件中提取的握手包文件。
通过以上步骤,你已经掌握了使用 Aircrack-ng 进行 WPA/WPA2 网络渗透测试的基本流程,强大的工具伴随着巨大的责任,请务必在合法授权的前提下使用你的技能,祝你学习顺利!
