--- name: recon-and-methodology description: >- Reconnaissance and methodology playbook. Use when mapping assets, discovering endpoints, fingerprinting technology, and building a structured testing plan for a new target. --- # SKILL: Recon and Methodology — Expert Bug Bounty Playbook > **AI LOAD INSTRUCTION**: Systematic recon and bug-finding methodology from top bug hunters. Covers subdomain enumeration, endpoint discovery, tech fingerprinting, and the hunter's mental model for finding bugs that others miss. Key insight: most high-severity bugs are found through systematic coverage, not just clever payloads. --- ## 1. RECON HIERARCHY ``` Target Selection └── Scope Definition (in-scope assets) └── Asset Discovery (subdomains, IPs, domains) └── Tech Fingerprinting (what's running) └── Endpoint Discovery (attack surface) └── Vulnerability Testing (per vulnerability type) ``` --- ## 2. SUBDOMAIN ENUMERATION (CRITICAL FIRST STEP) ### Passive (no DNS queries to target) ```bash # Subfinder (aggregates multiple sources): subfinder -d target.com -o subdomains.txt # Amass passive: amass enum -passive -d target.com # Certsh (certificate transparency): curl -s "https://crt.sh/?q=%.target.com&output=json" | jq -r '.[].name_value' | sort -u # SecurityTrails API, Shodan: # Web: https://securitytrails.com/list/apex_domain/target.com ``` ### Active (DNS brute force + resolution) ```bash # Massdns + wordlist: massdns -r /path/to/resolvers.txt -t A -o S -w output.txt \ <(cat wordlist.txt | sed 's/$/.target.com/') # ffuf for subdomain brute: ffuf -w subdomains-wordlist.txt -u https://FUZZ.target.com \ -mc 200,301,302,403 -H "Host: FUZZ.target.com" # DNSx for bulk resolution: cat subdomains.txt | dnsx -a -resp -o resolved.txt # Recommended wordlist: SecLists/Discovery/DNS/ ``` ### Virtual Host Discovery ```bash # ffuf vhost mode: ffuf -w wordlist.txt -u https://target.com \ -H "Host: FUZZ.target.com" -mc 200,301,403 # gobuster vhost: gobuster vhost -u https://target.com -w wordlist.txt ``` --- ## 3. SERVICE AND PORT DISCOVERY ```bash # Fast port scan (common ports): nmap -T4 -F target.com -oN ports.txt # Comprehensive scan on resolved subdomains: cat resolved_ips.txt | nmap -iL - --open -p 80,443,8080,8443,8888,3000,5000 -oG scan.txt # httpx for HTTP probing: cat subdomains.txt | httpx -title -tech-detect -status-code -o live_hosts.txt # masscan for speed on large IP ranges: masscan -p 80,443,8080,8443 10.0.0.0/8 --rate=1000 ``` --- ## 4. WEB TECHNOLOGY FINGERPRINTING ```bash # Wappalyzer (browser extension) or: whatweb https://target.com # httpx with tech detection: httpx -u https://target.com -tech-detect # Check headers manually: curl -sI https://target.com | grep -i "server\|x-powered-by\|x-generator\|cf-ray" # Fingerprint from: - Server header: nginx/1.18, Apache/2.4, IIS/10.0 - X-Powered-By: PHP/7.4, ASP.NET - Cookies: PHPSESSID (PHP), JSESSIONID (Java), _rails_session (Rails) - HTML comments: - Meta generator: - JS framework files: /static/js/angular.min.js ``` --- ## 5. ENDPOINT DISCOVERY ### Directory Brute Force ```bash # ffuf (fastest): ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files.txt \ -mc 200,301,302,403 -t 50 -o dirs.txt # Gobuster: gobuster dir -u https://target.com -w wordlist.txt -x php,html,js,json # feroxbuster (recursive): feroxbuster -u https://target.com -w wordlist.txt -x php,html,txt -r ``` ### Parameter Discovery ```bash # Arjun (hidden parameter finder): arjun -u https://target.com/api/endpoint # x8: x8 -u https://target.com/api/endpoint -w params-wordlist.txt ``` ### JavaScript Source Mining ```bash # Extract endpoints from JS files: gau target.com | grep '\.js$' | httpx -mc 200 | xargs -I{} curl -s {} | \ grep -oE '"/[a-zA-Z0-9/_-]+"' | sort -u # LinkFinder: python3 linkfinder.py -i https://target.com -d -o output.html # GetAllURLs (gau): gau target.com | sort -u > all_urls.txt # Wayback URLs: waybackurls target.com | sort -u > wayback_urls.txt ``` ### API Endpoint Discovery ```bash # Common API paths: ffuf -u https://target.com/FUZZ -w /SecLists/Discovery/Web-Content/api/api-endpoints.txt # Swagger/OpenAPI: test: /swagger.json /api-docs /openapi.json /v2/api-docs /.well-known/ /docs/ # GraphQL: test: /graphql /gql /v1/graphql /api/graphql ``` --- ## 6. SOURCE CODE RECON ### GitHub / GitLab Exposure ```bash # trufflehog (secret scanner in git history): trufflehog git https://github.com/target-org/target-repo # gitleaks: gitleaks detect --source /path/to/cloned/repo # Manual GitHub search: # site:github.com "target.com" "api_key" OR "secret" OR "password" # site:github.com "target.com" ".env" OR "config.php" OR "db_password" # GitHub dorks: # "target.com" extension:env # "target.com" filename:*.config password # org:target-org secret OR password OR apikey ``` ### Exposed Environment Files ``` # Check common paths: https://target.com/.env https://target.com/.git/config https://target.com/config.json https://target.com/config.yaml https://target.com/credentials.json https://target.com/secrets.json https://target.com/wp-config.php https://target.com/backup.sql https://target.com/backup.zip ``` --- ## 7. ZSEANO'S TESTING METHODOLOGY ### Core Philosophy 1. **Go deep on one program** rather than spread across many — learn the application thoroughly 2. **Build a profile of the company** — tech stack, developers, processes 3. **Look where others don't** — check error pages, admin paths, old versions, mobile API 4. **Follow the filter** — if input is filtered somewhere, that functionality exists and may be bypassed ### Testing Sequence (One Page / Feature) ``` For each input point: 1. Non-malicious HTML tags (