Skip to content
Security
Command

/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, the orchestrator will respect the selection. If run standalone, does not launch a pentest.

From plugin
claude-pentest
875 skills15 agents5 commands
Install
$ npx -y skills add Stickman230/claude-pentest --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/pentest-attacks

Context preview

What this command does when you run it.

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, the orchestrator will respect the selection. If run standalone, does not launch a pentest.

Command definition

pentest-attacks.md
name: pentest-attacks
description: 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, the orchestrator will respect the selection. If run standalone, does not launch a pentest.
disable-model-invocation: true
allowed-tools:
  - AskUserQuestion
  - Read
  - Write

Output the following banner verbatim:

============================================================
[ATTACK PROFILE DEFINITION]
============================================================

Step 1 — Check for Existing Attack Profile

Try to Read `.pentest-attacks.json`.

If the file exists and is valid JSON, extract and store `mode` and `selected_categories`, then output:

============================================================
EXISTING ATTACK PROFILE FOUND
============================================================
Mode: {mode}
Categories: {comma-separated list of selected_categories[*].label}
============================================================

Then use AskUserQuestion to ask:

"An attack profile already exists. What would you like to do?"

Present exactly these options:

  • "Update profile — define a new attack selection (replaces existing)"
  • "Keep existing profile — no changes"

If "Keep existing profile", output:

Attack profile unchanged.

Then stop.

If "Update profile", continue to Step 2.

If the file does not exist, continue directly to Step 2.

Step 2 — Mode Selection

Use AskUserQuestion to ask:

"How do you want to configure the attack profile for this engagement?"

Present exactly these options:

  • "Full suite — test all attack categories (default, recommended for thorough engagements)"
  • "Web application profile — injection, client-side, server-side, authentication, API, business logic"
  • "API & cloud profile — API security, cloud & containers, infrastructure, CVE testing, domain recon"
  • "Custom — I will select specific categories"

Store the answer as `selected_mode`.

If "Full suite", set `attack_mode = "full"` and skip to Step 4. If "Web application profile", set `attack_mode = "web-app"` and skip to Step 4. If "API & cloud profile", set `attack_mode = "api-cloud"` and skip to Step 4. If "Custom", set `attack_mode = "custom"` and continue to Step 3.

Step 3 — Custom Category Selection (only if attack_mode = "custom")

Make a single AskUserQuestion call with three questions, all with multiSelect: true.

Q1 — "Select web attack categories to include:" (multiSelect: true)

  • "Injection — SQLi, NoSQLi, CMDi, SSTI, XXE, LDAP"
  • "Client-Side — XSS, CSRF, CORS, Clickjacking, Prototype Pollution, DOM"
  • "Server-Side — SSRF, Path Traversal, File Upload, HTTP Smuggling, Deserialization"
  • "Authentication — Auth Bypass, JWT, OAuth, Password Attacks"

Q2 — "Select application & cloud categories to include:" (multiSelect: true)

  • "API Security — REST, GraphQL, WebSockets, Web LLM"
  • "Web Application Logic — Business Logic, Race Conditions, Access Control, Cache Attacks, Info Disclosure"
  • "Cloud & Containers — AWS, Azure, GCP, Docker, Kubernetes"
  • "System / Post-Exploitation — Active Directory, PrivEsc, Persistence, Pivoting, Evasion"

Q3 — "Select infrastructure & recon categories to include:" (multiSelect: true)

  • "IP Infrastructure — Port Scanning, DNS, SMB/NetBIOS, MITM, Sniffing, DoS, IPv6"
  • "Domain Reconnaissance — Subdomain enum, cert transparency, service fingerprinting"
  • "CVE Testing — Tech stack fingerprinting, known CVE research and PoC validation"
  • "Social Engineering — Phishing, vishing, credential harvesting (requires written authorization)"

Store all selected options across Q1, Q2, Q3 as `custom_selections`.

Step 4 — Build Attack Profile JSON

Based on `attack_mode` and `custom_selections`, construct the attack profile.

Skill and executor reference table

Use this table to assign the correct `skill` and `executors` values for each selected category:

| Category name | Label | Attacks (sub-types) | Skill | Executors | |---|---|---|---|---| | injection | Injection | sql-injection, nosql-injection, command-injection, ssti, xxe, ldap-injection | pentest | pentester-executor | | client-side | Client-Side Attacks | xss, csrf, cors, clickjacking, prototype-pollution, dom-based | common-appsec-patterns | xss-tester, csrf-tester, csp-bypass-tester, prototype-pollution-tester, pentester-executor | | server-side | Server-Side Attacks | ssrf, path-traversal, file-upload, http-smuggling, deserialization, host-header | pentest | pentester-executor | | authentication | Authentication | auth-bypass, jwt, oauth, password-attacks | pentest, authenticating | pentester-executor | | api-security | API Security | rest-api, graphql, websockets, web-llm | pentest | pentester-executor | | web-applications | Web Application Logic | business-logic, race-conditions, access-control, cache-poisoning, cache-deception, info-disclosure | pentest | pentester-executor | | cloud-containers | Cloud & Containers | aws, azure, gcp, docker, kubernetes | pentest | pentester-executor | | system | System / Post-Exploitation | active-directory, privilege-escalation, persistence, pivoting, evasion, exploit-development | pentest | pentester-executor | | ip-infrastructure | IP Infrastructure | port-scanning, dns, smb-netbios, mitm, sniffing, dos, ipv6, vlan-hopping | pentest, domain-assessment | pentester-executor, domain-assessment | | domain-recon | Domain Reconnaissance | subdomain-enum, dns-brute-force, cert-transparency, service-fingerprinting | domain-assessment | domain-assessment | | cve-testing | CVE Testing | cve-research, stack-fingerprinting, poc-validation | cve-testing | cve-tester | | social-engineering | Social Engineering | phishing, vishing, credential-harvesting, usb-baiting | pentest | pentester-executor |

Preset category lists

**web-app preset** — include: injection, client-side, server-side, authentication, api-security, web-applications

**api-cloud preset

Read more
Ships withclaude-pentest

An open source plugin for enabeling claude to gain offensive pentesting capabilities

Get the whole plugin, auto-invoked
Stats
87
Stars
0
Views
4
Forks
Maintained
Maintenance
Python
Language
MIT
License
2mo ago
Last commit
4mo ago
Created

Repo: Stickman230/claude-pentest