Aircrack-ng无线审计实战:从监听模式到握手包密码验证
2026/9/15 18:25:42 网站建设 项目流程

1. 关于这套无线审计工具,你需要先弄清楚的事

很多人第一次接触airodump-ngaircrack-ng,是因为在网络安全相关的文章或课程里看到这两个名字。它们是 Aircrack-ng 套件里最核心的两个组件,一个负责“看”和“抓”,一个负责“算”和“破”。简单来说,这套工具是无线网络安全性审计的标配,用来验证你自己的路由器密码是否足够强壮、无线网络是否存在配置漏洞。

在动手之前,我必须先把话讲清楚:这套工具只能用于你拥有合法授权的网络。比如自家路由器、公司分配给安全团队做测试的网络、或者你专门搭起来做实验的 AP。用它去连别人家的 WiFi,哪怕动机只是“好奇”,在绝大多数国家和地区都属于违法行为,这个风险没有任何技术含量能帮你兜住。本文所有操作演示,都默认是在你自己可控的环境里进行。

对一个刚入门的人来说,这套工具能解决的实际问题有三个:一是搞清楚自己家 WiFi 的加密方式到底靠不靠谱,二是验证 WPA2/WPA3 密码字典中的弱密码是否能被轻易枚举出来,三是排查无线网络干扰和信号覆盖问题时,能快速看清周围 AP 的信道占用情况。我见过很多做弱电工程、网络运维的朋友,其实不是为了“破解”才用,而是为了排查同频干扰、确认邻居的 AP 是不是在占用信道,这反而是更常见的日常场景。

如果你是信息安全方向的学生、网络运维工程师、或者单纯想搞清楚 WiFi 协议里握手过程到底是怎么回事的爱好者,这篇文章值得你从头到尾读一遍。我会把从安装、开启监听模式、抓包,到跑字典、分析结果这一整条链路都讲透,所有命令都会给出来,但请务必记得:只能在授权的环境里操作

2. 核心思路拆解:先“听懂”无线网络,再谈“验证”密码

2.1 为什么必须用监听模式,普通网卡不行吗

要理解 airodump-ng 的工作方式,先得明白无线网卡在普通模式下的局限性。普通的 STA 模式(也就是我们平时连接 WiFi 时的工作模式),网卡只会接收发给自己的数据帧,其他同信道的数据包会被网卡硬件直接丢弃。这在日常上网时是高效的,但在无线审计时就完全不够用了。

airodump-ng需要把所有经过当前信道的数据帧都“听”下来——不管是发给谁的,管理帧、控制帧、数据帧统统都要。这就需要把网卡切换到监听模式(Monitor Mode)。在监听模式下,网卡不再关联任何 AP,就像一个站在路边听所有车辆引擎声的人,不参与任何交通,但能记录下每一辆经过的车。

这个底层逻辑决定了后续所有操作都必须以监听模式为前提。Kali Linux 默认带了很多驱动,但并不是所有 USB 网卡都能顺利进入监听模式,这一点在后面第 3 节我会展开讲。

2.2 捕获数据之后,密码是怎么被“验证”出来的

aircrack-ng的核心工作,是对捕获到的数据包做密码分析。很多人误以为它是“实时破解”,其实不是。它是拿捕获到的握手包(WPA/WPA2 的 4-way handshake)或 IV 数据(WEP 场景)做离线运算。

这里单独说一下 WPA2 的情况。WPA2 的密码验证机制是:AP 和客户端通过四次握手协商出一个会话密钥(PTK),而这个 PTK 的推导过程中,有一个关键输入就是PSK + SSID + ANonce + SNonce + MAC 地址的组合。aircrack-ng做的事情就是:从握手包里提取出 AP 的随机数(ANonce)、客户端的随机数(SNonce)、双方的 MAC 地址、以及握手包中的 MIC 校验值,然后把你指定的字典里每一个候选密码都按同样的算法推导一遍,看算出来的 MIC 是否和捕获到的一致。一致,就说明这个密码就是字典里那一个。

理解了这一步,你就会明白两个很重要的事实:

  • 字典里没有的密码,永远跑不出来aircrack-ng不会凭空“算”出密码,它只是验证。
  • 没有抓到握手包,一切都谈不上。客户端和 AP 之间没有发生完整的四次握手,aircrack-ng就没有可以比对的 MIC,自然无从下手。

