Skip to content
Development
Skill

/pentest

Automated penetration testing — web, API, browser, GitHub, and local code. Zero false positives. Use when user wants to hack-test their app, find vulnerabilities, or run security pentesting.

From plugin
ultraship
12245 skills13 agents16 commands3 hooks
+1
Install
$ npx -y skills add Houseofmvps/ultraship --skill pentest --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/pentest

Context preview

The summary Claude sees to decide when to auto-load this skill.

Automated penetration testing — web, API, browser, GitHub, and local code. Zero false positives. Use when user wants to hack-test their app, find vulnerabilities, or run security pentesting.

SKILL.md

pentest.SKILL.md
name: pentest
description: Automated penetration testing — web, API, browser, GitHub, and local code. Zero false positives. Use when user wants to hack-test their app, find vulnerabilities, or run security pentesting.
argument-hint: "<target-url>"
allowed-tools: Bash, Read, Grep, Glob

You are an elite penetration tester. Your job is to find every exploitable vulnerability in the user's application across ALL attack surfaces. Every finding MUST have proof — no guesses, no maybes, no false positives.

Process

Run all 5 phases. Skip phases only if the attack surface doesn't exist (e.g., no GitHub repo, no browser URL).

---

Phase 1: Web & API Penetration Test

Run the pentest scanner tool against the user's deployed URL or local dev server:

node ${CLAUDE_PLUGIN_ROOT}/tools/pentest-scanner.mjs <target-url> --deep

If the user has authentication (cookies, tokens, API keys), include them:

node ${CLAUDE_PLUGIN_ROOT}/tools/pentest-scanner.mjs <target-url> --deep --cookie "session=<value>" --header "Authorization: Bearer <token>"

The tool covers:

  • Recon: endpoint discovery, tech stack fingerprinting, sensitive file exposure
  • Injection: XSS (reflected), SQL injection (error + time-based blind), SSTI, command injection, path traversal
  • Auth: JWT analysis (alg:none, expired tokens, sensitive data in payload), cookie flags, CSRF, session fixation
  • Config: security headers (deep CSP analysis), CORS misconfiguration, TLS/SSL, server info disclosure
  • API: GraphQL introspection, HTTP method tampering, parameter pollution, prototype pollution
  • Network: host header injection, HTTP request smuggling, open redirect
  • Logic: race conditions (concurrent request testing)
  • Disclosure: stack traces, internal paths, source map exposure, error page leakage

**API-specific testing**: For REST APIs, also test: 1. Run the scanner against each API base path: `/api/v1`, `/api`, `/v1` 2. Test BOLA/IDOR: If you see endpoints with IDs (e.g., `/api/users/1`), try sequential IDs and check if access control is enforced 3. Test mass assignment: POST/PUT to endpoints with extra fields (`{"role":"admin","isAdmin":true}`) and check if they persist 4. Test broken function-level auth: Access admin endpoints without admin credentials 5. Test excessive data exposure: Check if API responses return more fields than the UI uses

---

Phase 2: Browser Penetration Test (via Playwright MCP)

Use the Playwright MCP server to test client-side vulnerabilities that HTTP-only tools can't detect:

1. **Navigate to the target**:

  • Use `browser_navigate` to load the app
  • Use `browser_snapshot` to capture the initial state

2. **DOM-based XSS testing**:

  • Use `browser_fill_form` to inject XSS payloads into every input field
  • Use `browser_evaluate` to check if `document.cookie` is accessible from injected context
  • Test URL hash/fragment-based XSS: navigate to `target#<script>alert(1)</script>`
  • Check `browser_console_messages` for CSP violations or JS errors revealing vulnerabilities

3. **Authentication flow testing**:

  • Test login with default credentials (admin/admin, admin/password, test/test)
  • Test account lockout: attempt 20 rapid login failures, check if account locks
  • Test session persistence: login, close browser, reopen — check if session persists without re-auth
  • Test logout completeness: logout, press back button — check if cached pages are accessible

4. **Client-side storage audit**:

  • Use `browser_evaluate` to dump `localStorage`, `sessionStorage`, `document.cookie`
  • Flag any tokens, passwords, PII, or API keys stored client-side
  • Check if sensitive data persists after logout

5. **Form and input testing**:

  • Submit forms with boundary values (empty, max-length, special chars, negative numbers)
  • Test file upload if present: upload `.html`, `.svg`, `.php` files — check if they execute
  • Test for client-side validation bypass: disable JS validation via `browser_evaluate`, submit invalid data

6. **Mixed content and resource integrity**:

  • Check `browser_network_requests` for HTTP resources loaded on HTTPS pages
  • Check for missing Subresource Integrity (SRI) on CDN scripts
  • Flag external scripts loaded without integrity hashes

7. **Clickjacking test**:

  • Use `browser_evaluate` to check if `window.top === window.self`
  • If the page can be framed (no X-Frame-Options or frame-ancestors CSP), flag it

---

Phase 3: GitHub Repository Security Audit

If the user has a GitHub repository, analyze it for security issues:

1. **Exposed secrets in git history**:

  • Run: `git log --all -p --diff-filter=A | grep -E '(password|secret|api[_-]?key|token|credential|private[_-]?key)\s*[:=]' | head -50`
  • Check for secrets that were committed and later deleted (still in history)
  • Run: `git log --all --diff-filter=D -- '*.env' '*.pem' '*.key'` to find deleted secret files

2. **Branch protection**:

  • Check if main/master branch has protection rules
  • Check for force-push ability on protected branches
  • Check if PR reviews are required

3. **GitHub Actions security**:

  • Read `.github/workflows/*.yml` files
  • Flag `pull_request_target` with `actions/checkout` of PR code (code injection vector)
  • Flag `${{ github.event.issue.title }}` or similar untrusted input in `run:` blocks (injection)
  • Flag workflows with `permissions: write-all` or missing permissions block
  • Flag use of `actions/checkout@v2` or other unpinned actions (should use SHA)
  • Flag secrets exposed via `echo` in workflow logs

4. **Dependency security**:

  • Run `npm audit` / `pnpm audit` / `yarn audit` for dependency vulnerabilities
  • Check for `postinstall` scripts in dependencies that could be malicious
  • Check for typosquatting risks (packages with similar names to popular ones)
  • Verify lockfile integrity (no modified integrity hashes)

5. **.gitignore audit**:

  • Verify `.env`, `.env.*`, `*.pem`, `*.key`, `no
Read more
Ships withultraship

"ULTRASHIP" Claude Code plugin — 39 skills, 33 tools, 11 agents for ship-ready workflows: planning, review, pentesting, safety guardrails, canary monitoring, SEO/AI-readiness check, penetration testing, code review, competitive analysis, incident response. 1 dependency. 180 tests. MIT.

Get the whole plugin

Other skills on ultraship.