Ruby570bocadito/SPECTER-AI-Powered-Offensive-Security-Terminal

GitHub: Ruby570bocadito/SPECTER-AI-Powered-Offensive-Security-Terminal

基于本地大模型的离线渗透测试终端,为安全团队提供自然语言驱动的侦察、漏洞利用和自动化报告生成能力。

Stars: 0 | Forks: 0

# SPECTER - AI 驱动的攻击安全终端 ``` ^ _-^-_ _-',^. `-_. ._-' ,' `. `-_ Security | Pentesting | Exploitation | Control | Terminal !`-_._________`-'::: ! /\ /\:::: Unseen. Unconstrained. Unstoppable. ; / \ /..\ ::: ! / \ /....\:: !/ \ /......\: ;--.___. \/_.__.--;; '-_ `:!;;;;;;;' `-_, :!;;;'' `-!' ``` **SPECTER** 是一个专注于进攻和防御网络安全的本地人工智能助手。100% 离线。专为 **职业渗透测试人员**、**红蓝队团队** 和 **CTF 选手** 设计。 ## ✨ 主要特性 | 特性 | 描述 | |----------------|-------------| | 🤖 **本地 LLM** | 集成 Ollama (devstral, llama3, qwen, gemma)。零数据上云 | | 🔧 **高级 MCP** | 工具模板、链式调用、自动发现、输出解析器 | | 🧠 **AI 技能** | 侦察、OSINT、Web、后渗透、取证、Active Directory、报告 | | ⚡ **编排器** | 并行子代理:侦察、漏洞利用、分析、报告 | | 📚 **字典** | 700+ 内置条目 + 支持 rockyou.txt, SecLists, 外部文件 | | 🔄 **工作流** | 条件步骤、循环、变量、交互式编辑器、技能实际执行 | | 🛡️ **沙箱** | 允许所有命令 + 智能黑名单、范围验证、速率限制、自动 sudo | | 🔒 **护栏** | LLM 命令验证:虚假 flags、无效 IP、伪造 CVE | | 💾 **持久化** | SQLite 存储 findings,JSON 会话备份/恢复 | | 📊 **报告** | Markdown, JSON, CSV + 导出 ATT&CK Navigator 用于可视化 | | 🧩 **插件** | v2 系统,含 schema 验证、依赖解析、沙箱、热重载 | | 🌐 **i18n** | 多语言支持 (西班牙语/英语) | | 📋 **日志轮转** | 自动轮转并 gzip 压缩 | | 🐳 **Docker** | Kali Linux + 渗透测试工具 + Ollama | | 🎨 **UI** | 深色主题、语法高亮、紧凑代码 | ## 🚀 安装 ### 系统要求 - Python 3.10+ - Ollama (可选,用于 LLM) ### 快速安装 ``` git clone https://github.com/Ruby570bocadito/SPECTER-AI-Powered-Offensive-Security-Terminal.git cd SPECTER-AI-Powered-Offensive-Security-Terminal pip install -e ".[dev,ollama,export,workflows]" ./run.sh ``` ### 使用 Ollama (推荐) ``` # 安装 Ollama: https://ollama.com ollama pull devstral-small-2:latest ollama serve ./run.sh ``` ### Docker (完整环境) ``` # 构建并运行(包含 Ollama) docker compose up -d # 访问终端 docker compose exec specter python -m specter.cli.main ``` ## 📖 使用 ### 启动 ``` # 使用 LLM ./run.sh # 不使用 LLM(仅终端) ./run.sh --no-llm ``` ### 主要命令 | 命令 | 描述 | |---------|-------------| | `/scope set 192.168.1.1` | 添加 IP 到授权范围 | | `/scope set example.com` | 添加域名 | | `/scope` | 查看当前授权范围 | | `/scope clear` | 清空授权范围 | | `/model list` | 查看可用模型 | | `/model switch <名称>` | 切换活动模型 | | `/role pentester` | 专业审计员 | | `/role red-teamer` | 攻击方操作员 | | `/role blue-teamer` | 防御方 | | `/role ctf-player` | CTF 选手 | | `/role forensic-analyst` | 取证分析师 | | `/skills` | 列出技能 | | `/tools` | 列出 MCP 工具 | | `/wordlist dir` | 72 个常见目录 | | `/wordlist subdomain` | 120+ 子域名 | | `/wordlist user` | 60+ 用户名 | | `/wordlist pass` | 150+ 密码 | | `/wordlist sql` | SQL 注入 payloads | | `/wordlist xss` | XSS payloads | | `/wordlist lfi` | LFI payloads | | `/wordlist cve` | CVE 搜索模式 | | `/agent list` | 查看代理 | | `/agent spawn <任务>` | 部署任务 | | `/read <文件>` | 读取文件 | | `/finding add "文本"` | 添加发现 | | `/findings` | 查看发现 | | `/report generate` | 生成报告 | | `/session` | 会话信息 | | `/mode paranoid` | 每个命令需确认 | | `/mode standard` | 默认模式 | | `/mode expert` | 无需确认 | | `/help` | 完整帮助 | | `/clear` | 清空终端 | ### 自然语言对话 用西班牙语或英语与 SPECTER 交流: ``` Usuario: "escanea los puertos de 192.168.1.1" SPECTER: Voy a realizar un escaneo de puertos... nmap -sV -p- 192.168.1.1 [Output formateado con tabla de puertos] ¿Qué siguiente paso sugiere? 1. Enumerar servicios web (nikto, nuclei) 2. Intentar fuerza bruta en SSH 3. Análisis SSL/TLS ``` LLM 可以: - **执行命令**,使用 `...` 标签 - **读取文件**,通过“显示 X 的内容” - **部署代理**,自动处理复杂任务 - **生成代码**,在 markdown 块中带有语法高亮 - **自动 sudo** — 如果命令因权限失败,自动使用 sudo 重试 ## 🛡️ 安全 ### 沙箱 (Allow-All) SPECTER 使用 **allow-all 模式配合智能破坏性黑名单**: **允许** — 任何渗透测试工具: - nmap, gobuster, ffuf, nikto, sqlmap, hydra - mimikatz, responder, bloodhound, crackmapexec - proxychains, chisel, reverse shells - 自定义漏洞利用和自有脚本 **阻止** — 仅限破坏性命令: - `rm -rf /`, `rm -r -f /`, `rm -f -r /` (任意 flags 顺序) - `dd if=/dev/zero`, `mkfs`, `> /dev/sdX` - Fork 炸弹, shutdown/reboot/halt/poweroff - `kill -9 1`, `killall systemd`, `pkill -SIGKILL init` - `systemctl poweroff/reboot/halt` ### 活动限制 | 保护措施 | 描述 | |---|---| | **Scope 验证** | 仅攻击授权范围内的 IP/域名 (支持 CIDR、子域名) | | **速率限制** | 命令间隔至少 2s (防止 LLM 循环) | | **会话限制** | 每个会话最多 500 条命令 | | **LLM Guardrails** | 检测虚假 flags、无效 IP、伪造 CVE、语法错误 | | **独立日志** | `commands_llm.jsonl` 与 `commands_manual.jsonl` 分离 | | **Paranoid 模式** | 每个命令强制确认 | | **Auto-Sudo** | 检测到权限错误时使用 sudo 重试 | | **审计 HMAC 链** | 审计日志使用 HMAC 链以检测篡改 | ## 🤖 子代理 | 代理 | 功能 | |--------|---------| | Recon Agent | OSINT、指纹识别、枚举 | | Exploit Agent | 漏洞利用、绕过 AV/EDR/AMSI | | Analyst Agent | 结果分析 | | Reporter Agent | 报告生成 | ## 🧩 插件系统 完整验证的插件: ``` # plugin.yaml name: my-plugin version: 1.0.0 description: Custom recon tool author: tu-nombre min_specter_version: 0.1.0 dependencies: - requests - beautifulsoup4 entry_point: my_plugin.main permissions: - network - filesystem ``` ``` # 从 SPECTER /plugin install plugin.zip # Instalar desde archivo /plugin list # Listar plugins /plugin enable # Activar /plugin disable # Desactivar /plugin reload # Hot-reload /plugin uninstall # Desinstalar ``` ## 📚 外部字典 除内置字典外,加载外部字典: ``` # 加载外部文件 /wordlist load /path/to/rockyou.txt # 下载 SecLists /wordlist download Discovery/Web-Content/common.txt # 扫描目录 /wordlist scan /usr/share/wordlists/ # Wordlist 合并 /wordlist merge rockyou.txt custom.txt output.txt ``` ## 📊 MITRE ATT&CK Navigator 将发现导出为 ATT&CK Navigator 图层: ``` # 导出 Navigator 层 /mitre export-navigator # 查看覆盖率矩阵 /mitre coverage # 导出完整报告 /mitre report ``` 生成的 JSON 文件可直接导入 [MITRE ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/)。 ## 💾 持久化 ### 会话备份/恢复 ``` # 关闭会话时自动备份 # 数据保存在 sessions//session_backup.json # 恢复会话 # (从代码) from specter.core.session import Session session = Session.restore_from_backup("sessions/abc123/session_backup.json") ``` ### FindingStore (SQLite) 发现内容存储在 SQLite 中以确保持久化: ``` from specter.core.storage import FindingStore, PersistentFinding store = FindingStore("sessions/my_session/findings.db") store.add(PersistentFinding( title="SQL Injection en login", severity="CRIT", tool="sqlmap", target="http://target.com/login", cvss=9.8, )) # 导出 store.export_markdown() # Reporte profesional store.export_json() # Para integración con otras herramientas ``` ## 📦 架构 ``` src/specter/ ├── agents/ # Orquestador y sub-agentes ├── cli/ # CLI interactiva (prompt_toolkit) ├── core/ # Motor principal │ ├── engine.py # Orquestador principal │ ├── llm_handler.py # Streaming y gestión de modelos │ ├── command_executor.py # Ejecución de comandos, batch, agentes │ ├── report_generator.py # Generación de reportes │ ├── command_router.py # Routing de slash commands │ ├── tool_service.py # Display de output de herramientas │ ├── sandbox.py # Allow-all sandbox con auto-sudo │ ├── guardrails.py # LLM command validation │ ├── storage.py # SQLite FindingStore │ ├── session.py # Session management + backup/restore │ ├── permissions.py # 3 modos de permiso │ ├── mitre.py # MITRE ATT&CK integration │ ├── mitre_navigator.py # ATT&CK Navigator export │ ├── audit.py # Audit log con HMAC chain │ ├── wordlist_loader.py # External wordlists (SecLists, rockyou) │ ├── i18n.py # Internacionalización (es/en) │ ├── log_rotation.py # Rotación de logs con gzip │ └── config.py # Configuración (pydantic-settings) ├── llm/ # Integración Ollama │ ├── client.py # Cliente Ollama │ ├── prompt_builder.py # System prompts por rol │ ├── connection_manager.py # Gestión de conexión │ └── service.py # Streaming service ├── mcp/ # Model Context Protocol │ ├── tool.py # Definición de herramientas │ ├── registry.py # Registro básico │ └── advanced_registry.py # Templates, chains, parsers ├── skills/ # Skills de IA │ ├── recon.py, osint.py, web.py │ ├── postex.py, forense.py, ad.py │ └── report.py, advanced_framework.py ├── wordlists/ # Diccionarios integrados (700+ entradas) │ └── dictionaries.py └── plugins/ # Sistema de plugins v2 ├── base.py # Plugin base class └── plugin_manager.py # Manager con sandbox, deps, hot-reload ``` ## 🧪 测试 ``` # 安装开发依赖 pip install -e ".[dev]" # 运行测试 python -m pytest tests/ -v # 带 coverage python -m pytest tests/ --cov=src/specter --cov-report=html # 特定测试 python -m pytest tests/test_sandbox.py tests/test_guardrails.py tests/test_engine.py -v ``` **128 个测试通过** (沙箱 + 护栏 + 引擎 + 核心)。 ## ⚙️ 配置 ``` # .env SPECTER_OLLAMA_HOST=http://localhost:11434 SPECTER_OLLAMA_MODEL=devstral-small-2:latest SPECTER_DATA_DIR=./sessions SPECTER_AUDIT_SECRET=your-secret-key ``` ``` # specter.ini(高级配置) [llm] host = http://localhost:11434 model = devstral-small-2:latest temperature = 0.7 [permissions] mode = standard auto_save = true [ui] colors = dark show_model = true language = es ``` ## 🔧 故障排除 ### Windows 编码 ``` chcp 65001 ``` ### Ollama 无响应 ``` ollama serve ollama pull devstral-small-2:latest ``` ### 导入错误 ``` pip install -e . ``` ### 命令需要 root SPECTER 自动检测权限错误并询问是否使用 `sudo` 重试。只需你的用户配置了 sudo。 ### 退出 SPECTER - 输入 `exit`、`quit` 或 `salir` - 或者按两次 `Ctrl+C` ## ⚠️ 道德使用 本软件仅供 **授权的专业道德使用**。仅在你拥有书面明确授权的系统上使用。作者不对滥用行为承担责任。 ## 📄 许可证 MIT License ## 🏗️ CI/CD 项目包含 GitHub Actions,用于: - 使用 Ruff 进行 **Linting** - 使用 pytest + coverage 进行 **Testing** - 使用 mypy 进行 **Type checking** - **跨平台**: Ubuntu + Windows, Python 3.10-3.12 ## 🐳 Docker Compose ``` # 包含 docker-compose.yml services: ollama: image: ollama/ollama:latest ports: ["11434:11434"] volumes: [ollama_data:/root/.ollama] deploy: resources: reservations: devices: [{driver: nvidia, count: 1, capabilities: [gpu]}] specter: build: . depends_on: [ollama] environment: - SPECTER_OLLAMA_HOST=http://ollama:11434 volumes: - specter_sessions:/app/sessions - specter_output:/app/output network_mode: host ```
标签:Active Directory, AI风险缓解, CISA项目, Cloudflare, CSV导出, DLL 劫持, Docker, ESC4, GitHub, Guardrails, HTTP工具, JSON, LLM评估, Markdown, MCP, MITRE ATT&CK, Mr. Robot, Ollama, Ollama集成, OSINT, PE 加载器, Plaso, Python, Red Team, Ruby, SecLists, SQL, Web报告查看器, XXE攻击, 人工智能, 后渗透, 大语言模型, 字典, 安全合规, 安全测试, 安全运营, 安全防御评估, 实时处理, 密码管理, 工作流, 扫描框架, 插件系统, 攻击性安全, 数字取证, 数据泄露, 无后门, 无线安全, 本地部署, 模型上下文协议, 模拟器, 沙箱, 流量嗅探, 混合加密, 用户模式Hook绕过, 知识库, 系统审计, 网络代理, 网络安全, 网络安全审计, 网络调试, 自动化, 自动化报告, 自动化脚本, 蓝队防御, 请求拦截, 逆向工具, 防御性安全, 防御绕过, 隐私保护