secorizon/SecorizonAI
GitHub: secorizon/SecorizonAI
一款终端原生的本地 AI 渗透测试代理 shell,通过 Ollama 运行本地模型并直接执行 shell 命令,专为安全专业人员设计。
Stars: 50 | Forks: 1
# SecorizonAI — 由渗透测试人员打造,为渗透测试人员而生
这是一款为安全专业人员构建的终端原生 AI shell。单一 Go 二进制文件,通过 [Ollama](https://ollama.com) 使用本地模型,严格的 JSON 工具调用循环,纯 Markdown 系统提示词 + 方法论指南 — 并且对云 AI 关于你是否“已获授权”的傲慢说教毫无耐心。
如果你已经厌倦了云 LLM agent 把每一次授权的测试工作都当成道德考验——而且在这一个小时内已经是第三次了——那么这款工具就是为你准备的。如果你一直想要一款专门针对渗透测试人员实际工作流程的通用 agent shell,那么它也是为你准备的。单一 Go 二进制文件,通过 [Ollama](https://ollama.com) 使用本地模型,没有云依赖,没有遥测。
## 五个核心理念
- **终端就是 UI。** 没有网页应用,没有 electron,没有守护进程。只需 `./secorizon`,你就可以与你的模型对话。
- **模型拥有 shell 访问权限。** AI 在其工具调用循环中运行的命令会在你的机器上、在你的 shell 中、以你的权限执行。由 agent 来完成工作;它不会只告诉你该输入什么。
- **内置网络搜索。** 当模型需要它所没有的信息时——例如当前的 CVE、厂商安全公告、近期的分析文章——它会发起搜索查询,并将结果反馈到下一轮对话中。无需 API key,没有速率限制。
- **系统提示词 + 方法论指南** 定义了 agent 的身份与工作流。纯 Markdown 格式。编辑后重启即可生效。该代码库附带了基础骨架示例;而实战方法论手册(侦察、Web、代码审计、漏洞利用开发、AD)则是 Pro 版本的产品。指南会在调用时按需加载(`/guides recon`、`/guides web` 等),从而保证冷启动保持迅速,且上下文只会随着当前任务的实际需求而增加。
- **本地优先。** 所有推理都在你的硬件上进行。没有任何数据会离开你的设备。
默认版本附带了安全研究的人格设定,但其架构是通用的——如果你想将其改造用于其他领域,请参阅 [docs/custom-ai.md](docs/custom-ai.md)。
## 快速开始
```
ollama pull :tag # see docs/custom-ai.md
go build -o secorizon ./chat.go
mkdir -p ~/.secorizon && cp SECORIZON.Example.Pentester.md ~/.secorizon/SECORIZON.md
SECORIZON_MODEL=:tag ./secorizon
```
如需了解更深入的教程(HuggingFace → Ollama、Modelfile、冒烟测试),请参阅 [docs/quickstart.md](docs/quickstart.md)。关于容器化部署(推荐),请参阅 [docker/README.md](docker/README.md)。
## 运行 shell 时的情况
一次会话是一个交互的过程:你输入内容,agent 进行思考、运行命令、读取输出、再次思考。以下四种运行时行为是正常的——而不是错误:
- **`⠋ analyzing...`** —— 模型正在生成下一轮之间的回复。如果它在*第一个*提示词上卡了超过 2 分钟,说明模型正在从磁盘冷加载(已内置了每次请求的 `keep_alive: 24h`;在守护进程中设置 `OLLAMA_KEEP_ALIVE=24h` 是双重保险)。如果*每个*提示词都卡超过 2 分钟,意味着有另一个客户端正在挤占模型——请参阅下方的状态行。
- **每次回复下方的状态行** —— `[model] tokens | prompt NNNtk/s | gen NN.Ntk/s | total Xs`(并且只有在模型刚刚重新加载时才会显示 `load X.Xs`)。这是你感觉运行缓慢时的诊断依据:每一轮都显示 `load X` = 有其他程序在挤占模型(例如并行的 Ollama 客户端);`prompt 100tk/s` 而不是约 1000 = 模型通过 PCIe 分布在了多个 GPU 上。
- **`(command backgrounded after 30s)`** —— 长时间运行的命令(完整的 nmap、深度的 `find`、递归的 `grep`、庞大的 `crt.sh` JSON 拉取)会在 30 秒后转入后台运行。shell 会将最终的输出保存到 `/tmp/secorizon_bg_.txt`,并且自动将其作为 `[backgrounded command completed]` 的用户消息追加到模型的下一轮对话中,这样模型就不会悄无声息地遗忘结果。你可以在另一个终端中使用 `tail -f` 实时查看。
- **`Ctrl+C` 会取消当前命令或模型流——而不是关闭 shell。** 要退出,请输入 `/exit`(会保存会话历史)或在空提示符下按两次 `Ctrl+D`。
完整参考请见 [docs/installation.md § What you'll see during a session](docs/installation.md#what-youll-see-during-a-session)。
## 本软件包包含的内容
```
secorizon/
├── chat.go # The terminal shell — single Go file (~5,200 lines)
├── go.mod / go.sum # Build metadata (one dep: golang.org/x/term)
├── SECORIZON.Example.Pentester.md # EXAMPLE — skeleton pentest system prompt
├── LICENSE # Apache 2.0 + Commons Clause
├── docs/ # Documentation
└── docker/ # Containerized single-user image (recommended runtime)
```
**重要提示:** 本软件包不包含生产环境的系统提示词或方法论指南。
此示例展示了标准的结构;你需要
自己编写实际的 agent——或者购买我们的授权。
## 开源版与 SecorizonAI Pro 对比
| | 开源版 (本代码库) | SecorizonAI Pro |
|---|---|---|
| 聊天 shell 二进制文件 | ✓ | ✓ |
| JSON 工具调用协议 | ✓ | ✓ |
| 单用户 Docker 镜像 | ✓ | ✓ |
| 配置与文档 | ✓ | ✓ |
| 骨架版系统提示词示例 | ✓ | ✓ |
| **生产级系统提示词 (`SECORIZON.md`)** | ✗ — 需自行编写 | ✓ |
| **方法论指南** (侦察、Web、代码审计、漏洞利用开发、AD) | ✗ | ✓ — 约 5 份指南,约 2,000 行 |
| **漏洞发现模板 + 报告标准** | 桩代码 | 完整版 |
| **范围界定规则边界情况** | 基础 | 取自真实测试项目 |
| **硬件安装支持** | 自行操作 | 包含 |
| **技术支持** | 仅限 issue | 6 个月直接支持 |
开源版本足以让你使用自己的方法论来运行 agent。
Pro 版本则是端到端的方法论。价格需咨询 —— 请访问
[secorizon.com/secorizonai](https://secorizon.com/secorizonai)。
## SecorizonAI 的与众不同之处
| 特性 | SecorizonAI | PentestGPT | Open Interpreter | Claude Code | Burp AI |
|---|---|---|---|---|---|
| 本地 LLM (无云依赖) | ✓ | ✗ | ✓ | ✗ | ✗ |
| Shell 访问权限 (直接执行,而非仅建议) | ✓ | ✗ | ✓ | ✓ | 部分 |
| 渗透测试专属人格 + 方法论 | ✓ | ✓ | ✗ | ✗ | ✓ (仅限 Web) |
| 内置于提示词中的反拒绝机制 | ✓ | ✗ | 不适用 | ✗ | ✗ |
| 单一二进制文件,无 Python 依赖 | ✓ | ✗ | ✗ | ✗ | 不适用 |
| MCP 支持 (Burp 等) | ✓ | ✗ | 部分 | ✓ | 不适用 |
| 开源 | ✓ (shell) | ✓ | ✓ | ✗ | ✗ |
| 付费的方法论知识产权 | ✓ (Pro) | ✗ | ✗ | ✗ | ✗ |
**本地运行 + shell 执行 + 渗透测试调优提示词 + 反拒绝机制 + MCP** 的独特组合是其他任何工具都无法在一个产品中同时提供的。PentestGPT 具备人格设定,但仅限云端且经常拒绝授权的测试工作。Open Interpreter 具备本地运行 + shell 执行能力,但过于通用。Claude Code 很完善,但受限于云端且会对攻击性任务进行阻拦。Burp AI 仅针对 Web 且完全封闭。
## 文档导览
| 文档 | 涵盖内容 |
|---|---|
| [docs/quickstart.md](docs/quickstart.md) | 端到端流程:HuggingFace → GGUF → Ollama → SecorizonAI |
| [docs/installation.md](docs/installation.md) | 从源码构建、运行、Docker 部署 |
| [docs/configuration.md](docs/configuration.md) | 所有的环境变量、斜杠命令和配置文件路径 |
| [docs/custom-ai.md](docs/custom-ai.md) | 更换模型,编写自定义系统提示词和指南 |
| [docs/architecture.md](docs/architecture.md) | 内部 JSON 工具调用循环的工作原理 |
## 如果你跳过文档,这里有两句话总结
shell 会将你的消息和系统提示词通过 Ollama 发送给本地 LLM。模型会回复结构化的 JSON,其中包含给你的文字说明,以及可选的要执行的 shell 命令或要进行的网络搜索。shell 会执行这些操作,将结果反馈回去,并不断循环,直到模型表示“完成”——然后等待你的下一条消息。
就是这样。这是一个终端原生的 ReAct 循环,配有精心策划的系统提示词和方法论指南。其他的一切都只是实现细节。
## 状态与预期
- **已在本地实战测试**,适用于单台工作站上的渗透测试工作流。
- **假定为单用户模式。** 直接在你的工作站上运行二进制文件,或者——推荐——在 `docker/` 容器内运行,以便将 agent 的命令沙箱化。
- **二进制文件本身无遥测、无身份验证。** 任何拥有终端访问权限的人都会以你的身份运行。不要将聊天 shell 暴露给不受信任的用户;容器仅仅是将 *agent* 与你的文件系统隔离,而不是将其他人与 agent 隔离。
- **没有安全辅助轮。** 默认的系统提示词明确告诉模型去执行命令、获取 URL 并自主行动。这是有意为之的——它是为安全专业人员提供的工具。请像对待一个拥有 sudo 权限的初级团队成员那样对待 agent:有能力、有用处,且值得监督。
- **多用户 SSH 部署**(一个共享的 SecorizonAI+Burp 容器,每位工程师有隔离的 home 目录)是 [SecorizonAI Pro](https://secorizon.com/secorizonai) 许可证的一部分,而不包含在开源版本中。
## 许可证
SecorizonAI 采用 **Apache 2.0 及 [Commons Clause](LICENSE)** 条款授权。
原则很简单:**你可以自由使用它,但未经许可不得出售。**
| 如果你是… | 你可以做什么 |
|---|---|
| 任何人 — 研究人员、爱好者、学生、非政府组织、政府、营利性公司的员工 | 自由使用。修改它。Fork 它。重新分发它。 |
| 在付费项目中使用它的渗透测试人员 / 咨询公司 / MSSP / 红队 | 自由使用。测试项目是你的产品,SecorizonAI 只是你的工具之一。 |
| 出于任何目的将其部署在内部基础设施上的公司 | 自由使用。 |
| 将 SecorizonAI 封装为**付费产品** | 需要商业许可证。 |
| 作为面向第三方的**付费托管服务**运营 SecorizonAI | 需要商业许可证。 |
| 以任何形式转售 SecorizonAI 本身 | 需要商业许可证。 |
**商业授权** —— 用于产品化、作为服务托管或将 SecorizonAI 捆绑到付费产品中 —— 可向 Secorizon 获取。请联系 [licensing@secorizon.com](mailto:licensing@secorizon.com) 或访问 [secorizon.com/secorizonai](https://secorizon.com/secorizonai)。生产环境系统提示词 + 方法论指南([SecorizonAI Pro](https://secorizon.com/secorizonai))也是商业产品的一部分。
完整版的 Apache 2.0 + Commons Clause 文本请参见 [LICENSE](LICENSE)。
标签:AI代理, AI风险缓解, EVTX分析, Go语言, 日志审计, 本地大模型, 程序破解, 网络调试, 自动化, 请求拦截, 防御加固