所以,后面讲airodump-ng时,我会重点说明如何高效抓到完整的握手包,这是整个流程里技术含量最高的部分。

2.3 这套方案的优势和边界

Aircrack-ng 套件的优势在于:组件之间配合成熟、覆盖面广,而且完全开源。从信道扫描、数据包捕获、去重、转格式,到离线密码分析,一套命令全部搞定。相比之下,有些图形化工具虽然点几下鼠标就能出结果,但出了问题你很难定位是哪一步失败了,而用命令行工具,每一步都有清晰的输出日志,排查起来非常直观。

边界也很明显:它是离线密码验证工具,不是万能钥匙。遇到 WPA3 的 SAE 握手,或者客户使用了 20 位以上随机强密码,这套方案基本无能为力。这也恰恰说明,只要密码设置得当,WiFi 是足够安全的。这个认知很重要,能帮你正确看待这套工具的价值:它是“安全检查工具”,不是“魔法门禁卡”。

3. 环境准备:网卡、驱动、系统一个都不能少

3.1 系统选择:Kali 还是其他发行版

我个人的看法是,如果你是第一次接触这套工具,直接用 Kali Linux 是最省心的。Kali 默认预装了 Aircrack-ng 全套工具,省去了编译安装的麻烦。当然,如果你日常用的是 Ubuntu 或者 Debian,也可以通过apt install aircrack-ng安装,同样很简单。macOS 上也可以通过 Homebrew 装,但无线网卡的监听模式支持度非常差,基本只能拿来做离线分析,不推荐用来抓包。Windows 上虽然有一些移植版本,但驱动和网卡支持更是愁人,我建议你干脆装个虚拟机跑 Kali。

这里有一个容易被忽略的细节:虚拟机能不能抓包,取决于 USB 网卡能不能直通给虚拟机。VMware 和 VirtualBox 都支持把 USB 无线网卡直通给虚拟机,但前提是你的无线网卡驱动在 Linux 里能被识别,且支持监听模式。如果你用的是笔记本自带的内置网卡,直接不推荐在虚拟机里折腾,大概率是“能识别,但进不了监听模式”,非常打击积极性。

3.2 网卡选型:为什么某些芯片是实战首选

无线审计这件事,网卡芯片比品牌重要得多。我踩过最大的坑就是买了一个很常见的 USB 无线网卡,结果芯片是 Realtek RTL8811AU,Linux 下驱动要自己编译,而且监听模式不稳定,抓包经常掉帧。后来换了 Atheros AR9271 芯片的网卡(很多老款 150Mbps USB 网卡都是这个芯片),插上就能识别,监听模式非常稳定,而且价格便宜,是圈内默认的入门选择。

如果你有更高的吞吐需求,可以考虑 Ralink RT3070 或者 MT7612U 之类芯片的网卡。但这里我给你的建议是:不要在网卡上追求“贵”,要追求“兼容”。很多高端电竞网卡在 Linux 下的表现反而不如 50 块钱的老款芯片,原因就是驱动不完善。

怎么确认你的网卡是否支持监听模式?插上之后在终端跑:

iw list

找到Supported interface modes那一节,如果列出了monitor,说明驱动层面支持监听模式。如果没列出,就别浪费时间了,换网卡。

注意:在 Linux 下查看无线网卡是否支持监听模式,iw list是最直接的方法。如果这一步都过不了,后面一切免谈。

3.3 安装与基本验证

假设你用的是 Kali 或者 Ubuntu,安装命令如下:

sudo apt update sudo apt install aircrack-ng

安装完成后,验证一下版本:

aircrack-ng --help

如果能看到版本信息和参数说明,说明安装成功。接下来用iwconfig查看你的无线网卡接口名,常见的名字有wlan0wlan1等。记下这个接口名,后面所有命令都会用到。

如果你用的网卡驱动是ath9k_htc(AR9271 常见驱动),插上之后通常不需要额外装驱动,系统自动识别。Realtek 芯片则可能需要去 GitHub 找对应内核版本的驱动编译,过程相对痛苦,这也是我一再强调选芯片的原因。

4. airodump-ng 实操:抓包前的每一步都有讲究

4.1 开启监听模式:几种方式与避坑

拿到接口名之后,第一步是关闭 NetworkManager 等服务,避免它抢占无线网卡。这一步不做,后面会频繁遇到“网卡被断开”或者“信道不断跳动”的问题。

