Evidence locker

Every artifact sealed. Every artifact verifiable.

Auditors don't argue with hashes. The locker is an append-only, sha-256-chained store of every screenshot, request/response pair, command log, and exploit artifact the agent produced — bound to the run, the phase, and the control it satisfies, and signed the moment the engagement ends.

Structure
Append-only chain
Integrity
sha-256 per artifact
Seal
Ed25519 signature
Verification
Offline, no account
What it is

A run you can re-open, not a PDF you have to trust.

A traditional pen test deliverable is a document written after the fact. The locker is the run itself: every command the agent issued, every response it observed, every screenshot it captured, stored as discrete artifacts with their own hash, timestamp, phase, and control reference.

Nothing is edited into it later. Artifacts are appended as the agent works, each one chained to the previous, and the whole chain is signed when the engagement seals. Change one byte of one artifact and verification fails — loudly, and on the auditor's machine, not ours.

  • Tamper-evident.  Append-only sha-256 chain. Mutate one byte, the locker fails verification.
  • Control-mapped.  Each artifact carries the framework control it satisfies: PCI 11.3.1, ASVS V5, ISO A.8.8.
  • Recorded.  Every command, response, and screenshot the agent produced is captured as a signed, re-viewable trace. Nothing anecdotal.
  • Signed.  Every locker is sealed with an Ed25519 signature at seal time, so Pentr can't forge it. Bring your own HSM or KMS key on Enterprise.
Offline verification · pentr-verify runs against an exported locker — no network, no account
Locker · 3f9a1c2e
PCI DSS v4.0 SEALED
SSRF chain → IMDS v1
screenshot · 11.3.1 · phase 05
02:14:38 UTC
9c4f…2a01
✓
POST /v1/import: payload
req/resp pair · 11.3.1 · phase 04
02:14:21 UTC
e3b1…77af
✓
Command log: exploit_chain.sh
command log · 11.3.2 · phase 05
02:14:02 UTC
5d22…b8c0
✓
Scope digest: scope lists & rules
signed manifest · run block
00:00:01 UTC
a01f…0921
✓
Discovery: 142 routes enumerated
JSON manifest · 11.3.1 · phase 03
00:01:14 UTC
3b8d…11e7
✓
verify: pentr-verify pentr-locker-3f9a1c2e.zip --key acme.pem
Open locker →
How the chain works

Capture. Hash. Chain. Seal.

Four mechanics, applied to every artifact the agent produces, with no operator in the loop.

01 · Capture

The agent writes it down.

As each phase runs, the artifact is captured at the moment it exists: the raw request and response, the screenshot, the command and its output, the manifest of what was enumerated.

✓ Run + phase bound✓ UTC timestamped
02 · Hash

Each artifact gets a fingerprint.

A sha-256 digest is computed over the artifact bytes plus its metadata — run id, phase, control reference, timestamp. The digest is what the chain records; the bytes stay immutable beside it.

✓ sha-256✓ Metadata bound
03 · Chain

Every entry points back.

Each entry includes the digest of the entry before it, so the locker is append-only by construction. Removing, reordering, or rewriting an artifact breaks every link that follows it.

✓ Append-only✓ Order-proving
04 · Seal

The run is signed shut.

When the engagement ends — completed or aborted — the head of the chain is signed with an Ed25519 key. The signature covers the whole history, so no one, Pentr included, can rewrite a sealed locker.

✓ Ed25519✓ Your key on Enterprise
What lands in it

What the agent captures. One chain.

Everything the agent touches becomes an entry. Nothing is summarised away.

Screenshots

What the agent saw

Full-page and element captures at the moment of exploitation, including the rendered response of a successful chain, not a reconstruction of it.

png · phase-bound · hashed
Request / response

The exact exchange

Raw HTTP pairs — headers, body, status, timing — for every probe that produced a finding, so a reviewer can read the proof line by line.

har-style pairs · verbatim
Command logs

Every command issued

The full transcript of what the agent ran and what came back, including the exploit chain scripts, with stdout and stderr preserved.

stdout + stderr · ordered
Manifests

What was enumerated

Hosts resolved, services fingerprinted, routes discovered, admin paths flagged — the machine-readable output of each reconnaissance phase.

json · per phase
Attestations

Scope

A digest of the in- and out-of-scope lists and the rules of engagement, carried in the signed manifest. Anyone told the scope can recompute it; change the scope afterwards and it no longer matches.

signed manifest · run block
Findings

The confirmed result

Severity, CVSS, CVE where one applies, the affected target, and pointers to every artifact that proves it. The finding is a view over the evidence, never a substitute.

linked to artifacts · exportable
Verification

Your auditor checks it without us.

Verification is a local operation against an exported locker. No Pentr account, no API call, no network. If the verifier says the chain is intact, that statement doesn't depend on trusting us — it depends on the key.

  1. Export the locker from the console, or open the read-only share link you sent the auditor.
  2. Run pentr-verify pentr-locker-3f9a1c2e.zip --key acme.pem against the export.
  3. The verifier recomputes every artifact digest, walks the chain, and checks the seal signature.
  4. Any mismatch names the exact artifact that failed and the entry where the chain broke.
The verifier is open source · run it in your own CI if you'd rather not take our word for the binary
auditor@local — pentr-verify
offline
$ pentr-verify pentr-locker-3f9a1c2e.zip --key acme.pem OK 0 command_log f869ee4c0b89 - OK 1 req_resp 2482ffa1be00 - OK 2 screenshot 075f8e3f22fc screenshot.png … PASS — evidence locker verified run 3f9a1c2e-7b44-4d21-9a6e-0c5b8e2d14f7 artifacts 38 chain head af08f99ccd6a… signed by 5f79492518ca… signed at 2026-08-26T01:04:11+00:00 $
Control mapping

Labelled with the control it satisfies.

The mapping is applied when the artifact is captured, not stitched together the week before the audit.

Artifact
Type
Phase
Control
SSRF chain → IMDS v1
screenshot
05 exploitation
PCI 11.3.1
POST /v1/import: payload
req/resp pair
04 vuln analysis
ASVS V5.2.6
Command log: exploit_chain.sh
command log
05 exploitation
PCI 11.3.2
Discovery: 142 routes enumerated
json manifest
03 threat modeling
NIST ID.RA-01
Retest: SSRF remediated
req/resp pair
04 vuln analysis
SOC 2 CC7.1
Access & retention

Who can open it, and for how long.

Share links

Read-only for auditors

Send an auditor a scoped, read-only link to a single sealed locker. They browse artifacts and download the export without a Pentr account or a seat.

expiring · revocable · access-logged
Retention

Kept as long as you need

30 days on Entry, one year of signed retention on Team, and configurable retention on Enterprise — including customer-managed storage for regulated estates.

entry 30d · team 1y · enterprise custom
Export

Portable by default

Take the whole locker with you: artifacts, chain, and seal in one archive, plus findings as CSV, PDF, or SARIF for your issue tracker.

archive + csv / pdf / sarif
See a sealed locker

Evidence, signed.

Run an engagement against a scope you control and walk away with a locker your auditor can verify on their own machine.

No credit card · 7-day pilot · cancel from the console