dokotela021/intellirecon-console

GitHub: dokotela021/intellirecon-console

浏览器原生的 AI 驱动安全侦察控制台,通过 Claude agent 统一调度 MCP 安全工具与共享 shell 终端,实现跨会话的持久化侦察知识管理。

Stars: 1 | Forks: 0

# IntelliRecon [![GitHub](https://img.shields.io/badge/GitHub-intellirecon--console-2ea043?style=flat-square&logo=github)](https://github.com/dokotela021/intellirecon-console) [![License](https://img.shields.io/badge/license-All%20Rights%20Reserved-lightgrey?style=flat-square)](#) [![React](https://img.shields.io/badge/React-18-61DAFB?style=flat-square&logo=react&logoColor=black)](#) [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6?style=flat-square&logo=typescript&logoColor=white)](#) [![Node.js](https://img.shields.io/badge/Node.js-backend-339933?style=flat-square&logo=node.js&logoColor=white)](#) [![Python](https://img.shields.io/badge/Python-engine-3776AB?style=flat-square&logo=python&logoColor=white)](#) [![Go](https://img.shields.io/badge/Go-scanner-00ADD8?style=flat-square&logo=go&logoColor=white)](#) **一个浏览器原生的 AI 侦察控制台。** 一个浏览器内终端和一个驱动 MCP 安全工具的 Claude agent,共享同一个 shell 会话 —— 位于一个轻量级 Node 后端之上。 灵感来自 hexstrike-ai 和 xalgorix。 IntelliRecon 是一个项目,包含三个部分,均位于此 repo 下: - **`engine/`** — 基于 MCP 的安全工具模型,通过 stdio 向 agent 暴露 150+ 个工具。 - **`scanner/`** — Go CLI/TUI/webui 扫描器;其 Geist/Vercel-dark 设计系统(React + Vite + Tailwind v4)是控制台 UI 的构建基础,并带有翠绿色的“侦察”强调色。 - **RLearning / 自动化渗透测试** — agent 的姿态:范围界定 → 枚举 → 探测 → 验证,仅报告其能证明的发现。 ## IntelliRecon 的增量功能 这不是三个独立工具的并列组合 —— 融合才是核心: - **一个 agent,双工具界面。** 单个基于 Claude 的循环可在同一轮对话中跨 engine 的 150+ 安全工具 *和* 共享 shell 进行规划,而无需在扫描器 CLI 和单独的工具运行器之间切换上下文。 - **终端交接。** 每次运行都会在 `intellirecon-runs/` 下写入一个 `HANDOFF.md` + 结构化的 `run.json`,因此在嵌入终端中启动的 `claude` (Claude Code) 会话会准确接替 agent 停止的地方 —— 相同的 cwd,相同的发现,无需重新解释目标。 - **持久的跨会话知识库。** 发现、endpoint、角色和身份验证笔记按目标持久化存储在 SQLite (`server/db.mjs`) 中,并且可被 9 种侦察视角模式中的任何一种查询,而不是每次工具运行都从零开始。 - **两个可互换的 LLM 后端。** 将 `ANTHROPIC_API_KEY` 直接指向 Anthropic,或将 `ANTHROPIC_BASE_URL`/`ANTHROPIC_AUTH_TOKEN` 指向 OpenRouter(或任何兼容 Anthropic 的网关) —— 相同的 agent 循环,无需更改代码。 - **统一的 UI。** 控制台、终端、发现、知识库和工具活动都位于一个单一的设计系统中,而不是三个外观和感觉各不相同且生硬拼凑在一起的工具。 所有智能操作都在浏览器 + Claude 中运行。后端是一个**单文件** (`server/server.mjs`),它只做浏览器在物理上无法做到的两件事:生成 shell 和持有 API key。 ``` ┌──────────────────── browser (all UI state) ────────────────────┐ │ Agent chat (Claude) │ xterm.js terminal │ MCP tool feed │ └───────────┬───────────────────┬───────────────────┬────────────┘ WS /agent WS /pty (same shell) │ │ ┌───────────▼────────────────────▼───────────────────────────────┐ │ server.mjs — Claude agent loop · PTY bridge · MCP client │ │ (thin, ~1 file) │ └───────────┬─────────────────────────────────────────────────────┘ │ stdio MCP servers (engine, …) + local shell tools (nmap, ffuf, …) ``` ## 快速开始 ``` cd intellirecon npm install # builds node-pty natively (needs gcc/make) export ANTHROPIC_API_KEY=sk-ant-... # required for the agent # 开发(Vite 运行在 :5173,backend 运行在 :8899,hot reload): npm run dev # → 打开 http://localhost:5173 # 或者单个 production 进程(backend 在 :8899 上提供已构建的 UI): npm run serve # → 打开 http://localhost:8899 ``` 如果未设置 `ANTHROPIC_API_KEY`,终端和 UI 仍然可以工作;agent 面板会显示横幅,直到您设置它并重新启动。 ## 使用说明 1. 打开 **控制台**。左侧面板是 Claude agent;右侧是基于共享 MCP 工具流的实时终端。 2. 输入目标/任务,例如 *“对 scanme.nmap.org 进行侦察 —— 从 nmap 服务扫描开始。”* 3. agent 会进行规划、调用工具(用于本地 CLI 工具的 `run_command`,以及任何 MCP 工具)、读取输出并进行迭代。它运行的命令会回显到您的终端中 —— 您和 agent 共享一个 shell 和一个工作目录。 4. 对于基于 IP/CIDR 的发现(云范围、ASN 块)而不是 DNS 枚举,agent 可以通过 `run_command` 调用 [CloudRecon](https://github.com/g0ldencybersec/CloudRecon) (`go install github.com/g0ldencybersec/CloudRecon@latest`) —— 它会直接从这些 IP 上提供服务的 TLS 证书中提取主机名。其输出会被合并到每次运行的 `subdomains.txt` 中,而无需事先知道 apex 域名。 5. 验证后的问题会出现在 **发现** 面板上(可导出为 JSON)。已连接的工具列在 **MCP 工具** 下。 ## Agent 模式 Agent 面板标题中的下拉菜单可在 9 种专门的 bug bounty 侦察视角(定义在 `server/agents.mjs` 中)以及不受限制的默认模式之间切换单个 agent 循环: | 模式 | 侧重点 | |------|-------| | 通用侦察 | 不受限 —— 范围界定、枚举、探测、验证(默认)。 | | JavaScript 侦察 | 爬取 JS 资产,提取 endpoint/secrets/routes,构建应用地图。 | | API 映射 | 将发现的 endpoint 转换为完整的规格;对比它们以发现身份验证/校验不一致之处。 | | 浏览器分析 | 客户端行为 —— DOM、存储、隐藏功能、网络触发器。 | | 业务逻辑审查 | 记录多步骤工作流;标记可能未在服务端强制执行的步骤。 | | 会话与 Token 分析 | JWT、session cookie、refresh/CSRF token —— 生命周期、轮换、claims、cookie 属性。 | | 密码重置审查 | 请求 → 邮件 → token → 重置流程:过期、一次性使用、绑定。 | | 授权分析 | 映射角色,对比每个角色的 endpoint 访问权限,暴露偏差/不一致之处。 | | Burp Suite 集成 | 将 Burp site-map/proxy-history 导出(或已连接的 Burp MCP server)提取到知识库中。 | | 报告 | 无新侦察 —— 将已验证的发现 + 知识库组装成可提交的报告。 | 一个模式就是一份系统提示简报加上一组精心挑选的知识库 *record* 工具(见下文) —— `run_command`、`report_finding` 和每个已连接的 MCP 工具在每种模式下都保持可用,因为真实的侦察输出很少会遵守整齐的类别边界。 ## 知识库 每种模式都会读写同一个持久的、针对目标的 SQLite 存储 (`server/db.mjs`),而不是每次会话都重新进行侦察:JS 资产、API endpoint、角色、角色↔endpoint 访问权限、auth token 配置、业务流程、第三方源、客户端观察记录和自由格式笔记。任何模式都可以在开始工作前调用 `query_knowledge_base` 来查看为某个目标记录的所有内容。 在 **知识库** 页面上浏览它(按目标,按类别分选项卡),或通过 `GET /api/kb?target=` 和 `GET /api/kb/targets` 浏览。 ## 配置 - **模型** —— 默认为 `claude-opus-4-8`。使用 `INTELLIRECON_MODEL` 覆盖(例如 `claude-sonnet-5` 以获得更快/更便宜的循环)。 - **MCP server** —— 编辑 `mcp.config.json`。每个条目都通过 stdio 启动;失败不是致命的。要接入捆绑的 engine 工具,请启动其 API server (`engine/intellirecon_server.py`),然后翻转 `enabled: true`: { "mcpServers": { "engine": { "enabled": true, "command": "./engine/intellirecon-env/bin/python", "args": ["./engine/intellirecon_mcp.py", "--server", "http://127.0.0.1:8888"] } } } - **MCP 调用超时** —— 全局默认值 `INTELLIRECON_MCP_TIMEOUT_MS` (`300000`,即 5 分钟),覆盖 MCP SDK 的 60 秒默认值。在 `mcp.config.json` 中每个 server 的 `toolTimeouts` 下设置**每个工具**的上限(值以**秒**为单位;`default` 覆盖整个 server,命名条目会覆盖它)—— 像 `amass_scan` 这样长时间运行的枚举器需要更多时间(附带配置给了它 30 分钟)。上限是一个限制额度,而不是等待时间:工具在完成的那一刻就会返回,因此慷慨的限制成本很低,并且操作员可以随时点击 **Stop** 提前取消调用。如果调用仍然达到其上限,扫描可能会继续在 MCP server 上运行 —— 此时 agent 会被指示缩小范围,而不是重放同样的重型调用。 - **端口** —— `PORT`(默认 `8899`)。**Shell** —— `SHELL`。**启动目录** —— `INTELLIRECON_CWD`。 ## 端口与 endpoint | 路径 | 用途 | |------|------| | `GET /api/health` | 模型、key 状态、MCP 工具计数 | | `GET /api/agent-modes` | 9 种侦察视角 + 默认模式,用于模式下拉菜单 | | `GET /api/kb?target=` | 单个目标的完整知识库 | | `GET /api/kb/targets` | 具有知识库条目的所有目标 | | `WS /pty` | 终端 ↔ node-pty(上行 JSON 控制帧,下行原始输出) | | `WS /agent` | Claude agent(流式传输 delta、工具调用、发现、`set_mode`) | ## 安全性 IntelliRecon 适用于**已授权**的安全测试、bug bounty 和 CTF 工作。agent 会在您的机器上针对您提供的目标运行真实命令 —— 请仅将其指向您有权测试的系统。 ## 技术栈 React 18 · Vite 5 · Tailwind v4 · xterm.js · Node (ws + node-pty) · `@anthropic-ai/sdk` · `@modelcontextprotocol/sdk`。
标签:AI智能体, EVTX分析, Go, MITM代理, React, Ruby工具, Syscalls, 侦察工具, 实时处理, 密码管理, 日志审计, 逆向工具