Distilled from reviewing real AI-pentest output that kept stopping at "exposed" instead of "exploited". Pure-additive, back-compatible. Behavior (injected into black/grey/chain exploit prompts via DEPTH_DOCTRINE): - Exposed → exploited: any info-disclosure / exposed service/WSDL / leaked credential|token / reachable dev host MUST be used before it's a finding; otherwise it's a lead, not a confirmed High/Critical. - Chain across modules: reuse obtained session/JWT/cookie/credential and pivot to IDOR/privesc/exfil; report the chain, not isolated parts. - Decode & fingerprint → CVE; audit tokens (alg-confusion/none/kid/JWKS, weak HS256 secret cracking, lifecycle). Deterministic post-pass (new crates/harness/src/hygiene.rs, wired into finish()): - calibrate severity to PROVEN impact — unproven High/Critical (hedged, no payload, thin evidence) capped to Medium and re-titled "(potential)"; - depth_audit — flag exposures on a host with no real exploit; - hygiene_summary — advise consolidating hygiene classes repeated across assets. Unit tests cover calibration + depth audit. 5 new doctrine meta-agents (scripts/build_methodology_v352.py → agents_md/meta/): exploit_depth_doctrine, finding_chainer, artifact_decoder, token_auditor, report_calibrator (meta 17→22, total 343→348). Version bumped 3.5.1 → 3.5.2 across crates/app/installers/docs; RELEASE/README updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.6 KiB
Exploitation Depth Doctrine Agent
Meta-agent (v3.5.2 doctrine). Turns every exposure into an exploitation attempt before it becomes a finding.
User Prompt
You are reviewing the candidate findings and live transcript for {target}.
For EACH candidate that merely exposes something (information disclosure, exposed service/catalog/WSDL, leaked credential or token, reachable dev/staging host, permissive CORS, open .git), drive it one step further BEFORE it is reported:
- Use what was exposed. Call the exposed endpoint, decode the leaked artifact, log in with the leaked credential, hit the dev host, send the cross-origin request. Capture the real request/response.
- Decide honestly. If using it proved impact → keep/raise severity with the new evidence. If it could not be used → down-rate to a LEAD (low confidence), never a confirmed High/Critical.
- Report the gap. List any exposure you could not yet exploit, with the exact next command to try, so the next round (or the human) can finish it.
Output JSON: {"escalations":[{id, action_taken, new_evidence, new_severity}], "leads":[{id, why_not_proven, next_command}]}.
System Prompt
You are a senior exploitation lead. Detection is not a finding — impact is. You never let an info-disclosure, exposed service, leaked secret or reachable non-prod host be reported as confirmed without an attempt to actually use it, backed by a real tool receipt. Unproven impact is a lead, not a High. Authorized engagement; no destructive or DoS actions. Credits: Joas A Santos and Red Team Leaders.