sudo systemctl stop NetworkManager sudo systemctl stop wpa_supplicant

提示:如果你的系统里服务名不一样,可以用sudo systemctl list-units | grep -i network查看当前网络服务的名字。核心目的就是让系统层面的网络管理工具放手,把网卡完全交给我们。

然后开启监听模式,有两种方式。一种是传统的:

sudo airmon-ng start wlan0

执行完成后,iwconfig会看到原来的wlan0变成了wlan0mon。后续所有命令都用wlan0mon作为接口名。如果airmon-ng start提示“fail”,通常是进程占用问题,先跑sudo airmon-ng check kill把冲突进程清掉,再重新 start。

另一种是直接用ip命令设置:

sudo ip link set wlan0 down sudo iw dev wlan0 set type monitor sudo ip link set wlan0 up

这两种方式最终效果一样。我用得比较多的是airmon-ng,因为它会顺带处理一些驱动兼容性问题。但如果你用的是比较新的内核和驱动,iw方式更干净,不会修改接口名。

4.2 信道扫描与筛选目标 AP

监听模式开启后,先用airodump-ng做一次全信道扫描:

sudo airodump-ng wlan0mon

屏幕上会快速刷出周围所有 AP 和客户端的列表信息。这里有一个很关键的输出项:PWR,代表信号强度。数值越大(负数绝对值越小),说明离你越近。第一次扫描时信息会很杂,这是正常的,因为你正在所有信道上跳频收听。

看到目标 AP 之后,你要记录它的三个关键信息:

  • BSSID:AP 的 MAC 地址,格式是XX:XX:XX:XX:XX:XX
  • CH:当前所在信道
  • ENC:加密方式(WPA2 还是 WPA3)

然后锁定这个 AP 和信道,重新启动捕获。这一步非常重要——如果继续在全信道模式下跑,你抓到握手包的成功率会大幅降低,因为你不知道数据包什么时候会从当前信道经过。

sudo airodump-ng -c 6 --bssid XX:XX:XX:XX:XX:XX -w capture wlan0mon

这条命令的意思是:只在信道 6 上监听,只关注指定的 BSSID,捕获的数据保存到名为capture的文件里(会自动生成.cap.csv.kismet.csv等文件)。

-w参数指定的文件名是前缀,实际生成的文件会在后面自动加上扩展名。这个细节要注意,因为有些朋友第一次操作时以为-w后面要写完整的.cap文件名,结果生成了capture.cap.cap这样的文件,虽然不影响使用,但看着别扭。

4.3 拿到握手包:时机与技术动作

WPA/WPA2 的握手包不是随时随地都能抓到的,它发生在客户端和设备关联的瞬间。如果目标 AP 下已经有一个连着网的客户端,你和它之间没有新握手发生,那你就得想办法“催”一下。

合法的方式有两种。第一种是等,等客户端自己断线重连,但这靠运气。第二种是主动发送 deauthentication 报文,让客户端掉线,然后它会自动重连,在重连的瞬间,四次握手就会在空中发生。

airodump-ng在捕获过程中,如果抓到了握手包,屏幕右上角会显示WPA handshake: XX:XX:XX:XX:XX:XX,这是一个非常明确的信号,说明可以开始分析了。

触发重连的命令通常另开一个终端窗口执行:

sudo aireplay-ng -0 2 -a XX:XX:XX:XX:XX:XX wlan0mon

这条命令的作用是向目标 AP 的关联客户端发送 2 个 deauth 帧,让它们掉线后自动重连。-0表示 deauth 攻击,2是发送次数,-a后面跟目标 AP 的 BSSID。

这里有个实操中极易犯的错:发送 deauth 时,要确保airodump-ng已经锁定了正确的信道。你如果一边发 deauth、一边在信道 1 上监听,而目标 AP 在信道 6 上,无论发多少 deauth 都没用。所以,先锁定信道,再触发重连。

关于触发重连是否“合法”,我还是那句话:只在你自己的网络或者你有书面授权的网络里做。用这个手法干扰别人正常上网,属于典型的破坏网络通信,后果相当严重。

4.4 数据包文件里到底存了什么

捕获一段时间后,你会得到一个.cap文件。这个文件里包含了你在这段时间内听到的所有无线数据帧,包括管理帧、控制帧和数据帧。如果用 Wireshark 打开,能看到完整的协议层次。

