Skip to main content

recon-hunter

Full-stack recon-to-bug master skill. Runs passive + active recon, attack surface mapping, and bug discovery in one continuous 16-phase pipeline — all phases in order, zero skips. Triggers on: "recon", "enumerate", "subdomain", "find bugs", "attack surface", "map the target", "what's exposed", "scan this", or any domain/IP handed without further instruction. Produces a ranked finding list with PoC curl commands. Use for unauthenticated coverage before any authenticated testing begins.

Source facts

Repository
pruthuraut/BB-skill
Last source activity
October 5, 2026 at 17:31
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
recon-hunter
description
Full-stack recon-to-bug master skill. Runs passive + active recon, attack surface mapping, and bug discovery in one continuous 16-phase pipeline — all phases in order, zero skips. Triggers on: "recon", "enumerate", "subdomain", "find bugs", "attack surface", "map the target", "what's exposed", "scan this", or any domain/IP handed without further instruction. Produces a ranked finding list with PoC curl commands. Use for unauthenticated coverage before any authenticated testing begins.
version
1.0.0
author
Bug Bounty Multi-Agent Skills Framework
compatibility
["Antigravity / Gemini CLI","Claude Code","Cursor IDE","OpenAI Codex / OpenCode","DeepSeek"]
# RECON-HUNTER — Full Recon + Bug Discovery Pipeline **One rule: impact first. Only report what an attacker can abuse RIGHT NOW.** Kill theoretical findings before they reach the report. ``` [ TARGET ROOT DOMAIN / IP ] │ ┌──────────────────────────────────────────┴──────────────────────────────────────────┐ ▼ ▼ [ PHASE 01-04: PERIMETER & HOST MAPPING ] [ PHASE 05-08: URLS, CRAWL & JAVASCRIPT ] • Phase 01: Passive Subdomain Enumeration (zero-touch) • Phase 05: Historical URL Collection & Juicy Probing • Phase 02: DNS Resolution & httpx Fingerprint Pass • Phase 06: Active Multi-Engine Crawl (Katana/GoSpider) • Phase 03: Non-CDN Port Scanning & Service Probing • Phase 07: Target-Derived Directory & Endpoint Fuzzing • Phase 04: Subdomain Takeover & CNAME Dangling Audit • Phase 08: JavaScript Analysis, SSR State & Secrets │ │ └──────────────────────────────────────────┬──────────────────────────────────────────┘ ▼ ┌──────────────────────────────────────────┴──────────────────────────────────────────┐ ▼ ▼ [ PHASE 09-12: VULNERABILITY & EXPOSURE ] [ PHASE 13-16: PROTOCOLS, SUPPLY & TRIAGE ] • Phase 09: Nuclei Automated Vulnerability Scan • Phase 13: SSRF Entry Point Parameter Mining & OOB • Phase 10: Cloud Storage & Firebase Bucket Permutation • Phase 14: GraphQL Discovery & Schema Introspection • Phase 11: Source Code, VCS & 21 Sensitive Configs • Phase 15: Org Secret Hunt & Dependency Confusion • Phase 12: CORS Origin Reflection & Credential Audit • Phase 16: Headless Screenshotting & Visual Triage │ │ └──────────────────────────────────────────┬──────────────────────────────────────────┘ ▼ [ CONSOLIDATED FINDINGS TRIAGE ] • CRITICAL / HIGH / MEDIUM / SSRF • 60-Second Copyable PoC Curl Standard • 16-Phase Completed Coverage Ledger ``` --- ## Master Skill Delegation Architecture While `recon-hunter` coordinates the rapid 16-phase pipeline end-to-end, each phase maps directly to our specialized framework skills: | Phase | Title | Primary Engine / Commands | Specialized Skill Reference | |---|---|---|---| | **Phase 01** | Passive Subdomain Enum | `crt.sh`, `subfinder`, `amass`, `chaos`, `cero`, `github-subdomains` | [subdomainenum](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/subdomainenum/SKILL.md) | | **Phase 02** | DNS Resolution & Tech Detect | `dnsx`, `httpx -title -tech-detect -cdn -follow-redirects` | [techfingerprint](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/techfingerprint/SKILL.md) | | **Phase 03** | Port Scan & Services | `naabu` (non-CDN), `nmap -sV`, unauth service verification | [techfingerprint](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/techfingerprint/SKILL.md) | | **Phase 04** | Subdomain Takeover | `nuclei -t takeovers/`, `subjack`, 11 signature grep loop | [subdomainenum](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/subdomainenum/SKILL.md) | | **Phase 05** | Historical URLs & Juicy Files | `waybackurls`, `gau`, `waymore`, juicy extension `httpx -mc 200` | [contentdiscovery](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/contentdiscovery/SKILL.md) | | **Phase 06** | Active Web Crawl | `katana -jc -jsl -d 5 -kf all -aff`, `gospider`, `hakrawler` | [linkparamdiscovery](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/linkparamdiscovery/SKILL.md) | | **Phase 07** | Directory & Endpoint Fuzzing | Target-derived wordlist (`unfurl`), `ffuf -ac`, API fuzzing | [contentdiscovery](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/contentdiscovery/SKILL.md) | | **Phase 08** | JS Analysis & Secret Extraction| `js-beautify`, `trufflehog`, `gitleaks`, live token validation | [jsrecon](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/jsrecon/SKILL.md) | | **Phase 09** | Nuclei Automated Vulnerability| `nuclei -severity critical,high,medium`, priority exposures | [contentdiscovery](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/contentdiscovery/SKILL.md) | | **Phase 10** | Cloud Storage & Buckets | Multi-cloud S3/GCS/Azure permutations, Firebase RTDB shallow | [cloud-supplychain](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/cloud-supplychain/SKILL.md) | | **Phase 11** | Source Code & Config Exposure | `.git/config`, `.env`, Spring actuators, 21 sensitive paths | [contentdiscovery](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/contentdiscovery/SKILL.md) | | **Phase 12** | CORS Origin Reflection | Arbitrary origin, `Origin: null`, `Allow-Credentials: true` | [api-security](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/api-security/SKILL.md) | | **Phase 13** | SSRF Entry Point Discovery | Regex parameter filtering, Out-Of-Band interactsh verification | [ssrf-audit](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/ssrf-audit/SKILL.md) | | **Phase 14** | GraphQL Discovery & Schema | `{__typename}` probe, full schema introspection dump | [api-security](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/api-security/SKILL.md) | | **Phase 15** | Org Secrets & Supply Chain | `trufflehog github --org`, npm package registry 404 audit | [cloud-supplychain](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/cloud-supplychain/SKILL.md) | | **Phase 16** | Screenshot & Visual Triage | `gowitness file -f subs/live_http.txt --resolution 1280x800` | [techfingerprint](file:///c:/Users/rautp/Documents/BBskill/.agents/skills/techfingerprint/SKILL.md) | --- ## PHASE 0 — Setup ```bash T="<target_apex_domain>" # Set apex domain OUT="artifacts/recon_${T}" mkdir -p "$OUT"/{subs,urls,js,ports,screenshots,findings,cloud} ``` --- ## PHASE 1 — Passive Subdomain Enumeration (zero-touch) Goal: maximum breadth before touching target infrastructure. ```bash # 1. Certificate transparency curl -s "https://crt.sh/?q=%25.$T&output=json" \ | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u >> "$OUT/subs/raw.txt" # 2. subfinder (all sources) subfinder -d "$T" -all -silent >> "$OUT/subs/raw.txt" # 3. amass passive amass enum -passive -d "$T" -o "$OUT/subs/amass.txt" 2>/dev/null cat "$OUT/subs/amass.txt" >> "$OUT/subs/raw.txt" # 4. chaos (ProjectDiscovery dataset) chaos -d "$T" -silent 2>/dev/null >> "$OUT/subs/raw.txt" # 5. github-subdomains (requires GITHUB_TOKEN env) github-subdomains -d "$T" -t "$GITHUB_TOKEN" -o "$OUT/subs/github.txt" 2>/dev/null cat "$OUT/subs/github.txt" >> "$OUT/subs/raw.txt" # 6. cero (TLS SAN scraping) cero "$T" 2>/dev/null >> "$OUT/subs/raw.txt" # Deduplicate sort -u "$OUT/subs/raw.txt" -o "$OUT/subs/all.txt" wc -l "$OUT/subs/all.txt" ``` **Bug signals during enumeration:** - Subdomains matching `*.s3.amazonaws.com`, `*.pages.dev`, `*.netlify.app`, `*.github.io`, `*.azurewebsites.net`, `*.vercel.app` -> *queue for takeover check (Phase 4)* - `dev-`, `staging-`, `internal-`, `admin-`, `api-` prefixes -> *high-value targets, prioritize* --- ## PHASE 2 — DNS Resolution + Live Host Discovery ```bash # Resolve all subs to live IPs dnsx -l "$OUT/subs/all.txt" -resp -a -cname -silent -o "$OUT/subs/resolved.txt" cat "$OUT/subs/resolved.txt" | awk '{print $1}' > "$OUT/subs/live_hosts.txt" # httpx — full fingerprint pass httpx -l "$OUT/subs/live_hosts.txt" \ -title -tech-detect -status-code -content-length \ -ip -cdn -cname -follow-redirects \ -mc 200,201,204,301,302,307,401,403,404,500 \ -o "$OUT/subs/httpx.json" -j -silent # Extract live HTTP hosts cat "$OUT/subs/httpx.json" | jq -r '.url' > "$OUT/subs/live_http.txt" wc -l "$OUT/subs/live_http.txt" ``` **Bug signals:** - `401`/`403` on `admin.*`, `internal.*`, `api.*` -> *queue for 403 bypass* - `500` responses -> *server errors, potential injection surface* - CDN=false + IP exposed -> *origin IP bypass candidate* - `tech-detect` shows old versions -> *CVE check queue* --- ## PHASE 3 — Port Scanning + Service Discovery Run only against non-CDN IPs (CDN scanning is wasteful and often out-of-scope). ```bash # Extract non-CDN IPs from httpx output cat "$OUT/subs/httpx.json" | jq -r 'select(.cdn==false) | .host' | sort -u > "$OUT/ports/ips.txt" # Fast port scan — top 1000 + common web/service ports naabu -l "$OUT/ports/ips.txt" -top-ports 1000 \ -p 80,443,8080,8443,8888,9000,9200,9300,5601,3000,3001,4000,5000,6379,27017,5432,3306,2375,2376 \ -o "$OUT/ports/open.txt" -silent # Service banner + version (nmap on open ports only) nmap -iL "$OUT/ports/open.txt" -sV --open -T4 \ --script=banner,http-title,http-server-header \ -oN "$OUT/ports/nmap.txt" -oX "$OUT/ports/nmap.xml" 2>/dev/null ``` **High-value service signals -> immediate bug checks:** | Service | Port | Unauthenticated Impact Probe Command | |---|---|---| | **Elasticsearch** | 9200/9300 | `curl -sk http://IP:9200/_cat/indices?v` | | **Kibana** | 5601 | `curl -sk http://IP:5601/api/status` | | **Redis** | 6379 | `redis-cli -h IP ping` | | **MongoDB** | 27017 | `mongo --host IP --eval "db.adminCommand('listDatabases')"` | | **Docker API** | 2375/2376 | `curl -sk http://IP:2375/v1.41/containers/json` | | **Kubernetes** | 6443/10250 | `curl -sk https://IP:10250/pods -k` | | **Spring Actuator** | 8080/8443 | `curl -sk http://HOST/actuator` | | **Prometheus** | 9090 | `curl -sk http://HOST:9090/metrics` | | **Grafana** | 3000 | Default `admin:admin` login | | **Jenkins** | 8080 | `curl -sk http://HOST:8080/api/json` | --- ## PHASE 4 — Subdomain Takeover Check ```bash # 1. nuclei takeover templates against all live hosts nuclei -l "$OUT/subs/live_http.txt" \ -t http/takeovers/ \ -severity medium,high,critical \ -o "$OUT/findings/takeovers.txt" -silent # 2. subjack for CNAME-based takeover subjack -w "$OUT/subs/all.txt" -t 100 -timeout 30 \ -o "$OUT/findings/subjack.txt" -ssl 2>/dev/null # 3. Real-time fingerprint grep loop for host in $(cat "$OUT/subs/live_http.txt"); do body=$(curl -sk --max-time 6 "$host") for sig in "There isn't a GitHub Pages site here" \ "The specified bucket does not exist" \ "NoSuchBucket" \ "Repository not found" \ "Project not found" \ "Fastly error: unknown domain" \ "This shop is currently unavailable" \ "Domain not configured" \ "404 Not Found" \ "You're Almost There" \ "a Netlify site"; do echo "$body" | grep -qi "$sig" && echo "[TAKEOVER?] $host — $sig" | tee -a "$OUT/findings/takeovers.txt" done done ``` --- ## PHASE 5 — Historical URL Collection + Secret Hunting in URLs ```bash # Collect historical URLs — three sources for host in $(cat "$OUT/subs/live_hosts.txt"); do echo "$host" | waybackurls 2>/dev/null >> "$OUT/urls/all.txt" echo "$host" | gau --subs 2>/dev/null >> "$OUT/urls/all.txt" waymore -i "$host" -mode U -oU /tmp/wm.txt 2>/dev/null cat /tmp/wm.txt >> "$OUT/urls/all.txt" done
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub