go-appsec/toolbox
GitHub: go-appsec/toolbox
基于 MCP 协议的人机协作应用安全测试工作台,让人类负责认证与 UI 交互,AI 智能体负责流量分析与变异测试。
Stars: 9 | Forks: 2
[](https://github.com/go-appsec/toolbox/blob/main/LICENSE)
[](https://github.com/go-appsec/toolbox/actions/workflows/tests-main.yml)
**基于 MCP 的应用程序安全测试工具,专为您的编码智能体打造。**
这不是一个扫描器,而是一个协作工作台。智能体在处理 UI 和有状态 API 方面常常力不从心,而您恰好擅长这两者。Sectool 允许您通过代理探索应用程序,同时让智能体分析和处理您生成的已认证流量。
您负责处理身份验证和 UI 交互,智能体则负责查询流量、变异请求、查找反射、监控带外交互以及尝试其他排列组合。结合您与智能体的能力,不仅能让常规任务变得更轻松,还能减少遗漏隐蔽指标的可能性,并使复杂测试更加彻底。
## 快速入门
### 1. 安装 sectool
```
go install github.com/go-appsec/toolbox/sectool@latest
```
**没有安装 Go?** 从 [最新发布版](https://github.com/go-appsec/toolbox/releases) 下载适合您平台的二进制文件(Linux, macOS, Windows — amd64 和 arm64)。
### 2. 启动 MCP (Model Context Protocol) 服务器
```
sectool mcp
```
这将在端口 9119 上启动一个 MCP 服务器,并在端口 8080 上启动内置的 HTTP 代理。
### 3. 配置您的浏览器
将浏览器的代理设置指向 `127.0.0.1:8080`(或使用 `--proxy-port` 指定的端口)。
若要进行 HTTPS 拦截,请安装位于 `~/.sectool/ca.pem` 的 CA 证书(首次运行时自动生成)。大多数浏览器可以通过其证书设置接受该证书;在 macOS 上,您也可以将其添加到系统钥匙串中。
**正在使用 Burp?** 请改为遵循 [Burp 的代理配置](https://portswigger.net/burp/documentation/desktop/external-browser-config),然后使用 `sectool mcp --burp` 启动 sectool。
### 4. 连接您的智能体
**Claude Code:**
```
claude mcp add --transport http sectool http://127.0.0.1:9119/mcp
```
**Codex** (`~/.codex/config.toml`):
```
[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"
```
### 5. 协作
与智能体合作制定测试计划并共同执行。当您处理基于浏览器的操作(如身份验证或交互式 UI 审查)时,智能体可以查询代理历史、重放修改后的请求、爬取端点以及测试带外交互。
## 服务器选项
### 代理后端
**Native:** 内置代理,支持线路保真(wire-fidelity)以及 HTTP/1.1、HTTP/2 和 WebSocket。设计旨在具备与 Burp 相当的 MITM 测试能力。单一二进制文件提供 MCP 服务器、代理和 CLI —— 完全自包含,可在无头环境中使用。
**Burp(可选):** 如果您更喜欢使用 GUI 来审查智能体的操作,或者已经在运行 Burp,请从 BApp Store 安装 MCP 扩展,并确保 MCP 服务器运行在 `http://127.0.0.1:9876/`。
| 选项 | 描述 |
|--------|-------------|
| (default) | 自动检测:优先尝试 Burp MCP,失败后回退到原生代理 |
| `--proxy-port 8080` | 在指定端口强制使用原生代理 |
| `--burp` | 强制使用 Burp MCP(如果不可用则失败)|
### 会话选项
#### 工作流
当智能体在会话开始时调用 `workflow` 工具时,Sectool 会自动确定合适的工作流。您可以通过预先指定工作流来跳过此步骤并节省 token:
```
sectool mcp # Default: agent selects task type via workflow tool
sectool mcp --workflow explore # Pre-set exploration mode
sectool mcp --workflow test-report # Pre-set validation mode
sectool mcp --workflow none # No workflow instructions
```
| 模式 | 描述 |
|------|-------------|
| (default) | 智能体通过调用 `workflow` 工具选择任务类型,接收协作指令 |
| `explore` | 探索性安全测试;所有工具可用 |
| `test-report` | 验证特定的漏洞报告;排除爬取工具 |
| `none` | 无工作流指令,所有工具立即可用 |
工作流指令引导智能体进行协作测试,而不是尝试自主完成所有工作,或者在没有增值的情况下逐步引导您完成流程。如果您有改进智能体协作的想法,请[提交 issue](https://github.com/go-appsec/toolbox/issues)。
#### 备注
`--notes` 标志启用 `notes_save` 和 `notes_list` 工具,用于保存与流量关联的观察结果。默认禁用,以保持短会话的上下文使用量最低。当您预期会有多个发现或对话压缩时,请启用它。
### MCP 传输
服务器公开两个端点:
- `/mcp` - Streamable HTTP(推荐)
- `/sse` - SSE(旧版,适用于旧客户端)
## CLI 使用示例
CLI 与智能体共享状态,并提供人性化的界面用于审查、重放和脚本编写。所有命令也可作为 MCP 工具使用,状态与智能体共享。
```
# 查看浏览时代理捕获的内容
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id
# 爬取应用以发现端点和表单
sectool crawl create --url https://example.com
sectool crawl summary 标签:Burp Suite替代, CA证书, EVTX分析, Go语言, HTTP(S)拦截, IP 地址批量处理, MCP, PE 加载器, 中间人攻击, 人机协作, 安全工具箱, 带外交互, 应用安全测试, 日志审计, 流量篡改, 程序破解, 请求重放