而对aircrack-ng来说,它最关心的是这个.cap文件里是否包含完整的 EAPOL 帧——也就是四次握手过程中交换的几个关键帧。如果没有 EAPOL 帧,.cap文件再大,aircrack-ng也不会理你。

文件保存路径取决于你执行命令时所在的目录。我用一个固定习惯:在工作目录下建一个captures文件夹,所有抓包文件都放里面,避免和源码、脚本混淆。

5. aircrack-ng 实操:把握手包变成“密码体检报告”

5.1 字典从哪里来,怎么准备

如果你的目标是检验自家 WiFi 密码的强度,那字典准备这一步可以直接决定成败。常见选择有三种:

  • 系统自带的小字典(如/usr/share/wordlists/rockyou.txt.gz,需要先解压)
  • 从公开字典库下载的常用密码集合
  • 你自己根据目标特征生成的组合列表

对于检验自家网络,我最推荐的是 rockyou。这是安全圈非常常用的字典,包含了一千多万个真实泄露过的密码,覆盖面广,对绝大多数弱密码测试都够用。解压命令:

sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

注意,rockyou 文件解压后有 1G 左右,跑起来需要一些时间。所以实战中我习惯先切出一部分做快速验证,比如先用前 10 万条跑一遍,没有命中再扩大范围。

重要:字典大小和密码强度直接相关。如果字典本身只有几百KB,基本跟闹着玩一样。任何“秒破”的截图,背后都是因为字典里恰好有目标密码。

5.2 跑字典的核心命令与参数解读

aircrack-ng的基础用法非常简单,一行命令:

sudo aircrack-ng -w /usr/share/wordlists/rockyou.txt capture.cap

-c 和 --bssid 参数可以帮助过滤,让分析只针对特定 AP:

sudo aircrack-ng -b XX:XX:XX:XX:XX:XX -w /usr/share/wordlists/rockyou.txt capture.cap

运行后,aircrack-ng会先扫描文件里的所有 AP 和握手包,然后开始逐条测试字典里的密码。屏幕上会显示实时进度,包括当前测试到第几个密码、当前密码是什么、测试速度是多少。

这里有一个关键概念:测试速度取决于 CPU 单核性能,aircrack-ng默认是单线程跑 PBKDF2-SHA1 运算的。如果你想要快一点,可以用 GPU 工具(比如 hashcat)替代,但复杂度会高一个量级。对于入门级测试,CPU 跑就已经足够,因为验证一个密码只需要几百毫秒,百万级字典也就几个小时。

命中密码之后,屏幕上会醒目地显示KEY FOUND! [ 你的密码 ]。这一刻算是整个流程里最有成就感的瞬间。但我想强调的是,如果跑完整个字典都没有命中,不代表密码不可破解,只能说明你的密码不在这个字典里,这是一个概率问题,不是安全证明。

5.3 WEP 场景(了解即可,不要真去折腾)

WEP 已经有二十年历史了,现在基本碰不到,但为了完整性还是提一下。WEP 的加密方式决定了它会通过 IV(初始化向量)泄露大量信息,airodump-ng抓到足够数量的 IV 之后,aircrack-ng直接分析-IV 就能还原出密钥,不需要字典。

这个过程速度极快,几万到几十万个 IV 就能出结果。但我要提醒你,如果你在 2025 年了还在用 WEP 加密自家路由器,这个测试结果会告诉你:你的网络等于裸奔。尽早换 WPA2/WPA3 才是正事。

5.4 密码强度自检的完整流程清单

我总结一套自己常用的“家庭 WiFi 密码体检”流程,你照着做就能完成一次完整的自检:

  1. 确认你有自家路由器的管理权限,最好先把 WiFi 密码改成你想测试的那个临时密码。
  2. 开启监听模式,锁定自家 AP 的信道。
  3. airodump-ng捕获一段时间,确保手机或电脑连过一次 WiFi,抓到握手包。
  4. 用包含百万级常见密码的字典跑一次aircrack-ng
  5. 如果 10 分钟内就被命中,说明你的密码强度不够,立刻去路由器后台换一个更复杂的强密码。
  6. 如果字典跑完没命中,也不能完全放心,建议再用不同字典或规则跑第二轮。

这套流程做完,你能对自己网络的密码强度有一个非常直观的认知,比任何“密码检测网站”都靠谱。

