arkanzasfeziii/Tempest
GitHub: arkanzasfeziii/Tempest
Tempest 是一个统一的无线网络渗透测试框架,将侦察、握手捕获、PMKID 攻击、邪恶双子、取消认证及企业级 RADIUS 利用整合到单一命令行工具中。
Stars: 0 | Forks: 0
# Tempest — 无线攻击框架
**统一的进攻性无线网络工具包,将 WPA2 握手捕获、邪恶双子部署、取消认证、无客户端 PMKID 攻击以及 WPA2-Enterprise/RADIUS 渗透整合到一个命令行界面中。**
## 威胁模型
Tempest 针对的是使无线网络成为大型企业环境中最容易突破的物理层入口的特定弱点。
| 弱点 | 问题所在 | MITRE ATT&CK | CWE |
|---|---|---|---|
| 使用弱密码的 WPA2-PSK | 8 位数字或字典词汇使用 GPU 可在几秒内破解 | T1040 网络嗅探 | CWE-521 弱密码 |
| 无 802.11w (MFP) | 管理帧(deauth/disassoc)未经验证 —— 极易导致客户端断开连接 | T1499 端点 DoS | CWE-306 缺少认证 |
| 隐藏 SSID | BSSID 和探测响应仍然可见 —— 虚假的安全感 | T1040 网络嗅探 | CWE-311 缺少加密 |
| 无服务器证书验证的 WPA2-Enterprise | 恶意 RADIUS 通过 GTC 降级捕获 MSCHAPv2 哈希或明文 | T1557 中间人攻击 | CWE-295 证书验证不当 |
| 首个 EAPOL 消息中的 PMKID | 无客户端哈希捕获 —— 无需 deauth,无需连接的客户端 | T1040 网络嗅探 | CWE-311 缺少加密 |
| 开放/访客网络 | 带有强制门户的邪恶双子从毫无防备的用户那里收集凭据 | T1557 中间人攻击 | CWE-346 源验证错误 |
**相关的 MITRE 战术:** TA0006 凭据获取,TA0009 收集,TA0040 影响
## 为什么存在此项目
无线渗透测试需要记住跨越 8 个不同实用程序(airmon-ng、airodump-ng、aireplay-ng、hcxdumptool、hcxpcapngtool、hashcat、hostapd、hostapd-wpe)的 20 多个命令 —— 每个程序都有各自的语法、输出格式和怪癖。大多数操作员花在重新阅读手册页上的时间比实际测试的时间还要多。
Tempest 消除了这种摩擦。它为您生成每个攻击媒介所需的精确命令、配置和脚本,并预先解析好正确的标志、文件路径和执行顺序。每个模块输出的都是可以直接执行的命令,而不是抽象的描述,因为在有限的测试时间窗口内,花在调试 hashcat 模式编号上的时间就是浪费时间。
该框架还处理了像 aircrack-ng 这样的工具忽略的操作细节:WIDS 规避计时、不同 GPU 级别的破解时间估计、基于 ESSID 派生的字典生成,以及 802.11w 检测(在您浪费时间尝试永远不会生效的 deauth 之前告知您)。
## 功能
### 模块概述
| 模块 | 用途 | 依赖的核心工具 |
|---|---|---|
| `recon` | 无线扫描、AP 枚举、安全评级、供应商识别 | airmon-ng, airodump-ng, iw, iwlist |
| `handshake` | WPA/WPA2 四次握手捕获和离线破解 | airodump-ng, aireplay-ng, aircrack-ng, hashcat |
| `evil` | 带有强制门户凭据收集的邪恶双子 / 恶意 AP | hostapd, dnsmasq, iptables, hostapd-mana |
| `deauth` | 取消认证、信标泛洪、认证泛洪 | aireplay-ng, mdk3/mdk4, scapy |
| `pmkid` | 无客户端 PMKID 哈希捕获和破解 | hcxdumptool, hcxpcapngtool, hashcat |
| `radius` | WPA2-Enterprise/802.1X 恶意 RADIUS 和凭据捕获 | hostapd-wpe, openssl, hashcat, asleap |
### Recon (侦察) 模块
- 监视器模式管理(airmon-ng 和手动 iw 方法)
- 跨 2.4 GHz 和 5 GHz 频段的全频段扫描
- 每个 AP 的自动化安全评级:WEP(严重)、WPA-TKIP(高)、WPA2-CCMP-PSK(中)、WPA2-MGT(低)、WPA3-SAE(信息)
- 基于内置的 30 多家基础设备供应商数据库进行 OUI 供应商查询
- 隐藏 SSID 检测和揭示技术
- 带有探测请求分析的客户端枚举
- 针对选定 AP 的详细目标剖析
### Handshake (握手) 模块
- 有针对性的捕获命令生成(airodump-ng 锁定到 BSSID + 信道)
- 用于强制重新握手的取消认证(广播和针对性)
- EAPOL 帧验证(ethertype 0x888e,消息 1-4 完整性检查)
- Aircrack-ng CPU 字典攻击命令
- Hashcat GPU 命令:cap2hccapx 转换、模式 22000、基于规则的变异
- 基于 ESSID 派生的密码模式生成
- 针对字典/GPU 组合的破解时间估算
### Evil Twin (邪恶双子) 模块
- 匹配目标 ESSID/信道的开放和 WPA2 恶意 AP 的 Hostapd 配置
- 带有完整 DNS 重定向的 Dnsmasq DHCP/DNS 配置
- 两个强制门户模板:酒店/访客 WiFi 和企业 SSO 登录
- 用于流量拦截的 iptables NAT/转发/重定向规则
- 通过 hostapd-mana 实现 Karma 攻击概念(响应所有探测请求)
- 完整的自动化 shell 脚本:从接口设置到清理
### Deauth (取消认证) 模块
- Aireplay-ng:广播、针对性、连续和受控突发式的取消认证
- MDK4:认证泛洪(模式 a)、带有虚假 AP 的信标泛洪(模式 b)、带有黑名单/白名单的 deauth(模式 d)
- 通过 RSN Capabilities 第 6-7 位检测 802.11w 管理帧保护
- 通过具有随机间隔的速率限制 deauth 实现 WIDS 规避
- 基于带双向帧注入的 Scapy 程序化 deauth 脚本
### PMKID 模块
- PMKID 理论:HMAC-SHA1-128(PMK, "PMK Name" || MAC_AP || MAC_STA)
- hcxdumptool 捕获命令(广播和使用过滤器文件的针对性捕获)
- hcxpcapngtool 转换为 hashcat 22000 格式
- WPA3 过渡模式检测并降级到 WPA2 以进行 PMKID 捕获
- 带有 11 种常见密码结构和密钥空间估算的 Hashcat 掩码生成器
- 完整的攻击手册:从监视器模式到破解再到清理
### RADIUS 模块
- EAP 类型枚举:PEAP, EAP-TLS, EAP-TTLS, EAP-FAST, LEAP 检测
- 用于恶意 RADIUS 服务器的 hostapd-wpe 配置
- 模仿目标组织的证书生成(openssl 命令链)
- MSCHAPv2 哈希提取和破解(hashcat -m 5500, john --format=netntlm, asleap)
- EAP-GTC 降级攻击:强制在 PEAP/TTLS 隧道内捕获明文密码
- 完整的攻击链脚本:从侦察到恶意 AP,再到凭据捕获,最后到破解
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ tempest.py CLI │
│ │
│ argparse ──► EngagementContext ──► Module Router │
│ │ │ │
│ │ ┌───────────┴────────────┐ │
│ │ │ Module Selection │ │
│ │ │ │ │
│ │ ┌────┴────┬────────┬────────┐ │ │
│ │ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │ │
│ ┌─────────────────────────────────────┐ │ │
│ │ Module Execution │ │ │
│ │ │ │ │
│ │ ReconModule ──► scan + profile │ │ │
│ │ HandshakeModule ──► capture + crack│ │ │
│ │ EvilTwinModule ──► rogue AP + portal│ │ │
│ │ DeauthModule ──► disrupt + inject │ │ │
│ │ PMKIDModule ──► clientless capture │ │ │
│ │ RADIUSModule ──► enterprise exploit │ │ │
│ └─────────────────────────────────────┘ │ │
│ │ │ │
│ ▼ │ │
│ AttackResult[] + Credential[] │ │
│ │ │ │
│ ├──► Rich console output │ │
│ └──► JSON report (optional) │ │
└─────────────────────────────────────────────────────────┘
Data Flow:
CLI args ──► EngagementContext (interface, BSSID, ESSID, channel, wordlist)
──► Selected modules execute sequentially
──► Each module appends AttackResult / Credential to context
──► Summary table + optional JSON export
```
## 攻击流程
**1. 侦察** — 识别目标网络、客户端、加密类型和供应商硬件。评估每个 AP 的安全态势并建立目标档案。
**2. PMKID 捕获(首选)** — 首先尝试无客户端的 PMKID 捕获。无需 deauth,无需客户端,检测痕迹极小。如果 AP 在第一条 EAPOL 消息中包含 PMKID,您在几秒钟内就能获得一个可破解的哈希。
**3. 握手捕获(备选)** — 如果 PMKID 失败,则通过定向取消认证强制握手。捕获四次 EAPOL 交换并验证完整性。
**4. 离线破解** — 将捕获内容转换为 hashcat 格式(模式 22000)。使用基于 ESSID 派生的模式运行字典攻击,然后应用规则,最后针对常见的密码结构使用暴力掩码。
**5. 邪恶双子(凭据收集)** — 对于开放或访客网络,部署带有强制门户的恶意 AP。克隆目标 ESSID,配置 DHCP 和 DNS 重定向,提供一个可捕获凭据的逼真登录页面。
**6. 企业级攻击** — 对于 WPA2-Enterprise,将 hostapd-wpe 部署为恶意 RADIUS 服务器。生成模仿目标组织的证书。捕获 MSCHAPv2 哈希或尝试 EAP-GTC 降级以获取明文密码。
**7. 干扰(如果在授权范围内)** — 使用取消认证、信标泛洪或认证泛洪来拒绝服务。进行速率限制以规避 WIDS。在尝试 deauth 之前检查 802.11w MFP。
## 用法
```
# 完整侦察扫描
python3 tempest.py --interface wlan0 --modules recon --yes
# 针对特定 AP — 握手包捕获 + 破解
python3 tempest.py -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -m handshake -y
# 使用自定义字典的 PMKID 无客户端攻击
python3 tempest.py -i wlan0mon -m pmkid -w /opt/wordlists/custom.txt -y
# 在访客网络上部署 Evil twin
python3 tempest.py -i wlan0 -e "GuestWiFi" -c 1 -m evil -y
# WPA2-Enterprise RADIUS 利用
python3 tempest.py -i wlan0 -b AA:BB:CC:DD:EE:FF -e "CorpSecure" -c 36 -m radius -y
# 带有 JSON 输出的解除认证
python3 tempest.py -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -m deauth -o deauth_results.json -y
# 完整审计 — 所有模块
python3 tempest.py -i wlan0mon -b AA:BB:CC:DD:EE:FF -e "TargetNet" -c 6 -m all -o audit.json -y
# 组合握手包 + 解除认证(强制断开连接捕获)
python3 tempest.py -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 11 -m handshake,deauth -y
```
## 输出
```
______ __
/_ __/__ ____ ___ ____ ___ _____/ /_
/ / / _ \/ __ `__ \/ __ \/ _ \/ ___/ __/
/ / / __/ / / / / / /_/ / __(__ ) /_
/_/ \___/_/ /_/ /_/ .___/\___/____/\__/
/_/
Tempest Framework v1.0.0
Wireless Attack Framework — Reconnaissance to Exploitation
──────────────────────────────────────────────────────
╔══════════════════════════════════════════════════╗
║ Engagement Summary ║
╠═══════════════════╦══════════════════════════════╣
║ Interface ║ wlan0mon ║
║ Target BSSID ║ AA:BB:CC:DD:EE:FF ║
║ Target ESSID ║ CorpNet ║
║ Channel ║ 6 ║
║ Modules ║ recon, pmkid, handshake ║
║ Wordlist ║ /usr/share/wordlists/rockyou ║
╚═══════════════════╩══════════════════════════════╝
WIRELESS RECONNAISSANCE
[INFO] Interface mode management — switching to monitor mode
$ sudo airmon-ng check kill # Kill interfering processes
$ sudo airmon-ng start wlan0 # Method 1: airmon-ng
[OK] [INFO] monitor_mode: Generated monitor mode commands for wlan0 -> wlan0mon
[INFO] Full spectrum scan — 2.4 GHz and 5 GHz channels
$ sudo airodump-ng wlan0mon --band abg # Full scan (all channels)
[OK] [INFO] channel_scan: Generated scan commands for full 2.4/5 GHz spectrum
[INFO] Target profile for AA:BB:CC:DD:EE:FF
╔═══════════════╦═════════════════════╗
║ BSSID ║ AA:BB:CC:DD:EE:FF ║
║ ESSID ║ CorpNet ║
║ Channel ║ 6 ║
║ Vendor ║ Cisco ║
╚═══════════════╩═════════════════════╝
PMKID CLIENTLESS ATTACK
[INFO] PMKID capture — hcxdumptool
$ sudo hcxdumptool -i wlan0mon -o captures/pmkid_capture.pcapng --enable_status=1
[OK] [HIGH] pmkid_capture: PMKID capture commands generated
[INFO] Hash conversion — pcapng to hashcat 22000 format
$ hcxpcapngtool -o pmkid.hc22000 pmkid_capture.pcapng
[OK] [INFO] hash_convert: pcapng -> hashcat 22000 conversion
[INFO] PMKID cracking — hashcat mode 22000
$ hashcat -m 22000 pmkid.hc22000 /usr/share/wordlists/rockyou.txt --force -O -w 3
[OK] [HIGH] crack_pmkid: Hashcat -m 22000 crack commands generated
ENGAGEMENT SUMMARY
Modules executed : 3
Total actions : 18
OK: 18 | FAIL: 0 | CRIT: 0
Credentials : 0
Elapsed : 0.3s
┌──────────────────────┐
│ Findings by Severity │
├──────────┬───────────┤
│ CRITICAL │ 2 │
│ HIGH │ 7 │
│ MEDIUM │ 1 │
│ INFO │ 8 │
└──────────┴───────────┘
Tempest Framework v1.0.0 — engagement complete
```
## 法律声明
此工具生成用于无线安全测试的命令和配置。它要求在签署的交战规则文件、渗透测试协议或同等书面授权的情况下,对目标网络进行授权访问。
未经授权拦截无线通信违反了《窃听法》(美国法典第 18 编第 2511 条)、《计算机欺诈和滥用法》(美国法典第 18 编第 1030 条)、英国《1990 年计算机滥用法》以及全球大多数司法管辖区的相应立法。
作者对滥用行为不承担任何责任。您有责任遵守您所在司法管辖区的所有适用法律。
标签:Wifi攻击, 逆向工具, 配置错误, 防御绕过