pentest-attacks
Define the attack profile for an engagement — select which attack categories and skills to use. Saves to .pentest-attacks.json. If run before /pentest:pentest,…
Close pentest session — summarizes findings, ensures outputs are saved, lifts isolation, and prompts for /clear
> /plugin marketplace add Stickman230/claude-pentest > /plugin install pentest@claude-pentest
How it fires
How this command gets triggered: by you, by Claude, or both.
/pentest-exitContext preview
What this command does when you run it.
Close pentest session — summarizes findings, ensures outputs are saved, lifts isolation, and prompts for /clear
name: pentest-exit description: Close pentest session — summarizes findings, ensures outputs are saved, lifts isolation, and prompts for /clear disable-model-invocation: true allowed-tools: - AskUserQuestion - Read - Write
Output the following closing banner verbatim:
============================================================ [PENTEST SESSION CLOSING] ============================================================
Use AskUserQuestion to ask:
"What is the engagement name for this session? (the name used in outputs/{name}/ — check your engagement summary or activity logs)"
Store the answer as {engagement_name}.
You MUST complete this step before outputting the session summary. Do not skip it even if the engagement folder appears empty.
First, try Schema A paths: Read all files matching: `outputs/{engagement_name}/findings/finding-*/description.md` Also read `outputs/{engagement_name}/pentest-report.json` if it exists.
If `outputs/{engagement_name}/findings/` is empty or does not exist, try Schema B paths: Read all files matching: `outputs/{engagement_name}/processed/findings/finding-*/description.md` Also read `outputs/{engagement_name}/report/pentest-report.json` if it exists.
Use the schema that produced findings. If both are empty, record: "No findings documented in outputs/{engagement_name}/"
From the files found:
You MUST complete this step before outputting the session summary. Do not skip it.
Check whether any findings or notes are held in the current conversation context but NOT yet written to disk. This includes:
If any such in-progress work exists, write it to disk now:
If nothing is pending, continue to the next step.
After completing the findings review and notes flush, output the following block with real values substituted in:
============================================================
SESSION SUMMARY — {engagement_name}
============================================================
Target tested: {target_from_report_or_logs}
Findings: Critical: N | High: N | Medium: N | Low: N | Info: N
Top findings: [list up to 3 highest-severity findings with one-line description each]
Outputs saved: outputs/{engagement_name}/
============================================================If `pentest-report.json` was found, use its data for the target and finding counts. If not, use whatever was found in the findings/ files. If nothing was found, set all counts to 0, set target to "unknown", and note "No findings documented."
Output the following instruction block verbatim:
============================================================ [PENTEST MODE — ISOLATION LIFTED] The pentest session isolation constraint is now removed. You may use agents and skills from all plugins again. Normal operating mode restored. ============================================================
Try to Read `.pentest-scope.json`. If the file exists, write it back with the `"status"` field set to `"pending"` and all other fields unchanged. This marks the scope as no longer active so a future `/pentest:pentest` will ask whether to reuse it rather than assuming it is live.
Try to Read `.pentest-attacks.json`. If the file exists, write it back with the `"status"` field set to `"pending"` and all other fields unchanged. This marks the attack profile as no longer active so a future `/pentest:pentest` will ask whether to reuse it rather than assuming it is still valid.
Output the following:
Pentest session closed. Engagement outputs remain in outputs/{engagement_name}/.
Run /clear to fully reset the context window and remove all session context (recommended before starting a new engagement or switching tasks).An open source plugin for enabeling claude to gain offensive pentesting capabilities
Repo: Stickman230/claude-pentest
Define the attack profile for an engagement — select which attack categories and skills to use. Saves to .pentest-attacks.json. If run before /pentest:pentest,…
Connect to a Metasploit-Kali Server (MKS) REST API — verifies connectivity, discovers available Kali tools, and configures agents to prefer MKS endpoints over…
Define or update engagement scope — saves scope to disk without launching a pentest. Can be run before or during an engagement. If a pentest is active and the…
Activate pentest mode — displays ASCII art, configures session isolation, collects engagement scope, then OWNS the engagement: pre-flight, recon, planning (via…