| name | pentest-agents-bug-bounty-framework |
| description | Autonomous bug bounty agent framework with 50 agents, hunt loops, exploit chains, MCP servers for platform integration and writeup search |
| triggers | ["set up pentest agents framework","configure bug bounty hunting agents","start autonomous hunt loop","search writeup database for vulnerabilities","build exploit chain for security finding","submit bug bounty report","install pentest agents for Claude Code","validate security finding with 7-question gate"] |
Pentest Agents Bug Bounty Framework
Skill by ara.so — Security Skills collection.
Autonomous bug-bounty framework for Claude Code, Codex, Gemini, Cursor, Windsurf, Copilot, and OpenClaw. Ships 50 agents, 26 commands, 19 CLI tools, 11 skills, and 2 MCP servers (bounty platforms + writeup search). Includes 2,500 lines of concrete payloads, 7-Question Gate validation, autonomous hunt loops, A→B exploit chain building, persistent brain with endpoint tracking, and cross-IDE installer.
Installation
For Claude Code (Native)
git clone https://github.com/H-mmer/pentest-agents-suite
cd pentest-agents-suite/pentest-agents
export HACKERONE_USERNAME=your_username
export HACKERONE_TOKEN=your_api_token
uv run python3 tools/scaffold.py hackerone tesla
cd ~/bounties/hackerone-tesla
claude
For Other AI Coding Tools
cd pentest-agents-suite/pentest-agents/providers/codex
codex
python3 -m tools.installer install --targets all --scope project
python3 -m tools.installer install --targets codex --scope global
Installer Commands
pentest-agents list
pentest-agents install --targets claude_code,codex --scope global
pentest-agents install --dry-run
pentest-agents verify
pentest-agents uninstall
pentest-agents render --targets all
pentest-agents render --check
MCP Servers
Bounty Platforms Server (16 Platforms)
HackerOne (full API), Bugcrowd, Intigriti, Immunefi, YesWeHack + 11 stubs.
Configuration:
export HACKERONE_USERNAME=your_username
export HACKERONE_TOKEN=your_api_token
export BUGCROWD_EMAIL=your_email
export BUGCROWD_TOKEN=your_token
export INTIGRITI_TOKEN=your_token
export YWH_API_KEY=your_api_key
7 MCP Tools:
list_platforms - List all configured platforms
get_program_scope - Fetch in/out-of-scope assets
get_program_policy - Get submission rules
search_hacktivity - Find similar reports
sync_program - Download scope to local brain
draft_report - Prepare submission
submit_report - Submit to platform
Writeup Search Server (BYO Index)
Three search modes (auto-detected, graceful fallback):
| Mode | Requires | Searches |
|---|
| FAISS (semantic) | faiss-cpu, sentence-transformers, your metadata.db + index.faiss | Your writeup corpus via vector embeddings |
| SQLite (keyword) | Your metadata.db only | Your writeup corpus via LIKE over text |
| Local (default) | Nothing | rules/payloads.md + shipped skills |
Configuration:
export WRITEUP_DB_DIR="$HOME/.local/share/pentest-writeups"
Build Your Own Index:
cd rag-builder
python3 build.py status
python3 build.py ingest
python3 build.py ingest --check-remotes
python3 build.py ingest --execute
export WRITEUP_DB_DIR="$PWD/data"
python3 ../mcp-writeup-server/server.py --test
Edit rag-builder/repos.yaml to customize the 146-entry seed list of CTF archives, bug-bounty reports, and payload collections.
4 MCP Tools:
search_writeups - Semantic/keyword search for prior art
get_writeup - Full writeup content by ID
search_techniques - Exploitation techniques by vuln class
search_payloads - Curated payloads from rules/payloads.md
Core Workflow
/new → /sync → /brain init → /analyze → /surface → /hunt
/resume <target> → /hunt or /autopilot
/validate → /chain → /report → /dupcheck → /submit → /learn
/triage
Key Commands (26 Total)
In Claude Code Session
/model opus
/sync hackerone tesla
/brain init
/status
/hunt tesla.com
/hunt tesla.com --vuln-class sqli
/autopilot tesla.com
/validate
/chain
/triage
/report
/dupcheck
/submit
/learn
/brain show endpoints
/brain add endpoint https://api.tesla.com/v1/users
/brain note "Found rate limit bypass in auth flow"
/brain search "jwt"
/cost
Scaffold Tool
import subprocess
subprocess.run([
"uv", "run", "python3", "tools/scaffold.py",
"hackerone", "tesla"
])
subprocess.run([
"uv", "run", "python3", "tools/scaffold.py",
"bugcrowd", "acme-corp"
])
This generates:
~/bounties/<platform>-<program>/ directory
CLAUDE.md, AGENTS.md, .codex/, .gemini/, .cursor/ configs
.mcp.json with platform + writeup server config
.agents/skills/ with all framework skills
Agent System (50 Agents)
Key orchestrator agents:
chain-builder - Links findings into exploit chains (A→B)
correlator - Cross-references findings with brain
recon-ranker - Prioritizes attack surface
hunt-orchestrator - Coordinates active hunting
validator - 7-Question Gate compliance
Specialized hunters:
sqli-hunter, xss-hunter, ssrf-hunter
authz-hunter, jwt-hunter, idor-hunter
api-hunter, graphql-hunter, websocket-hunter
Agents inherit model via model: "inherit" frontmatter. Orchestrators dispatch to specialized agents automatically.
Configuration Files
.mcp.json (Claude Code)
{
"mcpServers": {
"bounty-platforms": {
"command": "uv",
"args": [
"run",
"--with", "mcp",
"python3",
"mcp-bounty-server/server.py"
],
"env": {
"HACKERONE_USERNAME": "your_username",
"HACKERONE_TOKEN": "your_token"
}
},
"writeup-search": {
"command": "uv",
"args": [
"run",
"--with", "mcp",
"--with",
cost_hook.py (Automatic Cost Tracking)
Add to Claude Code settings.json:
{
"hooks": {
"SubagentStop": "python3 /path/to/pentest-agents/hooks/cost_hook.py",
"Stop": "python3 /path/to/pentest-agents/hooks/cost_hook.py",
"SessionStart": "python3 /path/to/pentest-agents/hooks/welcome.py"
}
}
Logs to cost-tracking.json:
{
"sessions": [
{
"timestamp": "2026-05-17T10:30:00Z",
"agent": "sqli-hunter",
"input_tokens": 15000,
"output_tokens": 2500,
"cost_usd": 0.12
}
]
}
Brain System (Persistent Memory)
/brain init
/brain add endpoint https://api.example.com/v1/users
/brain add finding "JWT lacks signature verification in /auth"
/brain add technique "SSRF via PDF renderer"
/brain search "jwt"
/brain show endpoints
/brain show findings
/brain stats
/brain export findings.json
Python API:
from tools.brain import Brain
brain = Brain("tesla.com")
brain.init()
brain.add_endpoint("https://api.tesla.com/v1/users", {
"method": "GET",
"auth": "Bearer token",
"params": ["user_id", "include_deleted"]
})
brain.add_finding({
"vuln_class": "IDOR",
"severity": "high",
"endpoint": "/v1/users/{id}",
"description": "Lack of authz check allows cross-account access",
"poc": "curl -H 'Authorization: Bearer USER_A' https://api.tesla.com/v1/users/USER_B_ID"
})
jwt_findings = brain.search("jwt")
all_endpoints = brain.get_endpoints()
stats = brain.stats()
Payload System
Rules Engine
Framework ships rules/payloads.md with 2,500 lines of categorized payloads:
Payload categories:
- SQL injection (MySQL, PostgreSQL, MSSQL, Oracle)
- XSS (reflected, stored, DOM)
- SSRF (cloud metadata, internal endpoints)
- XXE, SSTI, command injection
- JWT manipulation
- GraphQL introspection/batching
- NoSQL injection
Custom Payloads
Add to workspace payloads/<vuln-class>.md:
# Custom SQLi Payloads for Tesla
## Time-based blind (WAF bypass)
' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- -
' AND SLEEP(5) AND '1'='1
Agents will query both shipped and custom payloads.
7-Question Gate (Validation)
Every finding must pass before submission:
questions = [
"What is the exact attack vector?",
"What is the business impact?",
"Can you reproduce it 3 times?",
"Is it in scope per program policy?",
"Have you checked for duplicates?",
"Is there a clear fix recommendation?",
"Does the PoC include only test data?"
]
Exploit Chain Builder
/chain
Python API:
from tools.chain_builder import ChainBuilder
builder = ChainBuilder()
builder.add_finding("ssrf", {
"endpoint": "/render-pdf",
"impact": "Access internal network"
})
builder.add_finding("csrf", {
"endpoint": "/admin/delete-user",
"impact": "Delete arbitrary users",
"requires": "Admin session"
})
chain = builder.build()
Platform Integration Examples
HackerOne
programs = await mcp.call_tool("list_platforms", {})
scope = await mcp.call_tool("get_program_scope", {
"platform": "hackerone",
"program": "tesla"
})
similar = await mcp.call_tool("search_hacktivity", {
"platform": "hackerone",
"query": "IDOR users endpoint",
"limit": 10
})
report = await mcp.call_tool("submit_report", {
"platform": "hackerone",
"program": "tesla",
"title": "IDOR in /v1/users allows cross-account access",
"severity": "high",
"description": "...",
"poc": "...",
"impact": "..."
})
Bugcrowd
await mcp.call_tool("sync_program", {
"platform": "bugcrowd",
"program": "acme-corp"
})
policy = await mcp.call_tool("get_program_policy", {
"platform": "bugcrowd",
"program": "acme-corp"
})
Autonomous Hunt Loop
/autopilot tesla.com
Modes:
--paranoid - Extra validation, slower
--normal - Balanced (default)
--aggressive - Fast, more false positives
Troubleshooting
MCP Server Not Starting
cd mcp-bounty-server
uv run --with mcp python3 server.py --test
cd mcp-writeup-server
uv run --with mcp --with faiss-cpu --with sentence-transformers python3 server.py --test
echo $HACKERONE_TOKEN
echo $WRITEUP_DB_DIR
cat .mcp.json | grep command
Writeup Search Falls Back to Local
ls -lh ~/.local/share/pentest-writeups/metadata.db
sqlite3 ~/.local/share/pentest-writeups/metadata.db "PRAGMA table_info(writeups);"
python3 -c "import faiss; import sentence_transformers; print('OK')"
Brain Not Persisting
ls -la ~/.pentest-agents/brains/
python3 -c "from tools.brain import Brain; b = Brain('tesla.com'); b.init(); print(b.stats())"
chmod -R u+w ~/.pentest-agents/
Cost Tracking Not Working
cat ~/.claude/settings.json | grep hooks
python3 hooks/cost_hook.py
cat cost-tracking.json | python3 -m json.tool
Installer Conflicts
pentest-agents install --dry-run --targets all
pentest-agents verify
pentest-agents uninstall
Provider Bundle Out of Sync
python3 -m tools.installer render --check
python3 -m tools.installer render --targets all
python3 -m tools.installer render --targets codex
Cross-IDE Compatibility
| Feature | Claude Code | Codex | Gemini | Cursor | Windsurf | Copilot | OpenClaw |
|---|
| Native agents | ✅ | ✅ | ✅ | Skills only | Skills only | ✅ (30KB limit) | Skills only |
| Slash commands | ✅ | ✅ | ✅ | Skills | Workflows | Prompts | Skills |
| Rules files | ✅ | ✅ (32KB) | ✅ | ✅ | ✅ (12KB/file) | ✅ | ✅ |
| MCP servers | ✅ | ✅ | ✅ | ✅ | ✅ (user-level) | ✅ | ✅ (user-level) |
| Model inheritance | ✅ | Via model_reasoning_effort | N/A | N/A | N/A | N/A | N/A |
All targets get the same 50 agents, 26 commands, 2 MCP servers — only the file format differs.