dleerdefi/spectre

GitHub: dleerdefi/spectre

基于 Kali Linux 的无线渗透测试工具包,将多工具侦察、自动化攻击战役、AI 漏洞分析与案例管理整合于一个终端界面。

Stars: 1 | Forks: 1

# SPECTRE **专**用**电**子**反**情报与**战**术**侦**察引擎 专为 Kali Linux 上授权渗透测试设计的无线战术评估工具包。多工具侦察、自动化攻击战役、带证据门控的 AI 漏洞分析、TimescaleDB 持久化存储以及面向新手友好的引导流程——集成于一个 CLI 中。

SPECTRE TUI

## 功能特性 - **多工具侦察** — Kismet + wash + airodump-ng + tshark 流水线,各展所长 - **WPS 攻击升级** — pixie dust、Reaver PIN 暴力破解、Bully 后备方案(可绕过受 PMF 保护的网络) - **5 步攻击链** — PMKID、deauth(3 种策略)、pixie dust WPS 结合智能目标评分 - **握手验证** — 在宣告捕获成功之前,通过 hcxpcapngtool 验证 EAPOL 对 - **用户批准门控** — GPU 破解和长时间运行的 WPS 暴力破解需要明确批准 - **AI 分析**(可选) — 无审查的本地 LLM 评估与自我审查 - **纠正追踪** — 轻松导入外部 LLM 评估,纠正结果持久化至数据库 - **TimescaleDB** — 具备 MAC 哈希、保留策略和压缩功能的时间序列存储 - **捕获编排** — 基于自动瞄准的 PMKID 和 deauth 握手捕获 - **破解** — 结合硬件调优配置的 hashcat 集成,支持 WPA/WPA2(模式 22000) - **案例管理** — 存储证据并生成报告 - **交互式 TUI** — 可配置提供商、信号阈值、攻击超时等设置 - **新手向导** — 针对实验室使用和操作员入门的引导式快速入门 ## 前置条件 ### 系统工具 大多数工具已预装在 Kali 中。运行 `spectre doctor` 进行检查。 | 工具 | 用途 | 安装 | |------|---------|---------| | aircrack-ng 套件 | 扫描、deauth、捕获 | `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` | | wash | WPS AP 检测 | `sudo apt install reaver` | | reaver | WPS pixie dust + PIN 暴力破解 | `sudo apt install reaver` | | bully | WPS 暴力破解(Reaver 后备方案) | `sudo apt install bully` | ### 硬件 一个支持监听模式的 WiFi 网卡即可满足要求。SPECTRE 可使用一个网卡(先扫描后攻击的顺序执行)或两个网卡(如果都支持监听模式则可同时操作)。 **推荐:** - **ALFA AWUS036ACH** (RTL8812AU) — 数据包注入 + deauth + 监听模式。可处理所有操作。 **不推荐:** - **ALFA AWUS036AXML** (MT7921U) — mt76 驱动存在注入缺陷,被动监听模式降级(无法看到已连接的客户端)。使用此网卡会导致 Kismet 崩溃。 运行 `spectre adapters` 可查看检测到的接口、功能及自动分配的角色。 **单网卡工作流:** 当只有一个网卡可用时,SPECTRE 会先扫描,然后按顺序攻击——这与 wifite2 和大多数单网卡工具所采用的方法相同。 ### Kismet 设置 Kismet 是首选的侦察提供商,但**不是必需的** —— 如果 Kismet 不可用,SPECTRE 会自动回退到 airodump-ng。 **注意:** Kali apt 软件包中的 Kismet 在使用 `--no-plugins` 时曾存在一个 [SIGSEGV bug](docs/kismet-bug-fix.md) ([kismetwireless/kismet#602](https://github.com/kismetwireless/kismet/issues/602))。此问题现已**在上游修复**。如果您的 Kali 软件包仍然崩溃,请在 Kali 更新其软件包之前从源代码进行编译: ``` # 安装构建依赖 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 # 克隆并构建(修复现已合入 upstream main) cd /tmp git clone https://github.com/kismetwireless/kismet.git kismet-src cd kismet-src ./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 ".[all]" # includes DB + search dependencies # 或最简安装:pip install -e . ``` ### 开始使用 ``` # (可选)下载用于破解的扩展 wordlists python wordlists/download_wordlists.py # 检查系统就绪状态 spectre doctor # 启动交互式 TUI spectre # 或直接运行特定命令 sudo $(which spectre) survey --duration 30 ``` ## 命令 ### 系统 | 命令 | 描述 | 需要 Sudo? | |---------|-------------|-------| | `doctor` | 检查所有工具、提供商和网卡就绪情况 | 否 | | `preflight` | 运行系统验证检查 | 否 | | `adapters` | 列出网卡及其功能 | 否 | | `monitor` | 在网卡上启用监听模式 | 是 | ### 操作 | 命令 | 描述 | 需要 Sudo? | |---------|-------------|-------| | `survey` | 通过 Kismet 或 airodump-ng 进行被动侦察 | 是 | | `scan` | 快速网络发现扫描 | 是 | | `capture` | 手动握手捕获 | 是 | | `autopwn` | 自动化战役:侦察 -> 攻击 -> 破解 | 是 | | `quickcapture` | 自动化扫描 -> 捕获工作流 | 是 | | `crack` | 使用 hashcat 破解 WPA/WPA2 哈希 | 否 | | `analyze` | AI 驱动的漏洞分析(可选) | 否 | 破解支持本地 hashcat 或通过 SSH 连接的远程 GPU 服务器:

