
Агентный пентест-профиль для Hermes: 31 плейбук для авторизованной разведки, веб-атак и атак на контроль доступа, безопасной валидации эксплойтов и отчётности на основе доказательств с защитными шлюзами.
31 плейбук · 10 справочников · 11 шаблонов · обязательный guard выполнения · нативный для Hermes
Violin — это нативный для Hermes агентный профиль пентеста для супервизируемых авторизованных тестов на проникновение — от разведки через безопасную валидацию эксплойтов до отчётности. Он использует встроенные наборы инструментов Hermes, три маршрутизируемых навыка и обязательный плагин violin-guard на границе выполнения целевых команд. Автономный CLI поддерживает проверки релизов, диагностику и административное восстановление; целевые команды выполняются через плагин. Violin не добавляет учётных данных, специфичных для профиля, и наследует провайдера и инструментальные бэкенды, уже настроенные в Hermes.
hermes profile install https://github.com/Strategic-Automation/violin
hermes -p violin
# 1. Install the profile
hermes profile install https://github.com/Strategic-Automation/violin
# 2. Start a session
hermes -p violin
# 3. Let Violin ask scoping questions, then run your test
> Run a pentest against example.com
hermes profile use violin
flowchart LR
A["1. Scoping"] --> B["2. Recon"]
B --> C["3. Vuln Research"]
C --> D["4. Exploitation"]
D --> E["5. Reporting"]
E --> F["6. Retrospective"]
A -.->|"clarify"| G("Approval Gate")
B -.->|"guard check"| G
C -.->|"guard check"| G
D -.->|"clarify + guard"| G
style A fill:#1a1a2e,stroke:#e94560,stroke-width:2px
style B fill:#16213e,stroke:#0f3460,stroke-width:2px
style C fill:#1a1a2e,stroke:#e94560,stroke-width:2px
style D fill:#16213e,stroke:#0f3460,stroke-width:2px
style E fill:#1a1a2e,stroke:#e94560,stroke-width:2px
style F fill:#16213e,stroke:#0f3460,stroke-width:2px
style G fill:#2d2d2d,stroke:#ffd700,stroke-width:2px
graph TB
subgraph "Your Machine"
HE["Hermes Agent"]
VI["Violin Profile"]
GUARD["violin_guard execution + evidence"]
end
subgraph "Violin Skills"
SK["pentest orchestrator"]
WEB["web-attacks skill"]
AC["access-control skill"]
PB["31 Playbooks"]
REF["10 References"]
TEMP["11 Templates"]
end
subgraph "Configured Toolsets"
T["terminal"]
W["web"]
B["browser"]
F["file"]
CE["code_execution"]
S["skills"]
CL["clarify"]
D["delegation"]
V["vision"]
TD["todo"]
VG["violin_guard"]
end
LLM["Your LLM Provider"]
HE -->|"hermes -p violin"| VI
VI -->|"loads"| SK
VI -->|"requires"| GUARD
SK -->|"routes to"| WEB & AC & PB
WEB --> PB
AC --> PB
SK --> REF & TEMP
HE -->|"calls"| T & W & B & F & CE & S & CL & D & V & TD & VG
HE -->|"inherits"| LLM
style HE fill:#2d2d2d,stroke:#ffd700,stroke-width:2px
style VI fill:#1a1a2e,stroke:#e94560,stroke-width:2px
style GUARD fill:#16213e,stroke:#0f3460,stroke-width:2px
11 наборов инструментов, настроенных в config.yaml (platform_toolsets.cli): 10 встроенных — terminal, web, browser, file, code_execution, skills, todo, clarify, delegation, vision — плюс набор инструментов guard-плагина violin_guard.
memory.memory_enabled: false — нет глобального чтения/записи памятиmemory.user_profile_enabled: false — нет глобального доступа к профилю пользователя$ENG_DIR/state/flowchart LR
subgraph "Layer 1"
A["9 Scoping Questions"]
B["Written Authorisation"]
end
subgraph "Layer 2"
C["violin_guard.py validate-scope"]
end
subgraph "Layer 3"
D["violin_guard.py check-command"]
end
subgraph "Layer 4"
E["clarify approval gate"]
end
subgraph "Layer 5"
F["Standards & Blocked Actions"]
end
A --> B --> C --> D --> E --> F
violin_exec или другой типизированный guard-инструмент. У violin_exec нет бинарного allowlist, поэтому любой установленный неинтерактивный CLI-инструмент Kali/Parrot может нацеливаться на явно указанный хост в пределах scope, пока действуют те же ограничители: scope, фаза, PTT, гипотеза, история, доказательства, таймаут и синхронизация. Хук плагина pre_tool_call в Violin универсально блокирует целевые литералы в сырых командах terminal вместо поддержания неполного списка имён инструментов. CLI предоставляет ту же проверку для диагностики (код выхода 0=разрешено, 1=заблокировано, 2=на ревью)violin_status (или python scripts/violin_guard.py status --eng-dir "$ENG_DIR") показывает активную задачу и фазу, ожидающие команды и требуемые для них фазы, требования фаз, состояние навыков, блокировки и точные следующие действия без выполнения командПолная политика безопасности: skills/pentest/references/standards.md. Запрещённые действия: .hermes.md §Forbidden Behaviour.
violin/
├── .hermes.md # Project-level agent context
├── SOUL.md # Agent identity — senior pentester persona
├── config.yaml # Profile config (toolsets, safety, memory)
├── distribution.yaml # Hermes distribution manifest
├── plugins/violin_guard/ # Required Hermes guard plugin and execution boundary
│ ├── bash_ast.py # bashlex AST command tokenization and parsing
│ ├── terminal_policy.py # AST-based best-effort blocks for target-touching raw terminal calls
│ ├── targets.py # Scope enforcement using netaddr and yarl URL parsing
│ ├── schemas.py # Pydantic v2 tool schemas and validation
│ └── code_execution_audit.py # Engagement audit contract for execute_code
├── scripts/ # CLI and release smoke helpers
│ ├── violin_guard.py # Diagnostic/admin CLI over the plugin modules
│ ├── smoke-test.sh # Linux/macOS release smoke
│ ├── smoke-test.ps1 # Windows supplemental smoke
│ └── kali.sh # Docker Kali helper
└── skills/
├── pentest/ # Engagement orchestrator (23 playbooks, 10 refs, 11 templates)
│ ├── SKILL.md
│ ├── playbooks/ # 7 operational + 16 vulnerability-class playbooks
│ ├── references/ # 10 reference files
│ └── templates/ # 11 templates (reports, evidence, methodology, contracts)
├── web-attacks/ # Routed skill — 5 injection/web playbooks (SQLi, XSS, SSRF, cmdi, traversal)
└── access-control/ # Routed skill — 3 auth/authorisation playbooks (auth-bypass, IDOR, JWT)
python scripts/violin_guard.py check-release
Проверяет манифест плагина и зарегистрированные инструменты, изолированный импорт плагина в стиле Hermes, устаревшие ссылки на навыки, Ruff и полный набор pytest.
Навыки Hermes загружаются по требованию и контролируются квитанциями Violin. Начните с pentest, затем используйте violin_record_ptt, чтобы выбрать навык, требуемый маршрутом. Первый вызов подготавливает реальное содержимое skill_view без изменения PTT; повторите тот же переход после того, как результат этого инструмента вернётся в модель, чтобы закрепить его. violin_status сообщает маршрут, привязку, генерацию контекста, действие по восстановлению и любые устаревшие legacy-маркеры. Активность по целям и браузеру блокируется только в том же вызове модели, что и доставка или привязка, а затем автоматически открывается при следующем продолжении цикла инструментов.
См. scripts/kali.sh — вспомогательный скрипт для выполнения команд в контейнере.
docker pull kalilinux/kali-rolling
docker create -it --name kali-pentest \
-v /path/to/violin/engagements:/engagements \
kalilinux/kali-rolling bash
docker start kali-pentest
docker exec kali-pentest apt update
docker exec kali-pentest apt install -y kali-linux-headless
См. CONTRIBUTING.md: настройка окружения для разработки, процесс PR и стиль кода.
См. SECURITY.md: порядок сообщения об уязвимостях.
MIT — см. LICENSE.
| 🔬 31 методологический плейбук | 7 операционных плейбуков (пять фаз выполнения, опциональная постэксплуатация и каталог инструментов) + 24 плейбука по классам уязвимостей, маршрутизируемые через навыки `pentest`, `web-attacks` и `access-control`. |
| 🛡️ Многоуровневая безопасность | Интерактивное определение границ (9 вопросов) → валидация scope → guard-проверка → шлюзы одобрения — каждая команда, затрагивающая цель, проверяется перед выполнением. |
| 🧠 Дерево задач пентеста | Структурированный артефакт, отслеживающий каждую задачу через маркеры `[x]/[ ]/[~]` на всех фазах, с историей, закреплённой за исполнителем, привязкой гипотез и пакетными ревью, привязанными к guard. |
| 🌐 Браузер и веб-исследования | Набор браузерных инструментов для одобренного перечисления сайтов в пределах scope; v3.0.0 выступает шлюзом для рабочего процесса вовлечения, но не предоставляет сетевой allowlist для браузера. Веб-набор инструментов — для поиска CVE, поиска эксплойтов и OSINT. |
| 📋 Отчётность на основе доказательств | Воспроизводимые доказательства со скриншотами, выводом инструментов и парами запрос/ответ. Таблицы соответствия CVSS 3.1 + 4.0 и опциональные патчи для устранения уязвимостей. |
| 🔗 Нативный для Hermes | Наследует ваш существующий провайдер, модель и инструментальные бэкенды Hermes. Violin не вводит отдельное хранилище учётных данных или брокер. |
| Фаза | Действие | Шлюз безопасности |
|---|
| 1. Определение границ | 9 вопросов через clarify | Одобрение пользователя |
| 2. Разведка | Пассивный OSINT → определение технологий → активное сканирование | Guard + одобрение |
| 3. Исследование уязвимостей | Поиск CVE, поиск эксплойтов, анализ поверхности атаки | Guard-проверка |
| 4. Эксплуатация | Безопасная валидация PoC по каждому классу уязвимостей | Guard + одобрение пользователя |
| 5. Отчётность | Сбор доказательств, оценка по CVSS, устранение уязвимостей | — |
| 6. Ретроспектива | Анализ пробелов, обновление покрытия плейбуков | Обязательно |
violin_review_batch проверяет завершённый пакет, опционально записывает находку, подтверждённую квитанцией, один раз обновляет активную строку PTT и в последнюю очередь снимает блокировку пакета