acl-abuse
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner, ForceChangePassword, targeted…
Legacy subagent-based orchestrator. Superseded by /red-run-ctf (agent teams). Use /red-run-legacy to invoke manually. Does not auto-trigger.
$ npx -y skills add blacklanternsecurity/red-run --skill legacy --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/legacyContext preview
The summary Claude sees to decide when to auto-load this skill.
Legacy subagent-based orchestrator. Superseded by /red-run-ctf (agent teams). Use /red-run-legacy to invoke manually. Does not auto-trigger.
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, ForceChangePassword, targeted…
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 modification), Skeleton Key (LSASS…
Exploits ADCS through ACL abuse on templates/CA objects and NTLM relay to enrollment endpoints. Covers ESC4 (template ACL → modify to ESC1), ESC5 (PKI object…
Establishes persistence and exploits weak certificate mapping in AD CS. Covers ESC9 (no security extension), ESC10 (weak certificate mapping), ESC12-15…
Exploits misconfigured AD CS certificate templates to impersonate any domain user via SAN manipulation or enrollment agent abuse. Covers ESC1 (enrollee…