6. 常见的坑与排查思路:每个我都亲自踩过

6.1 “网卡进不了监听模式” 的排查顺序

出现“无效参数”或者command failed: Operation not supported时,先不要慌。按这个顺序排查:

  • 先确认iw list的输出里有没有monitor模式。
  • 再确认是不是内核模块冲突,尝试sudo modprobe -r卸载网卡驱动,再重新加载。
  • 如果以上都不行,试试换一个 USB 口。USB 3.0 口有时候反而会因为兼容性问题导致监听模式异常,插回 USB 2.0 口就好。

我遇到过一种极其隐蔽的情况:网卡支持监听模式,但只要网卡设备名里带phy0编号,多块网卡共存时,airmon-ng会搞混接口名。这时候老老实实用iw命令行方式开启监听模式,并手动指定接口名,反而更稳定。

6.2 “一直抓不到握手包” 的常见原因

这是新手最容易卡住的地方。屏幕右下角 BSSID 后面WPA handshake一直没有出现,我一般这么排查:

  • 确认目标 AP 的信道有没有锁定。airodump-ng屏幕右上角的当前信道如果没有跟着变,说明你没有加-c参数,或者加的-c值不对。
  • 确认客户端是否存在。没有客户端连着目标 AP,deauth 发了也白发,因为没人会重连。这时候只能等。
  • 确认 deauth 是否真的发出去了。用aireplay-ng时,如果目标网卡驱动不支持注入,命令会报错。可以用sudo aireplay-ng --test wlan0mon先测一下注入能力。

还有一种情况:笔记本内置网卡在监听模式下能收包,但不能发包(没有注入能力)。这非常常见。解决方案就是换一张支持注入的外置 USB 网卡,AR9271 芯片那种。

6.3 “跑了很久还是没跑出来密码” 的冷静解决法

跑了一个小时,0 命中,很正常。先确认三件事:

  • 字典路径有没有写对。很多人把路径写成了~/wordlists/rockyou.txt,但实际文件在/usr/share/wordlists/,自然一直找不到文件,aircrack-ng会直接报错退出。
  • 确认捕获文件里确实有 EAPOL 帧。用sudo aircrack-ng capture.cap看一下,它会列出文件里所有的 AP 和握手包状态。
  • 确认你测的是自己设过的密码,不是随机猜一个“可能”存在的密码。这话听着像废话,但真的有人拿别人的 capture 文件来跑字典,说“怎么跑不出来”,那是因为密码本来就是 32 位随机串,字典里当然没有。

6.4 抓包文件直接损坏或为空

这个问题多见于强制关闭airodump-ng时。解决方法是:别用Ctrl+C之外的粗暴方式结束进程;结束时要等它刷完 buffer,屏幕出现Writing packets to...的行再关终端。

另外提醒一点:.cap文件是存在内存里的,程序正常退出时会 flush 到磁盘。如果你直接拔 USB 网卡或者强制关机,文件大概率是空的。养成好习惯:Ctrl+C正常结束,再看文件大小。

7. 最后,关于合法边界和这套工具的正确使用姿势

这篇文章里所有的命令、参数、原理,都是信息安全教学和网络运维中的常见技术内容。Aircrack-ng 套件存在的意义,是帮助你理解无线网络的加密机制,并在授权范围内验证网络安全性。如果你看完文章,跃跃欲试想拿它去连隔壁的 WiFi,我劝你立刻打消这个念头。很多司法判例都清楚地表明,未经授权访问他人无线网络,哪怕仅仅是“尝试破解密码”,都可能构成违法,甚至被追究刑事责任。技术本身没有立场,但使用技术的人必须有边界。

我自己的习惯是,每隔半年就会用自己的家里 WiFi 密码做一次这种“体检”,换一个新密码后测一遍,看它能不能扛住常见字典的快速枚举。这已经是我网络管理流程的一部分了。你也可以把它当成一种安全习惯来做:定期验证自家路由器密码强度,检查周围有没有可疑的钓鱼 AP,确认自己所在环境的无线信号覆盖和信道干扰情况。这些才是 airodump-ng 和 aircrack-ng 真正的价值所在,而不是“破解”这两个字背后那些充满诱惑又充满危险的想象。

希望这篇教程能帮你在一个完全合规的框架内,用好这套好工具。如果你在操作过程中遇到任何问题,欢迎在评论区留言,我看到都会回复。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询