Hermes 的智能体渗透测试配置文件:31 个 playbook,涵盖授权侦察、Web/访问控制攻击、安全漏洞利用验证,以及带防护门的基于证据的报告。
35 个操作手册 · 19 份参考资料 · 14 个模板 · 必需的执行防护 · Hermes 原生
Violin 是一个 Hermes 原生的智能体式渗透测试配置,用于受监督、经授权的渗透测试——从侦察、安全漏洞验证到报告。它使用 Hermes 内置的工具集、七个路由技能,以及在目标执行边界处必需的 violin_guard 插件。独立 CLI 支持发布检查、诊断和管理恢复;目标命令通过该插件运行。Violin 不添加任何配置专属凭据,并继承 Hermes 中已配置的提供方和工具后端。
快速开始 · 工作流程 · 防护工具 · 基准测试 · 落地页 · 讨论区 · 开发
关注 Violin? 为仓库加星 以便于查找,并帮助其他安全工程师发现受监督的智能体式渗透测试。
Violin 已被收录于社区精选合集,包括 awesome-ai-security、 awesome-hermes-skills、 awesome-hermes-agent 和 awesome-infosec。
第三方报道: Starlog 技术分析 和 “Violin: Supervised Agentic Penetration Testing Profile for Hermes Agent”。
如需独立评估,请使用 评审工具包,其中 汇集了基准测试路径、已知限制、评审背景,以及与自主渗透测试智能体设计的事实性对比。
| 受保护的目标执行 | 在目标命令启动前,会执行范围、阶段、PTT、技能、假设、历史记录和同步检查。 |
| 持久化交战状态 | PTT 任务、假设、命令历史、检查点、证据和报告在上下文压缩后依然保留。 |
| 有证据支撑的发现 | 类型化提交将每个已验证的发现与经过身份验证的执行回执绑定。 |
| 按路由选择的方法论 | 渗透测试编排器会选择针对性的 Web、身份、API、业务逻辑、LLM 安全和错误配置操作手册。 |
| 有界执行 | 单条命令、命令突发、后台进程、批量审查、心跳检查和取消操作共享同一状态模型。 |
| 可验证的发布 | 插件注册、模式、技能快照、文档契约、lint、格式化和完整测试套件均受发布门禁约束。 |
hermes profile install https://github.com/Strategic-Automation/violin
hermes -p violin plugins disable violin_guard
hermes -p violin plugins enable violin_guard --no-allow-tool-override
hermes -p violin
Guard 依赖在 plugins/violin_guard/plugin.yaml 中声明。插件名称、目录和启用配置均使用 violin_guard,因此 Hermes 无需目录变通即可解析其依赖。将依赖安装到开发用的 .venv 中并不会将其安装到 Hermes。即使配置文件已启用该插件,上述禁用/启用循环也会强制进行依赖准入。安装后验证注册情况:
hermes -p violin plugins doctor ~/.hermes/profiles/violin/plugins/violin_guard --ci
hermes -p violin tools list
Plugin Doctor 应报告 12 个工具和 5 个钩子,并且 violin_guard 应显示为已启用的工具集。安装后,在开始参与之前重启 Hermes。重新安装该配置文件以迁移较旧的 violin-guard 安装。
然后从一个已授权的目标开始,让 Violin 在任何目标交互之前收集范围:
Run an authorized penetration test against example.com.
v2026.9.24 发布提交)uvViolin 不选择模型或提供商。请在 Hermes 中配置这些内容。对于 一个能力足够的默认选项,可在本地使用 Qwen3.8 27B,或通过 托管提供商使用 DeepSeek V4 Flash。
flowchart LR
S[Scope] --> R[Recon]
R --> V[Vulnerability research]
V --> E[Exploit validation]
E --> P[Reporting]
P --> X[Retrospective]
G[Violin Guard] -. validates .-> R
G -. validates .-> V
G -. validates .-> E
scope/scope.yaml。violin_record_ptt 选择一个活跃的 PTT 任务及其路由技能。violin_exec 或 violin_exec_burst 运行目标命令。violin_review_batch 审查每个有界命令批次。完整的阶段模型为:
SCOPING → RECON → VULN_RESEARCH → EXPLOITATION
→ POST_EXPLOITATION / PRIVESC / FLAGS
→ REPORTING → RETROSPECTIVE
在新阶段开始工作,需要在该阶段下创建一个 PTT 任务。现有任务不会在阶段分区之间移动。
该插件从一个类型化注册表中注册了十二个 Hermes 工具:
| 工具 | 用途 |
|---|---|
violin_record_ptt | 创建、启动、刷新、关闭或取消 PTT 任务 |
violin_record_hypothesis | 创建或更新限定范围的假设 |
violin_submit_finding | 提交与其签名执行回执绑定的已验证发现 |
violin_exec | 执行一条受防护的命令 |
violin_exec_burst | 执行一个有边界的命令文件 |
violin_exec_status | 读取后台执行状态 |
violin_exec_cancel | 取消已跟踪的后台执行 |
violin_review_batch | 审查已完成的批次并确定状态 |
violin_rebind_pending_batch | 在确认后重新绑定待处理批次 |
violin_heartbeat_done | 清除已完成的心跳审查 |
violin_target | 解析已批准的评估目标 |
violin_status | 说明当前任务、技能和阻塞项 |
violin_exec 是通用的目标命令边界。不存在针对特定工具的执行适配器或二进制允许列表。已安装的非交互式工具只有在参与门禁通过后才能运行。
原始终端钩子是一种尽力而为的安全网,而非网络隔离。仅将 terminal 用于主机本地的准备和管理。
flowchart LR
A[Written authorization] --> B[Approved scope]
B --> C[Active phase task]
C --> D[Skill and hypothesis gates]
D --> E[Guarded execution]
E --> F[Evidence receipt]
F --> G[Batch review]
$ENG_DIR/evidence/<phase>/ 下。$ENG_DIR/state/ 中。详细策略见
skills/pentest/references/standards.md。
init-engagement 会创建规范的工作结构:
$ENG_DIR/
├── scope/
│ └── scope.yaml
├── state/
│ ├── ptt.md
│ ├── history.md
│ └── checkpoint.json
├── hypotheses.md
├── evidence/
├── reporting/
└── retrospective/
Violin 4.0 将执行器状态存储在 state/runtime.json 中,并且不会迁移
3.3 的 sync.json、counts.json 或 heartbeat.json 文件。请在新目录中
启动新的任务;将 3.3 目录保留为历史记录。
复用其目录会保留旧版状态文件,因此 Violin 4.0
将拒绝该目录。
技能按需加载。对于已路由的技能,首次调用 violin_record_ptt 可能返回
skill_prepared 而不更改 PTT。在 Hermes
交付技能内容后,重复该转换以绑定回执并应用
任务变更。violin_status 会报告确切的恢复操作。
诸如 .skill-loaded-* 之类的标记文件并不能证明技能已交付。
| 技能 | 覆盖范围 |
|---|---|
pentest | 范围、生命周期、侦察、利用、报告、收尾 |
web-app | 注入、SSRF、路径遍历、反序列化、客户端缺陷 |
identity-auth | 认证、授权、IDOR、JWT、CSRF、密码学 |
api-testing | REST、SOAP、GraphQL、WebSocket |
business-logic | 工作流、定价、优惠券、配额、推荐、竞态条件 |
llm-security | 提示注入、MCP、JSON-RPC |
misconfig | 部署、错误处理、可观测性、隐蔽性 |
编排器仅加载当前任务所需的阶段材料和专家手册。
CLI 不能替代受保护的目标执行。