/hunting-methodology
1. Read program scope, policy, safe harbor 2. Read 5+ disclosed reports in hacktivity 3. Map crown jewels: what would hurt the company most? 4. Understand the business domain — what features handle money, PII, auth?
$ npx -y skills add H-mmer/pentest-agents --skill hunting-methodology --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
/hunting-methodology
Context preview
The summary Claude sees to decide when to auto-load this skill.
1. Read program scope, policy, safe harbor 2. Read 5+ disclosed reports in hacktivity 3. Map crown jewels: what would hurt the company most? 4. Understand the business domain — what features handle money, PII, auth?
SKILL.md
hunting-methodology.SKILL.mdHunting Methodology
The 5-Phase Non-Linear Workflow
Phase 1: Understand the Target (before touching anything)
1. Read program scope, policy, safe harbor 2. Read 5+ disclosed reports in hacktivity 3. Map crown jewels: what would hurt the company most? 4. Understand the business domain — what features handle money, PII, auth?
Phase 2: Map the Surface
1. Subdomain enumeration → live hosts → tech stack detection 2. JS bundle analysis → API endpoints, secrets, internal URLs 3. Run `/surface` for P1/P2/Kill ranking
Phase 3: Hunt (the actual testing)
1. Pick P1 target from surface ranking 2. Select vuln class based on tech stack:
- Rails/Django/Laravel → IDOR, mass assignment
- Express/Node → prototype pollution, path traversal
- Spring Boot → Actuator, SSTI
- Next.js → SSRF via Server Actions
- GraphQL → introspection, IDOR via node(), mutation auth bypass
3. Test with concrete payloads (see /hunt) 4. Apply the Sibling Rule on every endpoint 5. 20-minute rotation if no progress 6. Build a **depth matrix** before declaring a class exhausted:
- Dimensions: `entrypoint × method × content-type × encoding × bypass`
- Minimum 30 combinations on P1 surface (seed with `uv run python3 $CLAUDE_PROJECT_DIR/tools/intel_engine.py matrix <class>`)
- Do not stop at the first blocked payload — mutate and continue
7. Run **cross-context variants** for every promising input:
- URL / query, JSON, form-urlencoded, multipart, GraphQL variables
- Header / cookie mirrors, reflected values, stored values, async jobs / webhooks
8. Execute **encoding ladders** systematically:
- raw → URL → double-URL → unicode escape → mixed-case / separator insertion
- Keep the semantic payload constant through each ladder step
- Then **stack encodings** in a single payload: `html-entity+URL`
(`%26lt%3Bscript%26gt%3B`), `URL+html-entity`, `unicode-escape+URL`, `base64+URL`. WAFs typically decode once; targets decode twice, so a payload that looks benign after a single decode still executes at the sink. 9. Execute **auth-state permutations**:
- unauthenticated, low-priv user A, low-priv user B, high-priv, expired token, stale session, cross-tenant
- Compare response deltas (status, length, timing), not only status codes
10. Treat every bypass as a **family**, not a one-off:
- For WAF / filter blocks, try separator insertion, case toggling, alternate delimiters, parser differentials, and protocol / host normalization tricks
11. **Log negative evidence** (what failed and why) via `uv run python3 $CLAUDE_PROJECT_DIR/tools/brain.py record <target> recon "coverage-<class>" "<details>"` so autopilot resume avoids repeating exhausted paths.
Phase 4: Validate + Chain
1. Run 7-Question Gate on any signal 2. If PASS → check A→B chain table 3. If CHAIN REQUIRED → build the chain or drop it 4. If KILL → move on immediately
Phase 5: Report + Submit
1. Quality check (score ≥ 7) 2. Dupcheck against hacktivity 3. Submit with PoC + evidence + CVSS 4.0
Wide vs Deep Route Selection
**Wide route** (recon-heavy): New target, unknown surface, no prior data.
- Run `/pipeline` for broad coverage first
- Then `/surface` to prioritize
**Deep route** (hunt-heavy): Known target, mapped surface, returning hunter.
- Run `/resume` to see what's untested
- Pick the highest-ROI untested endpoint
- Go deep on one vuln class
Developer Psychology
Developers make CLASS mistakes, not random ones:
- If they forgot auth on endpoint A, they probably forgot on B and C
- If they use sequential integer IDs anywhere, they use them everywhere
- If input validation is weak in one form, check ALL forms
- New features (< 30 days) have the weakest security
- Acquired companies (different code, different team) = fresh attack surface
Time Management
| Rule | Action | |---|---| | 5-minute rule | No interesting signals after 5 min → skip target | | 20-minute rotation | No progress in 20 min → rotate vuln class or endpoint | | 1-hour rule | Stuck on one target for 1 hour → switch programs entirely | | A→B time box | 20 min per B candidate, max 3 candidates | | Exhaustion rule | A class is "exhausted" only after the depth matrix baseline + sibling coverage (see Phase 3 steps 6-11) |
ROI Ranking by Bug Class
| Bug Class | Competition | Avg Payout | Verdict | |---|---|---|---| | IDOR | Medium | High | Best ROI — always test first | | Auth bypass | Medium | High | Second priority | | Business logic | Low | High | Unique to each target | | Race conditions | Low | Medium-High | Under-tested | | OAuth/OIDC chains | Low | High | Complex but high payoff | | SSRF → cloud | Medium | Very High | If you find DNS callback | | Cache poisoning | Low | High | Rare skill | | XSS | Very High | Medium | Skip unless you have a chain | | Open redirect | Very High | Low | Only with OAuth chain | | Missing headers | Infinite | $0 | Never submit |
Read more
Hunting Methodology
The 5-Phase Non-Linear Workflow
Phase 1: Understand the Target (before touching anything)
1. Read program scope, policy, safe harbor 2. Read 5+ disclosed reports in hacktivity 3. Map crown jewels: what would hurt the company most? 4. Understand the business domain — what features handle money, PII, auth?
Phase 2: Map the Surface
1. Subdomain enumeration → live hosts → tech stack detection 2. JS bundle analysis → API endpoints, secrets, internal URLs 3. Run `/surface` for P1/P2/Kill ranking
Phase 3: Hunt (the actual testing)
1. Pick P1 target from surface ranking 2. Select vuln class based on tech stack:
- Rails/Django/Laravel → IDOR, mass assignment
- Express/Node → prototype pollution, path traversal
- Spring Boot → Actuator, SSTI
- Next.js → SSRF via Server Actions
- GraphQL → introspection, IDOR via node(), mutation auth bypass
3. Test with concrete payloads (see /hunt) 4. Apply the Sibling Rule on every endpoint 5. 20-minute rotation if no progress 6. Build a **depth matrix** before declaring a class exhausted:
- Dimensions: `entrypoint × method × content-type × encoding × bypass`
- Minimum 30 combinations on P1 surface (seed with `uv run python3 $CLAUDE_PROJECT_DIR/tools/intel_engine.py matrix <class>`)
- Do not stop at the first blocked payload — mutate and continue
7. Run **cross-context variants** for every promising input:
- URL / query, JSON, form-urlencoded, multipart, GraphQL variables
- Header / cookie mirrors, reflected values, stored values, async jobs / webhooks
8. Execute **encoding ladders** systematically:
- raw → URL → double-URL → unicode escape → mixed-case / separator insertion
- Keep the semantic payload constant through each ladder step
- Then **stack encodings** in a single payload: `html-entity+URL`
(`%26lt%3Bscript%26gt%3B`), `URL+html-entity`, `unicode-escape+URL`, `base64+URL`. WAFs typically decode once; targets decode twice, so a payload that looks benign after a single decode still executes at the sink. 9. Execute **auth-state permutations**:
- unauthenticated, low-priv user A, low-priv user B, high-priv, expired token, stale session, cross-tenant
- Compare response deltas (status, length, timing), not only status codes
10. Treat every bypass as a **family**, not a one-off:
- For WAF / filter blocks, try separator insertion, case toggling, alternate delimiters, parser differentials, and protocol / host normalization tricks
11. **Log negative evidence** (what failed and why) via `uv run python3 $CLAUDE_PROJECT_DIR/tools/brain.py record <target> recon "coverage-<class>" "<details>"` so autopilot resume avoids repeating exhausted paths.
Phase 4: Validate + Chain
1. Run 7-Question Gate on any signal 2. If PASS → check A→B chain table 3. If CHAIN REQUIRED → build the chain or drop it 4. If KILL → move on immediately
Phase 5: Report + Submit
1. Quality check (score ≥ 7) 2. Dupcheck against hacktivity 3. Submit with PoC + evidence + CVSS 4.0
Wide vs Deep Route Selection
**Wide route** (recon-heavy): New target, unknown surface, no prior data.
- Run `/pipeline` for broad coverage first
- Then `/surface` to prioritize
**Deep route** (hunt-heavy): Known target, mapped surface, returning hunter.
- Run `/resume` to see what's untested
- Pick the highest-ROI untested endpoint
- Go deep on one vuln class
Developer Psychology
Developers make CLASS mistakes, not random ones:
- If they forgot auth on endpoint A, they probably forgot on B and C
- If they use sequential integer IDs anywhere, they use them everywhere
- If input validation is weak in one form, check ALL forms
- New features (< 30 days) have the weakest security
- Acquired companies (different code, different team) = fresh attack surface
Time Management
| Rule | Action | |---|---| | 5-minute rule | No interesting signals after 5 min → skip target | | 20-minute rotation | No progress in 20 min → rotate vuln class or endpoint | | 1-hour rule | Stuck on one target for 1 hour → switch programs entirely | | A→B time box | 20 min per B candidate, max 3 candidates | | Exhaustion rule | A class is "exhausted" only after the depth matrix baseline + sibling coverage (see Phase 3 steps 6-11) |
ROI Ranking by Bug Class
| Bug Class | Competition | Avg Payout | Verdict | |---|---|---|---| | IDOR | Medium | High | Best ROI — always test first | | Auth bypass | Medium | High | Second priority | | Business logic | Low | High | Unique to each target | | Race conditions | Low | Medium-High | Under-tested | | OAuth/OIDC chains | Low | High | Complex but high payoff | | SSRF → cloud | Medium | Very High | If you find DNS callback | | Cache poisoning | Low | High | Rare skill | | XSS | Very High | Medium | Skip unless you have a chain | | Open redirect | Very High | Low | Only with OAuth chain | | Missing headers | Infinite | $0 | Never submit |
Bug bounty agent framework for Claude Code, Codex, Gemini, Cursor, Windsurf, Copilot, and OpenClaw — 48 agents, 26 commands, 19 CLI tools, 2 MCP servers, autonomous hunt loops, exploit chain builder.
Repo: H-mmer/pentest-agents
Other skills on pentest-agents.
- /analyze
Analyze recon output with AI to suggest high-value targets and attack strategies. Usage: /analyze <target>
Open skill - /autopilot
Autonomous hunt orchestrator. INSATIABLE in --autonomous mode: enforces an EXHAUSTION CONTRACT (26 canonical hunter classes, surface probe A-I, depth-engine ≥25 attempts/class, wall-clock floor 90 min/target, PRE-COMPLETION GATE before any summary). No early stops, no clarifying
Open skill - /brain
Manage the engagement brain. Subcommands: 'init' to set up, 'brief <target>' for pre-flight, 'status' for overview, 'exhausted [target]' to see dead ends.
Open skill - /chain
Build deep exploit chains — dispatches chain-builder agent. Given bug A, recursively walks the chain graph. Usage: /chain (then describe bug A)
Open skill - /correlate
Run the finding correlation engine to discover attack chains from individual findings.
Open skill - /cost
Show cost tracking and ROI for this engagement.
Open skill