Remote GPU cracking via SSH

### 案例管理 | 命令 | 描述 | |---------|-------------| | `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 战役 具备多工具侦察和智能升级的全面自动化攻击链。

Survey summary with target priorities

Client-AP association map with vendor identification

**侦察流水线**(使用 `--provider auto`): 1. Kismet 被动侦察(设备指纹识别、协议分类) 2. wash WPS 扫描(检测启用 WPS 的 AP、锁定状态) 3. airodump-ng 客户端轮询(活跃的站点追踪、探测请求) 4. tshark 流量分析(协议指纹识别、明文检测) **攻击升级**(针对每个目标,按顺序): 1. PMKID 探测(无需客户端,30秒) 2. Deauth 广播(60秒) 3. 针对每个客户端的 Deauth(60秒) 4. 激进的 Deauth(90秒) 5. Pixie dust WPS — 绕过 PMF(60秒,如果检测到 WPS) **目标评分** 根据信号强度、已连接的客户端、WPS 状态和加密弱点确定优先级。低于信号阈值的目标将被跳过。 ``` # 标准 campaign sudo $(which spectre) autopwn --scan-time 90 --crack # Multi-tool pipeline sudo $(which spectre) autopwn --scan-time 90 --provider auto # 自定义信号阈值(默认:-70,越低 = 更多目标) sudo $(which spectre) autopwn --min-signal -85 # 单目标抓取超时 sudo $(which spectre) autopwn --attack-timeout 180 # 目标选择 sudo $(which spectre) autopwn --targets 1,3,5 sudo $(which spectre) autopwn --targets all ``` 按一次 Ctrl+C 跳过当前目标,按两次中止整个战役。

Successful handshake capture

## AI 分析(可选) `analyze` 命令将侦察数据发送到本地 LLM 以进行自动化漏洞评估。这完全是可选的——所有其他功能在没有它的情况下也能正常运行。 ### 证据门控分析 LLM 采用持怀疑态度的渗透测试员思维模式进行操作: - **默认假设:不存在漏洞** —— 需要证据才能推翻 - 每项发现都必须引用特定的扫描输出作为**证据** - 每项发现都会获得一个**置信度**:已确认、极可能 或 有可能 - 建议与漏洞区分开来(不虚增漏洞数量) - 平台感知:针对 ISP 热点、企业网络、家用路由器采用不同的处理方式 分析完成后,将进行一轮**自我审查**,对每项发现执行 7 项检查:证据门控、网络身份、加密准确性、严重性比例、置信度准确性、平台感知以及建议有效性。

AI Analysis — evidence-gated findings with confidence levels

