dleerdefi/SPECTRE
GitHub: dleerdefi/SPECTRE
SPECTRE 是用于 Kali Linux 的无线战术评估工具包,整合被动调查、自动化捕获、AI 分析与案件管理,解决授权渗透测试中的一站式操作难题。
Stars: 1 | Forks: 1
# SPECTRE
**S**pecial **P**urpose **E**lectronic **C**ounter-intelligence & **T**actical **R**econ **E**ngine
无线战术评估工具包,用于 Kali Linux 上的授权渗透测试。被动调查、自动化捕获流程、AI 驱动的漏洞分析、案例跟踪以及新手友好的一体化入门体验 —— 全部集成于一个 CLI。
## 功能
- **系统就绪性检查** — 检查适配器、工具与提供者可用性
- **被动调查** — 通过 Kismet 或 airodump-ng 发现网络与客户端
- **捕获编排** — 基于 PMKID 与解除认证(deauth)的握手捕获,支持自动目标选择
- **自动化战役** — `autopwn` 将调查、攻击与破解整合为单一工作流
- **破解** — hashcat 集成,支持 WPA/WPA2(模式 22000)并附硬件优化配置
- **AI 分析**(可选) — 通过任意 OpenAI 兼容后端进行 LLM 驱动的漏洞评估
- **案例管理** — 存储证据工件并生成报告
- **交互式 TUI** — 带编号选项的菜单驱动界面
- **新手向导** — 实验室使用与操作员入职引导的快速启动流程
## 先决条件
### 系统工具
大多数工具在 Kali 中已预装。运行 `spectre doctor` 进行检查。
| 工具 | 用途 | 安装 |
|------|---------|---------|
| aircrack-ng 套件 | 扫描、解除认证、捕获 | `sudo apt install aircrack-ng` |
| iw | 适配器管理 | `sudo apt install iw` |
| kismet | 被动调查(首选) | 请参阅 [Kismet 设置](#kismet-setup) |
| hcxdumptool | PMKID/PSK 捕获流水线 | `sudo apt install hcxdumptool` |
| hcxpcapngtool | pcapng 到 hashcat 转换 | `sudo apt install hcxtools` |
| tshark | 报文检查与证据校验 | `sudo apt install tshark` |
| hashcat | WPA/WPA2 密码破解 | `sudo apt install hashcat` |
### 硬件
单个支持监听模式的 Wi‑Fi 适配器即可。SPECTRE 可使用一个适配器(顺序扫描后攻击)或两个适配器(若两者均支持监听模式,则可同时操作)。
**推荐:**
- **ALFA AWUS036ACH**(RTL8812AU) — 支持报文注入、解除认证与监听模式,可处理所有操作。
**不推荐:**
- **ALFA AWUS036AXML**(MT7921U) — mt76 驱动注入功能损坏,被动监听降级(无法看到关联客户端),使用该适配器会导致 Kismet 崩溃。
运行 `spectre adapters` 查看检测到的接口、功能与自动分配的角色。
**单适配器工作流:** 当仅有一个适配器可用时,SPECTRE 先进行扫描,然后顺序执行攻击 —— 与 wifite2 及大多数单适配器工具相同的策略。
### Kismet 设置
Kismet 是首选调查提供者,但 **并非必需** — 若 Kismet 不可用,SPECTRE 会自动回退到 airodump-ng。
**重要:** Kali 的 apt Kismet 包在启用 `--no-plugins` 时存在 [已知 SIGSEGV 错误](docs/kismet-bug-fix.md)([kismetwireless/kismet#602](https://github.com/kismetwireless/kismet/issues/602))。你必须从源码构建并应用该修复:
```
# 安装构建依赖项
sudo DEBIAN_FRONTEND=noninteractive apt install -y \
build-essential git libwebsockets-dev pkg-config zlib1g-dev \
libnl-3-dev libnl-genl-3-dev libcap-dev libpcap-dev libnm-dev \
libdw-dev libsqlite3-dev libsensors-dev libusb-1.0-0-dev \
libprotobuf-c-dev protobuf-c-compiler librtlsdr-dev libmosquitto-dev
# 克隆、补丁并构建
cd /tmp
git clone https://github.com/kismetwireless/kismet.git kismet-src
cd kismet-src
sed -i 's/^\(\s*\)plugintracker->finalize_plugins();/\1if (plugintracker != nullptr)\n\1 plugintracker->finalize_plugins();/' kismet_server.cc
./configure && make -j$(nproc) && sudo make suidinstall
# 验证
kismet --version
```
SPECTRE 会在首次运行时自动配置 Kismet 的 httpd 凭证,无需手动配置。
如果你希望完全跳过 Kismet,airodump-ng 可直接使用:
```
sudo apt install aircrack-ng
```
## 快速开始
### 自动安装
```
git clone https://github.com/dleerdefi/spectre.git
cd spectre
./install.sh
source venv/bin/activate
```
### 手动安装
```
git clone https://github.com/dleerdefi/spectre.git
cd spectre
python3 -m venv venv
source venv/bin/activate
pip install -e .
```
### 开始使用
```
# (可选)下载用于破解的扩展词表
python wordlists/download_wordlists.py
# 检查系统就绪状态
spectre doctor
# 启动交互式 TUI
spectre
# 或直接运行特定命令
sudo $(which spectre) survey --duration 30
```
## 命令
### 系统
| 命令 | 描述 | 是否需要 sudo |
|---------|-------------|-------|
| `doctor` | 检查所有工具、提供者与适配器就绪状态 | 否 |
| `preflight` | 运行系统验证检查 | 否 |
| `adapters` | 列出 Wi‑Fi 适配器及其功能 | 否 |
| `monitor` | 在适配器上启用监听模式 | 是 |
### 操作
| 命令 | 描述 | 是否需要 sudo |
|---------|-------------|-------|
| `survey` | 通过 Kismet 或 airodump-ng 进行被动调查 | 是 |
| `scan` | 快速网络发现扫描 | 是 |
| `capture` | 手动握手捕获 | 是 |
| `autopwn` | 自动化战役:调查 -> 攻击 -> 破解 | 是 |
| `quickcapture` | 自动化扫描 -> 捕获工作流 | 是 |
| `crack` | 使用 hashcat 破解 WPA/WPA2 哈希 | 否 |
| `analyze` | AI 驱动的漏洞分析(可选) | 否 |
### 案件管理
| 命令 | 描述 |
|---------|-------------|
| `cases` | 创建与管理案例文件 |
| `report` | 生成案例摘要报告 |
### 学习
| 命令 | 描述 |
|---------|-------------|
| `wizard` | 交互式新手引导 |
| `sandbox` | 安全的移动热点测试环境 |
### 词汇表
| 命令 | 描述 |
|---------|-------------|
| `wordlists list` | 按类别显示可用词表 |
| `wordlists generate` | 生成定向词表 |
| `wordlists import` | 导入外部词表 |
| `wordlists stats` | 显示词表统计信息 |
使用 `spectre COMMAND --help` 获取详细选项。
### 调查提供者
`survey` 命令支持多种后端:
```
sudo $(which spectre) survey --provider auto # Auto-select best available
sudo $(which spectre) survey --provider kismet # Use Kismet
sudo $(which spectre) survey --provider native # Use airodump-ng
```
当 `--provider auto`(默认)时,优先使用 Kismet(若已安装);否则回退到原生的 airodump-ng。
### 自动化战役(Autopwn)
全自动攻击链:调查网络、分析攻击向量、按目标依次尝试 PMKID 与解除认证技术,随后破解捕获到的握手。
```
sudo $(which spectre) autopwn --scan-time 90 --crack
sudo $(which spectre) autopwn --targets 1,3,5 # Attack specific targets
sudo $(which spectre) autopwn --targets all # Attack all discovered networks
```
按一次 Ctrl+C 跳过当前目标,两次则中止整个战役。
## AI 分析(可选)
`analyze` 命令将调查数据发送至本地 LLM 进行自动化漏洞评估。此功能完全可选 —— 所有其他功能均可在不依赖它的情况下正常运行。
### 要求
运行在本地的 OpenAI 兼容 API 服务器,或通过 SSH 隧道访问:
- [LM Studio](https://lmstudio.ai)(推荐)
- [Ollama](https://ollama.com)
- [vLLM](https://docs.vllm.ai)
### 设置
```
# 设置 LLM 端点(默认:http://localhost:1234)
export LLM_URL=http://localhost:1234
export LLM_MODEL=your-model-name # Auto-detected if omitted
# 如果 LLM 在远程机器上运行,请使用 SSH 隧道:
ssh -N -L 1234:localhost:1234 user@llm-server
```
### 用法
```
# 分析实时调查
sudo $(which spectre) analyze --duration 30
# 分析已保存的扫描数据(无需适配器)
spectre analyze --from-file scan_results.json
# 用于脚本编写的 JSON 输出
spectre analyze --from-file scan.json --json-output
```
LLM 识别漏洞(开放网络、WEP、WPS、弱加密),建议攻击路径,并推荐修复措施。在自动攻击模式(通过 TUI 设置)中,它可直接执行捕获与破解命令。
AI 分析模式参考自 [METATRON](https://github.com/sooryathejas/METATRON)(Soorya Thejas,MIT 许可)。参见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
## 配置
所有设置均可通过环境变量覆盖。在项目根目录创建 `.env` 文件以持久化配置。
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `LLM_URL` | `http://localhost:1234` | LLM API 端点 |
| `LLM_MODEL` | (自动检测) | 模型标识符 |
| `LLM_MAX_TOKENS` | `8192` | 每次 LLM 响应的最大令牌数 |
| `LLM_TIMEOUT` | `600` | LLM 请求超时(秒) |
| `LLM_MAX_ROUNDS` | `9` | 最大代理工具调度轮数 |
| `DB_HOST` | `localhost` | PostgreSQL 主机 |
| `DB_PORT` | `5432` | PostgreSQL端口 |
| `DB_NAME` | `wifi_surveillance_db` | 数据库名称 |
| `CAPTURE_DIR` | `captures/` | 握手输出目录 |
| `WORDLIST_DIR` | `wordlists/` | 词表搜索路径 |
## 入口点
```
spectre # Interactive TUI (default)
spectre --advanced # Show full command menu
spectre COMMAND --help # Direct command access
```
注意:涉及 Wi‑Fi 硬件的操作(调查、捕获、监听)需要 `sudo`。可使用 `sudo $(which spectre)` 在虚拟环境中以 Python 身份运行。
## 项目结构
```
src/
wifi_launchpad/ # Internal package (rename planned)
app/ Settings, paths, configuration
cli/ Click commands, TUI, and display helpers
domain/ Pure dataclasses (Network, Client, Handshake, etc.)
prompts/ System prompts for LLM analysis (editable .txt files)
providers/ External tool wrappers (Kismet, hashcat, hcx, aircrack)
quickstart/ Beginner wizard workflow
services/ Business logic orchestration
storage/ Case artifact persistence
tests/ Test suite
docs/ Specs, design notes, and bug fixes
wordlists/ Default and custom wordlists
```
## 测试
```
source venv/bin/activate
python3 -m pytest -q
```
## 法律与道德使用
仅对本人拥有或明确授权评估的网络使用本项目。适用于教育、实验室工作与专业授权测试。
## 许可证
[MIT](LICENSE)
标签:AI漏洞分析, De认证攻击, DOS头擦除, Hashcat集成, PMKID捕获, Tactic TA04, Technique T1059, Technique T1078, Technique T1110, Technique T1547, TUI界面, WPA/WPA2破解, 命令行界面, 安全工具库, 密码破解, 开源安全工具, 新手向导, 无线侦察, 无线安全评估, 测试用例, 硬件适配检测, 网络调查, 被动侦察, 证据取证, 逆向工具, 逆向工程平台