hermes-pentest-lab · production reference · full inventory

The complete build — every subagent, service, and control.

The detailed companion to the system overview. Native Kali host; Docker only for lab targets and Neo4j. Seven subagents feed a SQLite v4 findings store, an independent verification pass assigns verdicts, and the report builder emits verdict-gated PDF/DOCX/MD — all inside a scope-enforced, LUKS-encrypted zone.

host Kali (native) orchestrator Hermes subagents 7 docker profiles lab · sandbox · neo4j findings.db SQLite v4 report Jinja2 → WeasyPrint

Host OS reflects the repo README (Kali required — tools run natively for raw sockets / SMB / capture). Docker profiles reflect the actual compose (lab, sandbox, neo4j). If your build differs, these two labels are the ones to adjust.

01

Orchestration

The operator drives Hermes through skills; Hermes delegates to subagents and sees only structured JSON summaries — never raw tool output.

Operator
  • defines & signs rules of engagement
  • scope.json · exclusions · sign-off
Hermes agent — orchestrator
  • supervises · delegates · interprets
  • context-isolated dispatch; JSON summaries only
  • skills: pentest-engage · pentest-context · pentest-verify
02

Subagent pool — 7 agents

Each runs in isolated context and returns structured output. Tiers gate what may touch the target.

Scopeguard · first
  • validate every target vs scope.json
  • write audit trail
→ {allowed, reason}
OSINTpassive
  • theHarvester · holehe · sherlock
  • crt.sh · shodan
→ {subdomains, emails, tech}
Reconactive
  • nmap · masscan · amass
  • T3 · max 500 pps
→ {hosts, ports, services}
Webactive
  • ffuf · nuclei · sqlmap
  • gobuster · wpscan
→ {vulns, endpoints}
Network / ADactive · approval
  • nxc · bloodhound · certipy
  • impacket · kerbrute · responder
→ {shares, users, paths}
Verifyquality · phase 5.5
  • verify-findings.py · benign
  • independent reproduction → verdict
→ {verdict, observable}
Reportoutput · read-only
  • CVSS 3.1 · finding docs
  • Jinja2 → WeasyPrint
→ report.pdf / .docx / .md
03

Verification method registry

How the Verify agent reproduces each finding class — always with a method independent of the discovery tool, always benign. Destructive classes abstain; a probe error is never a verdict.

Missing header · CORS · cookie flagsCSP · HSTS · X-Frame · ACAO
http-header re-fetch
→ CORROBORATED / REFUTED
TLS / certificate / ciphernegotiated protocol, cert dates
tls-observe
→ CORROBORATED
Open port / service / bannerindependent socket, not nmap
socket-probe
→ CORROBORATED
Reflected XSSheadless DOM — does it execute?
dom-render
→ CORROBORATED / REFUTED
SQLi · RCE · SSRF · auth-bypass · LFI/RFI · XXE · deserialization · Kerberoast · DoSproof needs a destructive action
abstain
→ GATED (reason recorded)
Unmapped class · or independence not possibleno false claim made
→ UNVERIFIED
Any probe errortimeout · DNS · reset — never a verdict
error recorded
→ UNVERIFIED (not REFUTED)
04

Runtime & targets

Tools run natively on the Kali host. Docker is used only for practice targets and the graph database; the old per-tool Kali images are deprecated in favour of native execution.

profile: lab
  • OWASP Juice Shop :3000
  • DVWA :8080
profile: neo4j
  • Neo4j 5 CE :7474 :7687
  • BloodHound database
profile: sandbox
  • sandbox-linux
  • isolated · no internet
deprecated
  • kali-web · kali-net · osint-tools
  • replaced by native host tools
05

Findings DB — SQLite v4

Per-engagement store. The v4 migration added the verification columns to findings; everything else is unchanged and additive.

hostshost · ip · source · discovered_by · first_seen
serviceshost_id · port · service · version · banner
findingsvuln_type · cvss · cvss_vector · cwe · confidence · endpoint · poc · impact · remediation · status · review_status · tool_used · verdict · verify_method · observable · verified_at
scopetarget · target_type · authorized · notes
audit_logaction · target · tool · command · scope_validated · timestamp
engagement_metakey · value — db_version = 4
06

Shared services & data

Engagement git repo
  • scope.json · audit.jsonl
  • findings.db · evidence/
Report templates ×5
  • exec-summary · findings
  • methodology · roadmap · appendix
Wordlists
  • SecLists (~2.5 GB)
  • rockyou · kerberoast
07

Native host tools

Burp Suite CE
653 MB .jar · proxy
Wireshark 4.6
packet capture
hashcat 7.1
GPU · CUDA
nuclei
6,683 templates
metasploit 6.4
gated
Firefox + FoxyProxy
manual web testing
Report Builder
Jinja2 → WeasyPrint → PDF · Pandoc → DOCX
verify-findings.py
host-native · benign re-observation
08

OPSEC & encryption stack

WireGuard wg0opsec
  • commercial VPN provider
  • kill switch — iptables DROP
  • DNS-leak guard
Encryptionat rest
  • LUKS dm-crypt · 10 GB
  • pass — GPG git-backed
  • age — archive sealing
Teardown & DR
  • session canary pre-flight
  • wipe + destruction cert
  • USB backup — keys.tar.gz.age
09

Scripts & skills

Engagement scripts
init-engagement-db · build-report · audit-log · preflight · pentest-canary · wipe
Verification scripts +
verify-findings · migrate-add-verification · report_verification
Subagent .md ×7
scope · osint · recon · web · net · verify · report
Hermes skills
pentest-engage · pentest-context · pentest-verify
Report templates ×5
exec → findings → PDF
Contract template
RoE + service agreement
Guard / OPSEC Passive Active / abstain Verification Corroborated Output / storage