### AI 驱动攻击 在自动攻击模式(TUI 设置)下,LLM 可以指挥攻击工具: - `[TOOL: capture --bssid XX:XX --channel N]` — 握手捕获 - `[TOOL: pixie --bssid XX:XX]` — WPS pixie dust 攻击 - `[TOOL: reaver --bssid XX:XX]` — WPS PIN 暴力破解(需要批准) - `[TOOL: bully --bssid XX:XX]` — WPS 后备方案(需要批准) - `[TOOL: validate --file capture.pcapng]` — 握手验证 - `[TOOL: crack --file hash.22000]` — 破解(需要批准) ### 纠正工作流 1. 运行分析,结果保存到数据库 2. 将发现导出为 Markdown(TUI 选项 [4]) 3. 粘贴到 Claude Code 或其他 LLM 中进行审查 4. 通过粘贴导入纠正(TUI 选项 [5])—— 选择要纠正的分析 5. 纠正结果持久化到数据库,并通过学习到的规则反馈到未来的分析提示中 ### 要求 在本地运行或通过 SSH 隧道连接的 OpenAI 兼容 API 服务器: - [LM Studio](https://lmstudio.ai)(推荐) - [Ollama](https://ollama.com) - [vLLM](https://docs.vllm.ai) ### 设置 ``` # 设置 LLM endpoint(默认:http://localhost:1234) export LLM_URL=http://localhost:1234 export LLM_MODEL=your-model-name # Auto-detected if omitted # 如果你的 LLM 运行在远程机器上,请使用 SSH tunnel: ssh -N -L 1234:localhost:1234 user@llm-server ``` ### 用法 ``` # 分析实时 survey sudo $(which spectre) analyze --duration 30 # 分析已保存的扫描数据(无需 adapter) spectre analyze --from-file scan_results.json # 用于脚本的 JSON 输出 spectre analyze --from-file scan.json --json-output ``` SPECTRE 的 AI 分析方法灵感来源于 Soorya Thejas 开发的 [METATRON](https://github.com/sooryathejas/METATRON)。 ## 数据库(可选) SPECTRE 使用带有 TimescaleDB 扩展的 PostgreSQL 进行持久化存储。该数据库是**可选的**——所有核心功能在没有它的情况下均可正常工作。 ### TimescaleDB 提供的功能 时间序列数据(信标、客户端观测、攻击事件)存储在 **hypertable** 中——这是一种按时间自动分区的常规 PostgreSQL 表。这使得查询在数据增长时仍能保持快速,并支持自动生命周期管理。 | Hypertable | 数据 | 保留期限 | |------------|------|-----------| | `networks` | 每个 AP 的信标观测 | 365 天 | | `clients` | 客户端关联 + 探测(MAC 经哈希处理) | 90 天 | | `security_events` | 检测 + 异常 | 180 天 | | `attack_logs` | 攻击尝试 + 结果 | 365 天 | | `traffic_observations` | 来自 tshark 的协议/明文发现 | 90 天 | 常规表(非时间序列): - `analysis_results` — LLM 分析运行 - `analysis_vulnerabilities` — 带有置信度 + 证据的解析发现 - `analysis_corrections` — 外部审查纠正 - `wifi_learned_rules` — 从纠正审查中提取的规则 - `handshakes` — 捕获的握手产物(永久保留) **隐私:** 客户端 MAC 地址存储为 SHA-256 哈希,从不以明文形式保存。 ### 快速设置 ``` # 启动数据库(需要 Docker) docker compose up -d # 复制并编辑 env 文件 cp .env.example .env # 编辑 .env 并设置 DB_PASSWORD # 安装 DB dependency pip install -e ".[db]" ``` Schema 将在首次容器启动时通过 `db/init/*.sql`(3 个迁移文件)自动应用。 ### 远程数据库 如果您的数据库运行在不同的机器上: ``` # 在 .env 中: DB_HOST=your-db-server DB_PORT=5432 DB_USER=spectre DB_PASSWORD=your-password DB_NAME=spectre_db COLLECTOR_NODE=local # identifies this host in multi-node deployments ``` ## TUI 设置 ### 攻击战役设置 ``` [1] Survey provider [auto] — auto, kismet, or native [2] Min signal strength [-70 dBm] — lower values include weaker targets [3] Attack timeout [120s] — per-target capture window [4] Auto-crack [ON] — prompt for cracking after capture ``` ### AI 分析设置 ``` [1] Toggle auto-attack mode (OFF) — LLM executes capture/crack commands [2] Set max rounds (default 9) — agentic tool-dispatch rounds [3] Toggle auto-export (OFF) — auto-export after analysis [4] Survey provider (auto) — for live analysis scans ``` ## 配置 所有设置均可通过环境变量覆盖。在项目根目录中创建一个 `.env` 文件以实现配置持久化。 | 变量 | 默认值 | 描述 | |----------|---------|-------------| `LLM_URL` | `http://localhost:1234` | LLM API 端点 | | `LLM_MODEL` | (自动检测) | 模型标识符 | | `LLM_MAX_TOKENS` | `8192` | 每次 LLM 响应的最大 token 数 | | `LLM_TIMEOUT` | `600` | LLM 请求超时(秒) | | `LLM_MAX_ROUNDS` | `9` | 最大智能体工具调度轮次 | | `DB_HOST` | `localhost` | PostgreSQL 主机 | | `DB_PORT` | `5432` | PostgreSQL 端口 | | `DB_NAME` | `spectre_db` | 数据库名称 | | `DB_CONNECT_TIMEOUT` | `5` | 数据库连接超时(秒) | | `COLLECTOR_NODE` | `local` | 多收集器部署的节点标识符 | | `CAPTURE_DIR` | `captures/` | 握手输出目录 | | `WORDLIST_DIR` | `wordlists/` | 字典搜索路径 | ### 可选 Python 依赖 ``` pip install -e ".[all]" # Database + LLM search pip install -e ".[db]" # Database only (psycopg) pip install -e ".[search]" # DuckDuckGo search only ``` ## 入口点 ``` spectre # Interactive TUI (default) spectre --advanced # Show full command menu spectre COMMAND --help # Direct command access ``` 注意:涉及 WiFi 硬件的命令(survey、capture、monitor)需要 `sudo`。请使用 `sudo $(which spectre)` 以运行 venv 中的 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, wash, reaver, bully) quickstart/ Beginner wizard workflow services/ Business logic (survey pipeline, attack planner, analysis, DB) storage/ Case artifact persistence db/init/ SQL schema and migrations (TimescaleDB) 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)
标签:airodump-ng, DLL 劫持, hashcat, KaliLinux工具, Kismet, Python, TimescaleDB, TUI, WiFi破解, WPA破解, WPS攻击, 中间人攻击, 人工智能, 入门向导, 大语言模型, 攻击路径可视化, 数据展示, 无后门, 无线评估, 测试用例, 用户模式Hook绕过, 红队, 网络安全, 自动化攻击, 请求拦截, 逆向工具, 隐私保护, 黑客, 黑客工具