iammm0/secbot

GitHub: iammm0/secbot

Secbot 是一个基于 TypeScript 和多 agent 编排的 AI 驱动安全测试自动化工作区,为授权安全测试提供从侦察到报告的端到端工具链整合。

Stars: 74 | Forks: 12

# @opensec/secbot (TypeScript) — v2.0.0-b2 [![GitHub Release](https://img.shields.io/github/v/release/iammm0/secbot?include_prereleases&label=release)](https://github.com/iammm0/secbot/releases) [![Node.js](https://img.shields.io/badge/node-%3E%3D24-339933.svg)](https://nodejs.org/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) Secbot 是一个基于 AI 驱动的 TypeScript 安全自动化工作区,包含 NestJS 后端和基于 Ink 的终端 UI。 ![Secbot 演示](https://raw.githubusercontent.com/iammm0/secbot/release/assets/secbot-demo.gif) ## 产品线 | 线 | 分支 | 发布版本 | 备注 | | --- | --- | --- | --- | | **v2 TypeScript 产品** | [`release`](https://github.com/iammm0/secbot/tree/release) | [GitHub Releases](https://github.com/iammm0/secbot/releases) (`.tgz`) | 当前产品线 — NestJS + Ink TUI | | **v1 Python 技术栈** | [`pypi-release`](https://github.com/iammm0/secbot/tree/pypi-release) | [v1.10.0+](https://github.com/iammm0/secbot/releases/tag/v1.10.0) | 旧版 Python 版本;在 `pypi-release` 上维护 | | **Go 实验版** | [`pure-go`](https://github.com/iammm0/secbot/tree/pure-go) | — | 仅作为演示 / 概念验证 | ## 为什么选择此包 - 端到端的 TypeScript 架构(`NestJS + Ink + SQLite`)。 - `secbot` 二进制文件默认通过在本地启动后端来运行终端 UI。 - `secbot-server` 二进制文件适用于仅需后端 API 的场景。 - `secbot-mcp` 二进制文件将 Secbot 工具作为 stdio MCP 服务器暴露。 - 跨 REST、TUI 斜杠命令、CLI 子命令和内部工具共享 skills 管理。 - 具备规划、工具执行、MCP 桥接和摘要功能的多 agent 编排。 - 内置针对 Web、网络、OSINT、防御和报告工作流的安全工具模块。 ### 源码树编排(贡献者) 从代码库检出开始,`ChatService` 通过 **`IntentRouter`**(单次 LLM 分类)路由每一轮对话,可选择通过 **`ExploreAgent`**(使用 `vuln_db_query` / `browser_session` 的 ReAct,不含敏感工具),然后在每个模型的上下文预算下通过 **`ContextAssemblerService`** + **`ContextStore`** 执行。SSE 事件包括用于 TUI token 计量器的 `intent_decision`、`explore_*` 和 **`context_usage`**。**`task_simple`** 会跳过规划器;**`SummaryAgent`** 仅在 `needs_report` 为 true 时运行。面向贡献者的详细信息位于 **[`CLAUDE.md`](CLAUDE.md)**;更长的用户文档:[`README_CN.md`](README_CN.md) / [`README_EN.md`](README_EN.md)。 ## 环境要求 - Node.js `>= 24` - npm `>= 10`(推荐) - 可选:使用 Ollama 提供本地模型服务 ## 安装 从 [GitHub Releases](https://github.com/iammm0/secbot/releases) 下载最新的 `.tgz`(目前为 **v2.0.0-b2**),然后: ### 全局安装(推荐) ``` npm install -g ./opensec-secbot-2.0.0-b2.tgz secbot ``` ### 单次运行 ``` npx ./opensec-secbot-2.0.0-b2.tgz ``` ## 快速开始 ### 1. 配置环境变量 您可以在工作目录中创建一个 `.env` 文件: ``` # 云模型 backend(推荐) LLM_PROVIDER=deepseek DEEPSEEK_API_KEY=sk-your-api-key DEEPSEEK_MODEL=deepseek-chat # 可选的本地 backend (Ollama) # LLM_PROVIDER=ollama # OLLAMA_BASE_URL=http://localhost:11434 # OLLAMA_MODEL=llama3.2 # 可选:探索迭代、context debug SSE、自适应 replan、NVD 速率限制 # SECBOT_EXPLORE_MAX_ITERS=12 # SECBOT_CONTEXT_DEBUG=1 # SECBOT_ADAPTIVE_REPLAN=false # NVD_API_KEY=your-nvd-key ``` ### 2. 启动完整产品模式(后端 + TUI) ``` secbot ``` ### 3. 仅启动后端(可选) ``` secbot-server ``` ### 4. 启动 MCP 服务器模式(可选) ``` secbot-mcp ``` 仅当您明确希望 MCP 客户端看到敏感工具时,才设置 `SECBOT_MCP_ALLOW_SENSITIVE=true`。 ### 5. 连接到现有后端(可选) ``` # 推荐的显式 service mode SECBOT_TUI_BACKEND=service SECBOT_API_URL=http://127.0.0.1:8000 secbot # 向后兼容的别名 SECBOT_TUI_BACKEND=remote SECBOT_API_URL=http://127.0.0.1:8000 secbot ``` ## 包二进制文件 | 二进制文件 | 描述 | | --- | --- | | `secbot` | 启动终端 UI(默认:启动本地后端;可选服务模式) | | `secbot-server` | 仅启动 NestJS 后端 | | `secbot-mcp` | 通过 stdio MCP 暴露 Secbot 工具 | ## Skills 管理 Secbot 现在为产品和自动化接口公开了一层共享的 skills。 ### TUI 斜杠命令 ``` /skills /skill /create-skill [--description ...] [--trigger ...] [--tag ...] [--prerequisite ...] [--author ...] ``` ### CLI 子命令 ``` secbot skills list secbot skills view secbot skills create --description "..." --trigger recon --tag web ``` ### REST 端点 ``` GET /api/skills GET /api/skills/:name POST /api/skills ``` 创建的 skills 会在 `skills/custom//SKILL.md` 下生成脚手架,并且也可以通过内部的 `list_skills`、`get_skill` 和 `create_skill` 工具访问。 ## MCP 集成 Secbot 支持 MCP 的双向交互。 ### 将 Secbot 作为 MCP 服务器使用 ``` secbot-mcp ``` 这会通过 stdio MCP 暴露当前的 `ToolsService` 目录。除非设置了 `SECBOT_MCP_ALLOW_SENSITIVE=true`,否则敏感工具默认保持隐藏状态。 ### 从 Secbot 调用外部 MCP 服务器 使用内置的 `mcp_call` 工具连接到另一个 stdio MCP 服务器,列出其工具,或从 Secbot 工作流中调用其中一个工具。 ## 源码开发 ``` git clone https://github.com/iammm0/secbot.git cd secbot npm ci # Backend 开发 npm run dev # 带文件监听的 Backend 开发 npm run dev:watch # TUI(在另一个终端中,默认:spawn 本地 backend) npm run start:tui # TUI service mode(仅连接现有 backend) SECBOT_TUI_BACKEND=service SECBOT_API_URL=http://127.0.0.1:8000 npm run start:tui ``` ### 常用 npm 脚本 | 脚本 | 描述 | | --- | --- | | `npm run build` | 构建 NestJS 后端 | | `npm run build:terminal-ui` | 构建 Ink 终端 UI | | `npm run build:web` | 构建 Web 前端 bundle | | `npm run typecheck` | 对服务端代码进行类型检查 | | `npm run lint` | 运行 ESLint | | `npm run format:check` | 检查 Prettier 格式化 | | `npm test` | 运行测试 | | `npm run release:pack` | 构建并创建 npm 包 tarball | | `npm run release:verify` | 验证打包后的 npm 发布内容 | ## 文档 - **Wiki**: [GitHub Wiki](https://github.com/iammm0/secbot/wiki) · [源文件 `docs/wiki/`](docs/wiki/) - **[CLAUDE.md](CLAUDE.md)** — 贡献者 / AI 编程 agent 指南(编排、SSE、环境变量) - [快速开始](docs/QUICKSTART.md) - [API 参考](docs/API.md) - [LLM 提供商](docs/LLM_PROVIDERS.md) - [Ollama 设置](docs/OLLAMA_SETUP.md) - [UI 交互设计](docs/UI-DESIGN-AND-INTERACTION.md) - [工具扩展](docs/TOOL_EXTENSION.md) - [发布指南](docs/RELEASE.md) - [安全警告](docs/SECURITY_WARNING.md) ## 链接 - 发布版本: [https://github.com/iammm0/secbot/releases](https://github.com/iammm0/secbot/releases) - Python v1 线: [pypi-release 分支](https://github.com/iammm0/secbot/tree/pypi-release) - 代码库: [https://github.com/iammm0/secbot](https://github.com/iammm0/secbot) - Issues: [https://github.com/iammm0/secbot/issues](https://github.com/iammm0/secbot/issues) ## 许可证 本项目采用 MIT 许可授权。详情请参阅 [LICENSE](LICENSE)。
标签:AI风险缓解, MITM代理, NestJS, TypeScript, 人工智能, 多智能体, 安全插件, 安全测试, 实时处理, 密码管理, 攻击性安全, 用户模式Hook绕过, 终端UI, 网络调试, 自动化, 自动化攻击