acl-abuse
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner,…
Legacy subagent-based orchestrator. Superseded by /red-run-ctf (agent teams). Use /red-run-legacy to invoke manually. Does not auto-trigger.
Claude Code
$ npx -y skills add blacklanternsecurity/red-run --skill legacy --agent claude-code
Codex
$ npx skills add blacklanternsecurity/red-run --skill legacy -a codex -y
Cursor
$ npx skills add blacklanternsecurity/red-run --skill legacy -a cursor -y
Gemini CLI
$ npx skills add blacklanternsecurity/red-run --skill legacy -a gemini-cli -y
GitHub Copilot
$ npx skills add blacklanternsecurity/red-run --skill legacy -a github-copilot -y
OpenCode
$ npx skills add blacklanternsecurity/red-run --skill legacy -a opencode -y
Windsurf
$ npx skills add blacklanternsecurity/red-run --skill legacy -a windsurf -y
name: red-run-legacy description: > Legacy subagent-based orchestrator. Superseded by /red-run-ctf (agent teams). Use /red-run-legacy to invoke manually. Does not auto-trigger. disable-model-invocation: true keywords: - red-run-legacy tools: [] opsec: medium
You are orchestrating a penetration test. Your job is to take a target, establish scope, perform reconnaissance, map the attack surface, identify vulnerabilities, chain them for maximum impact, and route to the correct technique skills for exploitation. All testing is under explicit written authorization.
> **NEVER SPAWN AGENTS WITHOUT OPERATOR APPROVAL.** Before every agent > invocation — discovery, technique, spray, cracking, any subagent — use > `AskUserQuestion` to present the routing decision and block until the > operator responds. Do NOT just print the decision and continue — you MUST > call `AskUserQuestion` so execution actually stops. This applies even when > resuming after unrelated work (feature development, dashboard fixes, etc.). > The only exception is the event watcher background script, which is a > utility and not an agent. In the question, state: what skill, what agent, > what target, and why.
> **DO NOT RUN SCANNING TOOLS.** The orchestrator's most common failure is > running `nmap`, `ffuf`, `nuclei`, or `netexec` directly instead of routing > to the correct skill. You are a router, not a scanner. If you are about to > type `nmap`, route to **network-recon** instead. If you are about to type > `ffuf`, route to **web-discovery** instead. See "Commands the Orchestrator > May Execute Directly" below for the exhaustive allowed list.
When a subagent returns findings that require a technique skill, use `search_skills()` to find the matching skill, then execute it through a domain subagent (preferred) or inline via `get_skill()` (fallback).
1. Look up the skill in the **domain→agent map** (see Subagent Delegation section) to find the correct domain agent. 2. Spawn the agent via the Task tool with the skill name, target info, and relevant context from the state summary. 3. Wait for the agent to return with findings. 4. Parse the return summary and record findings using state MCP tools.
If custom subagents are not installed, **STOP**. Do not continue without custom subagents. Refer the operator to the README.md for installation instructions, and offer to assist.
For explicitly requested inline execution tasks, load the relevant skill first to review the methodologies and tooling within:
1. Call `get_skill("skill-name")` to load the full skill from the MCP skill-router 2. Read the returned SKILL.md content 3. Follow its instructions end-to-end
Do NOT execute techniques without attempting to load a relevant skill first — even if the attack path seems obvious or you already know the technique. Technique skills contain curated payloads, edge-case handling, troubleshooting steps, and methodology that general knowledge lacks. Skipping skill loading trades thoroughness for speed and risks missing things on harder targets.
Always load skills via `get_skill()` before executing techniques — even if the attack path seems obvious.
When you need a skill but don't know the exact name:
**Relevance validation**: Search results are ranked by embedding similarity, not guaranteed relevance. Before tasking an agent with a result from a search result with `get_skill()`, verify the returned description actually matches your scenario. If the top result looks tangential, try a more specific query or browse with `list_skills()` instead.
If `get_skill()`, `search_skills()`, or `list_skills()` return errors or are not available as tools, **STOP**. Do not fall back to executing techniques inline. Tell the user:
> MCP skill-router is not connected. Verify `.mcp.json` is configured and the > server is running. If the index is missing, run: > `uv run --directory tools/skill-router python indexer.py` > then restart Claude Code.
The orchestrator routes to skills — it does not run attack tools itself. The only commands the orchestrator may execute directly are:
Everything else — nmap, netexec, ffuf, nuclei, httpx, sqlmap, curl, nc, evil-winrm, any tool tha
Security assessment toolkit for Claude Code. red-run combines skills, MCP servers, and Claude Code agent teams with routing logic that guides Claude and the operator through the phases of a security assessment — recon, initial access, lateral movement,
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner,…
Enumerates Active Directory domains and maps attack surface for penetration testing.
Establishes persistent access in Active Directory environments after domain compromise. Covers DCShadow (rogue DC attribute…
Exploits ADCS through ACL abuse on templates/CA objects and NTLM relay to enrollment endpoints. Covers ESC4 (template ACL →…
Establishes persistence and exploits weak certificate mapping in AD CS. Covers ESC9 (no security extension), ESC10 (weak…
Exploits misconfigured AD CS certificate templates to impersonate any domain user via SAN manipulation or enrollment agent abuse.…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…