
Profil de pentest agentique pour Hermes : 31 playbooks pour la reconnaissance autorisée, les attaques web/contrôle d'accès, la validation sûre des exploits et le reporting fondé sur les preuves avec garde-fous.
31 playbooks · 10 références · 11 modèles · garde d'exécution obligatoire · natif Hermes
Violin est un profil de pentest agentique natif Hermes pour des tests d'intrusion supervisés et autorisés — de la reconnaissance à la validation sûre d'exploits, jusqu'au reporting. Il utilise les toolsets intégrés d'Hermes, trois compétences routées et le plugin requis violin-guard à la frontière d'exécution sur cible. Le CLI autonome prend en charge les vérifications de release, les diagnostics et la récupération administrative ; les commandes cibles passent par le plugin. Violin n'ajoute aucun identifiant spécifique au profil et hérite des backends de fournisseur et d'outils déjà configurés dans 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 toolsets configurés dans config.yaml (platform_toolsets.cli) : 10 intégrés — terminal, web, browser, file, code_execution, skills, todo, clarify, delegation, vision — plus le toolset du plugin de garde violin_guard.
memory.memory_enabled: false — aucun rappel/écriture mémoire globalmemory.user_profile_enabled: false — aucun accès au profil utilisateur global$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 ou un autre outil de garde typé. violin_exec n'a pas de liste blanche de binaires, donc tout outil CLI Kali/Parrot non interactif installé peut cibler l'hôte explicitement dans le périmètre tant que le périmètre, la phase, le PTT, l'hypothèse, l'historique, les preuves, le délai d'attente et les portes de synchronisation restent actifs. Le hook de plugin pre_tool_call de Violin bloque génériquement les littéraux de cible dans les commandes terminal brutes au lieu de maintenir une liste partielle de noms d'outils. Le CLI expose la même vérification pour les diagnostics (exit 0=autorisé, 1=bloqué, 2=révision)violin_status (ou python scripts/violin_guard.py status --eng-dir "$ENG_DIR") affiche la tâche et la phase actives, les commandes en attente et leurs phases requises, les exigences de phase, l'état de la compétence, les bloqueurs et les prochaines actions exactes sans exécuter de commandePolitique de sécurité complète : skills/pentest/references/standards.md. Actions interdites : .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
Valide le manifeste du plugin et les outils enregistrés, l'import de plugin isolé de style Hermes, les références de compétences obsolètes, Ruff et la suite pytest complète.
Les compétences Hermes sont chargées à la demande et appliquées par les reçus Violin. Commencez par pentest, puis utilisez violin_record_ptt pour sélectionner la compétence requise par la route. Le premier appel prépare son contenu skill_view réel sans modifier le PTT ; répétez la même transition après que ce résultat d'outil est renvoyé au modèle pour la lier. violin_status rapporte la route, la liaison, la génération de contexte, l'action de récupération et tout marqueur hérité obsolète. L'activité cible et navigateur est bloquée uniquement dans le même appel de modèle que la livraison ou la liaison, puis s'ouvre automatiquement à la prochaine continuation de boucle d'outil.
Voir scripts/kali.sh pour l'assistant d'exécution du conteneur.
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
Voir CONTRIBUTING.md pour la configuration de développement, le processus de PR et le style de code.
Voir SECURITY.md pour signaler des vulnérabilités.
MIT — voir LICENSE.
| 🔬 31 Playbooks méthodologiques | 7 playbooks opérationnels (cinq phases d'exécution, post-exploitation optionnelle et catalogue d'outils) + 24 playbooks par classe de vulnérabilité, routés entre les compétences `pentest`, `web-attacks` et `access-control`. |
| 🛡️ Sécurité multicouche | Cadrage interactif (9 questions) → validation du périmètre → vérification de la garde → portes d'approbation — chaque commande touchant la cible est validée avant exécution. |
| 🧠 Arbre de tâches de pentest | Artefact structuré suivant chaque tâche via les marqueurs `[x]/[ ]/[~]` à travers les phases, avec historique détenu par l'exécuteur, liaison d'hypothèses et revues de lots liées à la garde. |
| 🌐 Recherche navigateur + web | Toolset navigateur pour l'énumération de sites web approuvés dans le périmètre ; la v3.0.0 conditionne le workflow d'engagement mais ne fournit pas de liste blanche navigateur au niveau réseau. Toolset web pour la recherche de CVE, la recherche d'exploits et l'OSINT. |
| 📋 Reporting piloté par les preuves | Preuves reproductibles avec captures d'écran, sorties d'outils et paires requête/réponse. Correspondances CVSS 3.1 + 4.0 et correctifs de remédiation optionnels. |
| 🔗 Natif Hermes | Hérite de votre fournisseur, modèle et backends d'outils Hermes existants. Violin n'introduit ni stockage d'identifiants ni courtier séparés. |
| Phase | Action | Porte de sécurité |
|---|
| 1. Cadrage | 9 questions via clarify | Approbation utilisateur |
| 2. Reconnaissance | OSINT passif → détection de technologies → scan actif | Garde + approbation |
| 3. Recherche de vulnérabilités | Recherche CVE, recherche d'exploits, analyse de la surface d'attaque | Vérification de la garde |
| 4. Exploitation | Validation de PoC sûr par classe de vulnérabilité | Garde + approbation utilisateur |
| 5. Reporting | Compilation des preuves, score CVSS, remédiation | — |
| 6. Rétrospective | Analyse des écarts, mise à jour de la couverture des playbooks | Obligatoire |
violin_review_batch valide le lot terminé, écrit éventuellement son constat adossé au reçu, met à jour la ligne PTT active une seule fois et libère le verrou du lot en dernier