
Comprehensive Reconnaissance Methodology and Tools for Bug Bounty Hunters
In the ever-evolving landscape of cybersecurity, reconnaissance is the cornerstone of every successful bug bounty hunt. Whether you’re dissecting a sprawling enterprise network or probing a nimble startup’s web app, the quality of your recon determines whether you’ll uncover a goldmine of vulnerabilities or walk away empty-handed.
This guide isn’t just another tool dump—it’s a battle-tested methodology refined through years of crawling subdomains, fuzzing endpoints, and outsmarting firewalls. We’ll walk through a Linux-centric recon workflow that blends automation with manual ingenuity, ensuring no stone goes unturned. From subdomain takeover checks to secrets lurking in JavaScript files, you’ll learn how to transform raw data into actionable leads. Grab your terminal, fire up your favorite tools, and let’s turn recon into your superpower.
1. Subdomain Enumeration
Subdomains are the gateway to overlooked attack surfaces.
Tools & Techniques
KnockpybashCopyDownloadPro Tip: Even 404/403 responses may host misconfigured assets—always investigate manually.
GitHub
- A Python-based tool that enumerates subdomains and identifies associated IPs/CDNs.
1knockpy domain.com -o subdomains.txtAssetfinder + HTTPX Pipeline Assetfinder | HTTPX
- Combine passive subdomain discovery with live host verification:
1assetfinder --subs-only target.com | httpx -title -tech-detect -status-code -o live_subs.txtAmass Amass
- For deeper enumeration (passive/active DNS, scraping):
1amass enum -d target.com -config ~/amass-config.ini -o amass_results.txtSubzy Subzy
- Automatically check for subdomain takeovers:
1subzy run -targets live_subs.txt2. Directory/Path Discovery
Unearth hidden endpoints, APIs, and sensitive files.
Tools & Workflows
Dirsearch Pro Tip: Prioritize 3xx/5xx responses—redirects often leak internal paths.
GitHub
- Fast directory brute-forcing with customizable wordlists:
1dirsearch -u https://target.com -e php,asp,js -w /path/to/wordlist.txtWaybackurls + Gau Filter for parameters:bashCopyDownloadWaybackurls | Gau
- Extract historical URLs from Wayback Machine and Common Crawl:
1echo target.com | waybackurls | tee urls.txt
2gau target.com | tee -a urls.txt
3
4cat urls.txt | grep '?.*=' | qsreplace -aParamSpider + ArjunParamSpider | Arjun
- ParamSpider: Crawl for parameters in URLs:
1python3 paramspider.py -d target.com --level high- Arjun: Detect hidden parameters for injection testing:
1arjun -u https://target.com/api/v1?param=13. Vulnerability Scanning
Automate detection of low-hanging fruit.
Toolkit
Nuclei Customization Tip: Write YAML templates for proprietary tech stacks.
Nuclei
- Mass-scan subdomains with 2,000+ community templates:
1cat live_subs.txt | nuclei -t ~/nuclei-templates/ -severity critical,high -o nuclei_results.txtNikto Nikto
- Legacy but reliable for server misconfigurations:
1nikto -h https://target.com -Tuning 1,2,3 -output nikto_scan.htmlNmap Vulners Alternative: Use cve-bin-tool for software-based CVE checks.
- CVE detection for open ports:
1nmap -sV --script=vulners -p 80,443,8080 target.com4. Advanced Recon Tactics
A. Favicon Hash Hunting with Shodan
Generate favicon hashes:
1httpx -l live_subs.txt -favicon -hash favicon_hash.txtQuery Shodan for matching infrastructure: Shodan Guide
1shodan search http.favicon.hash:<HASH> --fields ip_str,portB. Secrets Detection
- TruffleHog: Scan Git/S3 for API keys:
1trufflehog git https://github.com/target/repo.git --json- GitHound: Find exposed secrets in GitHub: TruffleHog | GitHound
1githound --target target.com --dig-files --dig-commitsC. JavaScript Analysis
LinkFinder: Extract endpoints from JS files:
1python3 linkfinder.py -i https://target.com/app.js -o cliSubjs: Crawl subdomains for JS files: LinkFinder | Subjs
1subjs -l live_subs.txt -o all_js.txt5. Automation with Bash
Streamline your workflow with this enhanced script:
1#!/bin/bash
2# Usage: ./recon.sh target.com
3
4TARGET=$1
5OUT_DIR="recon-$TARGET"
6mkdir -p $OUT_DIR
7
8echo "[+] Starting subdomain enumeration..."
9assetfinder --subs-only $TARGET | anew $OUT_DIR/subs.txt
10amass enum -d $TARGET -o $OUT_DIR/amass_subs.txt
11cat $OUT_DIR/*_subs.txt | sort -u | httpx -silent -o $OUT_DIR/live_subs.txt
12
13echo "[+] Scanning for vulnerabilities..."
14cat $OUT_DIR/live_subs.txt | nuclei -t ~/nuclei-templates/ -o $OUT_DIR/nuclei_results.txt
15
16echo "[+] Hunting for secrets..."
17trufflehog filesystem $OUT_DIR --json | jq . > $OUT_DIR/secrets.json
18
19echo "[+] Done! Results saved to $OUT_DIR/"Dependencies: Install anew, jq, and tools listed above.
Pro Tips & Ethics
- Rate Limiting: Add
-rate-limit 100in HTTPX/Nuclei to avoid overwhelming targets. - Legality: Always stay within program scope—use
-proxy http://localhost:8080to route traffic through Burp. - Continuous Learning: Follow @Bugcrowd and HackerOne Hactivity for new techniques.
🚀 Final Thoughts
Recon is an art—combine automation with manual ingenuity. Bookmark these resources:
Disclaimer: Use these tools ethically and only on authorized targets.
Revision Notes: Added Amass, LinkFinder, automation script, and Shodan workflows; streamlined tool explanations; emphasized ethical hacking practices.