The Ultimate 2026 Bug Bounty Recon Guide: 100+ Advanced Commands & Techniques
The Ultimate 2026 Bug Bounty Recon Guide
100+ Advanced Copy-Paste Commands That Find Real Bugs — Subdomain Discovery, Live Host Detection, Port Scanning, Content Discovery, Vulnerability Scanning, AI-Powered Automation & More
Reconnaissance is the cornerstone of successful bug bounty hunting. The depth of your recon directly determines the quality of your findings. A hunter who spends 80% of their time on recon will consistently outperform one who rushes to exploitation. This guide provides a comprehensive, production-ready arsenal of over 100 commands, organized into a logical workflow from initial subdomain discovery all the way through AI-powered analysis and reporting. Every command is copy-paste ready — simply replace target.com with your actual target.
Table of Contents
- Subdomain Discovery (Commands 1–25)
- Live Host Detection (Commands 26–40)
- Port Scanning (Commands 41–55)
- Content Discovery (Commands 56–75)
- Automated Vulnerability Scanning — Nuclei (Commands 76–88)
- Advanced Recon Techniques (Commands 89–100)
- AI-Powered Reconnaissance (Commands 101–108)
- Master One-Liners
- Quick Tips & Best Practices
- Tool Reference Table
- References & Further Reading
| Category | Commands | Key Tools | Est. Time |
|---|---|---|---|
| Subdomain Discovery | 1–25 | subfinder, amass, puredns, dnsx | 5–10 min |
| Live Host Detection | 26–40 | httpx | 2–5 min |
| Port Scanning | 41–55 | naabu, nmap, masscan, rustscan | 5–30 min |
| Content Discovery | 56–75 | feroxbuster, ffuf, katana, LinkFinder | 10–30 min |
| Vulnerability Scanning | 76–88 | nuclei | 10–60 min |
| Advanced Techniques | 89–100 | cloud_enum, trufflehog, gowitness | Variable |
| AI-Powered Recon | 101–108 | OpenAI API, Python | 1–5 min |
Subdomain Discovery
Commands 1–25Subdomain discovery is the foundation of any bug bounty engagement. The more subdomains you find, the larger your attack surface. A single forgotten staging server or a misconfigured development subdomain can be worth thousands of dollars. This section covers both passive techniques (which query third-party data sources without touching the target) and active techniques (which perform DNS queries directly against the target).
Passive techniques are stealthy and safe. They query public data sources like certificate transparency logs, internet archives, and threat intelligence platforms. Always start here to avoid triggering WAF alerts or rate limits on the target.
# ----------------------------------------------------------------
# COMMAND 1: Subfinder (All Sources)
# The fastest passive subdomain enumeration tool. Queries 40+
# sources including VirusTotal, Shodan, Censys, and more.
# Install: go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# ----------------------------------------------------------------
subfinder -d target.com -all -silent -o subs.txt
# ----------------------------------------------------------------
# COMMAND 2: Amass (Passive Mode)
# OWASP Amass is the gold standard for passive enumeration.
# It queries DNS, scrapes web archives, and uses APIs.
# Install: go install -v github.com/owasp-amass/amass/v4/...@master
# ----------------------------------------------------------------
amass enum -passive -d target.com -o amass.txt
# ----------------------------------------------------------------
# COMMAND 3: Assetfinder (Fast & Lightweight)
# Written by Tomnomnom. Excellent for quick initial enumeration.
# Install: go install github.com/tomnomnom/assetfinder@latest
# ----------------------------------------------------------------
assetfinder --subs-only target.com | tee assetfinder.txt
# ----------------------------------------------------------------
# COMMAND 4: Findomain (High Performance)
# Written in Rust. Extremely fast and reliable.
# Install: https://github.com/Findomain/Findomain/releases
# ----------------------------------------------------------------
findomain -t target.com -o findomain.txt
# ----------------------------------------------------------------
# COMMAND 5: Chaos (ProjectDiscovery Dataset)
# Access ProjectDiscovery's curated dataset of subdomains.
# Requires a free API key from chaos.projectdiscovery.io
# Install: go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest
# ----------------------------------------------------------------
chaos -d target.com -silent -o chaos.txt
# ----------------------------------------------------------------
# COMMAND 6: GitHub Subdomain Search
# Finds subdomains mentioned in public GitHub repositories.
# Requires a GitHub personal access token.
# Install: go install github.com/gwen001/github-subdomains@latest
# ----------------------------------------------------------------
github-subdomains -d target.com -t YOUR_GITHUB_TOKEN | tee github_subs.txt
# ----------------------------------------------------------------
# COMMAND 7: Wayback Machine URL Mining
# Extracts subdomains from the Wayback Machine's URL archive.
# Install: go install github.com/tomnomnom/waybackurls@latest
# ----------------------------------------------------------------
echo "target.com" | waybackurls | grep -oE "[a-zA-Z0-9._-]+\.target\.com" | sort -u > wayback_subs.txt
# ----------------------------------------------------------------
# COMMAND 8: CRT.sh (Certificate Transparency Logs)
# Queries the certificate transparency log database.
# Wildcard certs often reveal internal subdomain naming patterns.
# ----------------------------------------------------------------
curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u > crtsh.txt
# ----------------------------------------------------------------
# COMMAND 9: AlienVault OTX (Open Threat Exchange)
# Queries AlienVault's passive DNS database. Free, no API key needed.
# ----------------------------------------------------------------
curl -s "https://otx.alienvault.com/api/v1/indicators/domain/target.com/passive_dns" | jq -r '.passive_dns[]?.hostname' | sort -u > alienvault.txt
# ----------------------------------------------------------------
# COMMAND 10: SecurityTrails (API Key Required)
# One of the most comprehensive passive DNS databases available.
# Free tier: 50 queries/month. Sign up at securitytrails.com
# ----------------------------------------------------------------
curl -s "https://api.securitytrails.com/v1/domain/target.com/subdomains" \
-H "APIKEY: YOUR_API_KEY" | jq -r '.subdomains[]' | sed "s/$/.target.com/" > securitytrails.txt
# ----------------------------------------------------------------
# COMMAND 11: Shodan (API Key Required)
# Shodan indexes internet-connected devices. Great for finding
# subdomains that host services on non-standard ports.
# Install: pip3 install shodan
# ----------------------------------------------------------------
shodan domain target.com | grep -oE "[a-zA-Z0-9._-]+\.target\.com" | sort -u > shodan_subs.txt
# ----------------------------------------------------------------
# COMMAND 12: Censys (API Key Required)
# Censys scans the entire internet and indexes certificates.
# Sign up at censys.io for a free API key.
# Install: pip3 install censys
# ----------------------------------------------------------------
censys search "target.com" --index-type certificates \
--fields parsed.names | jq -r '.[] | .parsed.names[]' | \
grep "target.com" | sort -u > censys_subs.txt
# ----------------------------------------------------------------
# COMMAND 13: RapidDNS
# A fast and free passive DNS database.
# ----------------------------------------------------------------
curl -s "https://rapiddns.io/subdomain/target.com?full=1" | \
grep -oE "[a-zA-Z0-9._-]+\.target\.com" | sort -u > rapiddns.txt
# ----------------------------------------------------------------
# COMMAND 14: HackerTarget
# Another free passive DNS lookup service.
# ----------------------------------------------------------------
curl -s "https://api.hackertarget.com/hostsearch/?q=target.com" | \
cut -d',' -f1 | sort -u > hackertarget.txt
# ----------------------------------------------------------------
# COMMAND 15: URLScan.io
# Queries URLScan's database of scanned pages for subdomains.
# ----------------------------------------------------------------
curl -s "https://urlscan.io/api/v1/search/?q=domain:target.com&size=10000" | \
jq -r '.results[].page.domain' | sort -u > urlscan.txt
# ----------------------------------------------------------------
# COMMAND 16: Sublist3r (Multi-Source)
# Enumerates subdomains using multiple search engines.
# Install: pip3 install sublist3r
# ----------------------------------------------------------------
sublist3r -d target.com -o sublist3r.txt
# ----------------------------------------------------------------
# COMMAND 17: TheHarvester (OSINT)
# Gathers emails, names, subdomains, IPs, and URLs from public sources.
# Install: pip3 install theHarvester
# ----------------------------------------------------------------
theHarvester -d target.com -b all -f theharvester_results
# ----------------------------------------------------------------
# COMMAND 18: Combine All Passive Sources & Deduplicate
# Merge all output files into a single, sorted, unique list.
# ----------------------------------------------------------------
cat subs.txt amass.txt assetfinder.txt findomain.txt chaos.txt \
github_subs.txt wayback_subs.txt crtsh.txt alienvault.txt \
securitytrails.txt shodan_subs.txt censys_subs.txt rapiddns.txt \
hackertarget.txt urlscan.txt sublist3r.txt 2>/dev/null | \
grep "target.com" | sort -u > all_passive_subs.txt
echo "[+] Total unique passive subdomains: $(wc -l < all_passive_subs.txt)"
Active enumeration involves directly querying DNS servers to discover subdomains by brute-forcing common names. This is significantly more powerful than passive enumeration but generates DNS traffic that may be logged. Use a high-quality wordlist like SecLists or Commonspeak2 for best results.
# ----------------------------------------------------------------
# COMMAND 19: puredns (Recommended for Brute-Forcing)
# The most accurate DNS brute-forcing tool. Handles wildcard
# filtering and DNS poisoning automatically.
# Install: go install github.com/d3mondev/puredns/v2@latest
# Wordlist: https://github.com/danielmiessler/SecLists
# ----------------------------------------------------------------
puredns bruteforce /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt \
target.com -r /path/to/resolvers.txt -w puredns_results.txt
# ----------------------------------------------------------------
# COMMAND 20: dnsx (DNS Resolver & Validator)
# Resolve and validate a list of subdomains. Filters out
# dead or non-resolving subdomains.
# Install: go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
# ----------------------------------------------------------------
dnsx -l all_passive_subs.txt -silent -o resolved_subs.txt
# ----------------------------------------------------------------
# COMMAND 21: massdns (Ultra-High-Speed Brute-Forcing)
# Can resolve millions of subdomains per second using public resolvers.
# Install: https://github.com/blechschmidt/massdns
# ----------------------------------------------------------------
massdns -r /path/to/resolvers.txt -t A -o S \
-w massdns_results.txt \
/usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt
# ----------------------------------------------------------------
# COMMAND 22: shuffledns (Combines massdns + puredns)
# Handles both brute-forcing and resolving in one tool.
# Install: go install -v github.com/projectdiscovery/shuffledns/cmd/shuffledns@latest
# ----------------------------------------------------------------
shuffledns -d target.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt \
-r /path/to/resolvers.txt \
-o shuffledns_results.txt
# ----------------------------------------------------------------
# COMMAND 23: dnsgen (Permutation & Alteration)
# Generates subdomain permutations from a known list.
# Excellent for finding dev, staging, and regional variants.
# Install: pip3 install dnsgen
# ----------------------------------------------------------------
cat resolved_subs.txt | dnsgen - | \
massdns -r /path/to/resolvers.txt -t A -o S -w dnsgen_results.txt
# ----------------------------------------------------------------
# COMMAND 24: gobuster (DNS Mode)
# A versatile brute-forcing tool with DNS mode support.
# Install: go install github.com/OJ/gobuster/v3@latest
# ----------------------------------------------------------------
gobuster dns -d target.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-t 50 -o gobuster_dns.txt
# ----------------------------------------------------------------
# COMMAND 25: Final Merge & Resolve All Discovered Subdomains
# Combine passive + active results, resolve, and get live hosts.
# ----------------------------------------------------------------
cat all_passive_subs.txt puredns_results.txt shuffledns_results.txt \
dnsgen_results.txt gobuster_dns.txt 2>/dev/null | \
sort -u | dnsx -silent -o all_resolved_subs.txt
echo "[+] Total resolved subdomains: $(wc -l < all_resolved_subs.txt)"
Live Host Detection
Commands 26–40Not every resolved subdomain hosts a live web service. Live host detection probes each subdomain over HTTP and HTTPS to identify which ones are actually serving content. The httpx tool by ProjectDiscovery is the industry standard for this task, offering a rich set of flags for extracting metadata in a single pass.
# ----------------------------------------------------------------
# COMMAND 26: Basic HTTP Probing
# Identify which subdomains are serving HTTP/HTTPS content.
# Install: go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -silent -o live_hosts.txt
# ----------------------------------------------------------------
# COMMAND 27: httpx with Status Codes
# Status codes reveal a lot: 200 = live, 301/302 = redirect,
# 401/403 = protected (potential bypass target), 500 = error.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -status-code -silent -o hosts_status.txt
# ----------------------------------------------------------------
# COMMAND 28: httpx with Page Title Extraction
# Page titles quickly identify the purpose of each host.
# Look for: "Admin", "Login", "Dashboard", "API", "Dev", "Staging".
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -title -silent -o hosts_title.txt
# ----------------------------------------------------------------
# COMMAND 29: httpx with Technology Detection
# Identifies the tech stack (CMS, frameworks, libraries).
# Use this to target known CVEs for specific technologies.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -tech-detect -silent -o hosts_tech.txt
# ----------------------------------------------------------------
# COMMAND 30: httpx with Web Server Detection
# Identifies the web server (Apache, Nginx, IIS, Tomcat, etc.).
# Different servers have different vulnerability profiles.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -web-server -silent -o hosts_server.txt
# ----------------------------------------------------------------
# COMMAND 31: httpx with IP Resolution
# Maps each subdomain to its IP address.
# Useful for identifying shared hosting and cloud providers.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -ip -silent -o hosts_ip.txt
# ----------------------------------------------------------------
# COMMAND 32: httpx with CDN Detection
# Identifies if a host is behind a CDN (Cloudflare, Akamai, etc.).
# Hosts NOT behind a CDN are often more interesting targets.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -cdn -silent -o hosts_cdn.txt
# ----------------------------------------------------------------
# COMMAND 33: httpx with Response Time
# Slow response times can indicate backend processing or
# potential for timing-based attacks.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -response-time -silent -o hosts_response.txt
# ----------------------------------------------------------------
# COMMAND 34: httpx with Content Type
# Identifies the content type of the response.
# JSON responses often indicate API endpoints.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -content-type -silent -o hosts_content.txt
# ----------------------------------------------------------------
# COMMAND 35: httpx with Final URL (Follow Redirects)
# Follows all redirects to find the final destination URL.
# Useful for discovering redirect chains and open redirects.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -follow-redirects -silent -o hosts_final.txt
# ----------------------------------------------------------------
# COMMAND 36: httpx - Match Specific Strings in Response Body
# Find hosts with specific keywords like "staging", "admin",
# "debug", "internal", "test", "dev", "beta", "api".
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -match-string "staging" -silent -o staging_hosts.txt
httpx -l all_resolved_subs.txt -match-string "admin" -silent -o admin_hosts.txt
httpx -l all_resolved_subs.txt -match-string "debug" -silent -o debug_hosts.txt
# ----------------------------------------------------------------
# COMMAND 37: httpx - Filter by Status Code
# Focus on specific status codes. 403 hosts are often
# bypassable with header manipulation or path traversal.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -mc 200 -silent -o hosts_200.txt
httpx -l all_resolved_subs.txt -mc 403 -silent -o hosts_403.txt
httpx -l all_resolved_subs.txt -mc 401 -silent -o hosts_401.txt
# ----------------------------------------------------------------
# COMMAND 38: httpx - Extract Response Headers
# Look for security headers (or the lack thereof).
# Missing security headers are reportable findings.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -include-response-header -silent | \
grep -v "X-Frame-Options\|Content-Security-Policy\|X-XSS-Protection" > missing_security_headers.txt
# ----------------------------------------------------------------
# COMMAND 39: httpx - Probe Specific Ports
# Check for web services running on non-standard ports.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt -ports 80,443,8080,8443,3000,5000,8000,9000,9090,4443 \
-silent -o hosts_all_ports.txt
# ----------------------------------------------------------------
# COMMAND 40: THE ULTIMATE httpx ONE-LINER
# Get everything in a single pass. This is the most efficient
# way to run httpx and the recommended starting point.
# ----------------------------------------------------------------
httpx -l all_resolved_subs.txt \
-status-code -title -tech-detect -web-server -ip -cdn \
-content-type -follow-redirects \
-silent -o hosts_full.txt
echo "[+] Live hosts discovered: $(wc -l < live_hosts.txt)"
Port Scanning
Commands 41–55Port scanning reveals services running on non-standard ports that are often overlooked by other hunters. A forgotten Jenkins instance on port 8080, an exposed Redis database on port 6379, or an unprotected Kubernetes API on port 6443 can all lead to critical findings. Use a layered approach: start fast with naabu or rustscan, then follow up with nmap for service detection.
# ----------------------------------------------------------------
# COMMAND 41: naabu - Top 100 Ports (Fast)
# The fastest port scanner for bug bounty. Built by ProjectDiscovery.
# Install: go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
# ----------------------------------------------------------------
naabu -list live_hosts.txt -top-ports 100 -silent -o ports_top100.txt
# ----------------------------------------------------------------
# COMMAND 42: naabu - Common Web Ports
# Focus on ports commonly used for web applications.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 80,443,8080,8443,3000,5000,8000,9000,9090,4443,10443 \
-silent -o ports_web.txt
# ----------------------------------------------------------------
# COMMAND 43: naabu - Full Port Scan (All 65535 Ports)
# Comprehensive but slow. Run overnight or in a tmux session.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p - -silent -o ports_all.txt
# ----------------------------------------------------------------
# COMMAND 44: nmap - Top Ports with Service & Version Detection
# The gold standard for service identification.
# -sV: Version detection, -sC: Default scripts
# ----------------------------------------------------------------
nmap -iL live_hosts.txt --top-ports 100 -sV -sC -oN nmap_top100.txt
# ----------------------------------------------------------------
# COMMAND 45: nmap - Quick Scan (Fast)
# -F: Fast mode (top 100 ports), -T4: Aggressive timing
# ----------------------------------------------------------------
nmap -iL live_hosts.txt -F -T4 -oN nmap_quick.txt
# ----------------------------------------------------------------
# COMMAND 46: masscan - Ultra-Fast Full Port Scan
# Can scan the entire internet in under 6 minutes.
# WARNING: Very noisy. Use with caution and only on authorized targets.
# ----------------------------------------------------------------
masscan -iL live_hosts.txt -p1-65535 --rate=1000 -oL masscan.txt
# ----------------------------------------------------------------
# COMMAND 47: rustscan - The Fastest Port Scanner
# Written in Rust. Scans all 65535 ports in seconds.
# Install: https://github.com/RustScan/RustScan/releases
# ----------------------------------------------------------------
rustscan -a $(cat live_hosts.txt | tr '\n' ',') -- -A -sV
# ----------------------------------------------------------------
# COMMAND 48: naabu - Find Open RDP (Remote Desktop Protocol)
# Open RDP (3389) is often a high-severity finding.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 3389 -silent -o ports_rdp.txt
# ----------------------------------------------------------------
# COMMAND 49: naabu - Find Open SSH
# Default SSH port. Look for weak credentials or outdated versions.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 22 -silent -o ports_ssh.txt
# ----------------------------------------------------------------
# COMMAND 50: naabu - Find Open SMB
# SMB (445) is a common target for lateral movement and data exfil.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 445 -silent -o ports_smb.txt
# ----------------------------------------------------------------
# COMMAND 51: naabu - Find Exposed Databases
# Exposed databases are critical findings in bug bounties.
# MySQL(3306), PostgreSQL(5432), MSSQL(1433), MongoDB(27017),
# Redis(6379), Elasticsearch(9200), Cassandra(9042)
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 3306,5432,1433,27017,6379,9200,9042,5984 \
-silent -o ports_db.txt
# ----------------------------------------------------------------
# COMMAND 52: naabu - Find Exposed Admin Panels & Dev Tools
# Jenkins(8080), Grafana(3000), Kibana(5601), Prometheus(9090),
# Portainer(9000), Jupyter(8888), RabbitMQ(15672)
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 8080,3000,5601,9090,9000,8888,15672,4848 \
-silent -o ports_admin.txt
# ----------------------------------------------------------------
# COMMAND 53: naabu - Find Kubernetes & Docker Services
# Kubernetes API(6443), Docker API(2375/2376), etcd(2379)
# ----------------------------------------------------------------
naabu -list live_hosts.txt -p 6443,2375,2376,2379,10250 \
-silent -o ports_k8s_docker.txt
# ----------------------------------------------------------------
# COMMAND 54: nmap - Vulnerability Script Scan
# Run Nmap's built-in vulnerability detection scripts.
# ----------------------------------------------------------------
nmap -iL live_hosts.txt --script vuln -oN nmap_vuln.txt
# ----------------------------------------------------------------
# COMMAND 55: Combined Port Scan + httpx Probe
# Discover open ports and immediately probe them for web services.
# ----------------------------------------------------------------
naabu -list live_hosts.txt -top-ports 1000 -silent | \
httpx -silent -status-code -title -o web_services_all_ports.txt
Content Discovery
Commands 56–75Content discovery uncovers hidden files, directories, API endpoints, and parameters that are not publicly linked. This is where many high-severity bugs are found: exposed .git directories, backup files, admin panels, and undocumented API endpoints. Use a combination of directory brute-forcing, web crawling, and JavaScript analysis for maximum coverage.
# ----------------------------------------------------------------
# COMMAND 56: feroxbuster - Fast Directory Brute Force
# A fast, recursive content discovery tool written in Rust.
# Install: https://github.com/epi052/feroxbuster/releases
# ----------------------------------------------------------------
feroxbuster -u https://target.com \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-t 50 -o dirs_fast.txt
# ----------------------------------------------------------------
# COMMAND 57: feroxbuster - Comprehensive Directory Scan
# Use the large raft wordlist for maximum coverage.
# ----------------------------------------------------------------
feroxbuster -u https://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
-t 30 --depth 3 -o dirs_full.txt
# ----------------------------------------------------------------
# COMMAND 58: feroxbuster - File Discovery
# Hunt for specific file types: config files, backups, logs.
# ----------------------------------------------------------------
feroxbuster -u https://target.com \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
-t 30 -o files.txt
# ----------------------------------------------------------------
# COMMAND 59: feroxbuster - API Endpoint Discovery
# Discover REST API endpoints using a dedicated wordlist.
# ----------------------------------------------------------------
feroxbuster -u https://target.com/api \
-w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt \
-t 30 -o api_endpoints.txt
# ----------------------------------------------------------------
# COMMAND 60: ffuf - Backup File Discovery
# Find backup files that may contain source code or credentials.
# ----------------------------------------------------------------
ffuf -u https://target.com/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/backup_files.txt \
-mc 200,301,302 -o backups.txt -of json
# ----------------------------------------------------------------
# COMMAND 61: ffuf - Git Directory Exposure
# An exposed .git directory can leak the entire source code.
# ----------------------------------------------------------------
ffuf -u https://target.com/.git/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-mc 200 -o git_exposed.txt
# ----------------------------------------------------------------
# COMMAND 62: ffuf - Configuration File Discovery
# Find exposed configuration files with credentials or secrets.
# ----------------------------------------------------------------
ffuf -u https://target.com/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/config_files.txt \
-mc 200 -o configs.txt
# ----------------------------------------------------------------
# COMMAND 63: ffuf - Subdomain Fuzzing (Virtual Host Discovery)
# Discover virtual hosts that are not in DNS by fuzzing the
# Host header. Useful for finding internal applications.
# ----------------------------------------------------------------
ffuf -u https://target.com/ \
-H "Host: FUZZ.target.com" \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-mc 200,301,302 -o vhosts.txt
# ----------------------------------------------------------------
# COMMAND 64: dirsearch - Comprehensive Web Path Scanner
# A mature and reliable directory scanner with many features.
# Install: pip3 install dirsearch
# ----------------------------------------------------------------
dirsearch -u https://target.com -e php,asp,aspx,jsp,html,js,txt,bak \
-o dirsearch_results.txt
# ----------------------------------------------------------------
# COMMAND 65: gobuster - Directory Mode
# Fast and reliable directory brute-forcing.
# ----------------------------------------------------------------
gobuster dir -u https://target.com \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-t 50 -o gobuster_dirs.txt
# ----------------------------------------------------------------
# COMMAND 66: katana - Modern Web Crawler
# A fast, configurable web crawler from ProjectDiscovery.
# Supports JavaScript rendering with headless browser.
# Install: go install github.com/projectdiscovery/katana/cmd/katana@latest
# ----------------------------------------------------------------
katana -u https://target.com -depth 3 -jc -o katana_results.txt
# ----------------------------------------------------------------
# COMMAND 67: gospider - Fast Web Crawler
# Crawls a website and extracts all URLs, forms, and endpoints.
# Install: go install github.com/jaeles-project/gospider@latest
# ----------------------------------------------------------------
gospider -s "https://target.com" -c 10 -d 3 -o gospider_results/
# ----------------------------------------------------------------
# COMMAND 68: hakrawler - Simple & Fast Web Crawler
# Extracts URLs, forms, and JavaScript files from a website.
# Install: go install github.com/hakluke/hakrawler@latest
# ----------------------------------------------------------------
echo "https://target.com" | hakrawler -depth 3 -insecure | tee hakrawler_results.txt
# ----------------------------------------------------------------
# COMMAND 69: waybackurls - Historical URL Mining
# Extracts all URLs ever crawled by the Wayback Machine.
# Great for finding old, forgotten endpoints.
# ----------------------------------------------------------------
cat live_hosts.txt | waybackurls | sort -u > wayback_all_urls.txt
# ----------------------------------------------------------------
# COMMAND 70: waybackurls - Extract URLs with Parameters
# URLs with parameters are prime targets for injection attacks.
# ----------------------------------------------------------------
cat live_hosts.txt | waybackurls | grep "?" | sort -u > wayback_params.txt
# ----------------------------------------------------------------
# COMMAND 71: getJS - JavaScript File Discovery
# Finds all JavaScript files linked from a list of hosts.
# Install: go install github.com/003random/getJS@latest
# ----------------------------------------------------------------
getJS -input live_hosts.txt -output js_files.txt
# ----------------------------------------------------------------
# COMMAND 72: LinkFinder - Endpoint Discovery in JS Files
# Parses JavaScript files to find hidden API endpoints and paths.
# Install: pip3 install linkfinder
# ----------------------------------------------------------------
python3 linkfinder.py -i https://target.com/app.js -o cli
# Or scan all JS files from a list:
cat js_files.txt | xargs -I {} python3 linkfinder.py -i {} -o cli | sort -u > js_endpoints.txt
# ----------------------------------------------------------------
# COMMAND 73: SecretFinder - Secret Detection in JS Files
# Finds API keys, tokens, passwords, and other secrets in JS files.
# Install: pip3 install secretfinder
# ----------------------------------------------------------------
python3 SecretFinder.py -i https://target.com/app.js -o cli
# Or scan all JS files:
cat js_files.txt | xargs -I {} python3 SecretFinder.py -i {} -o cli > secrets_found.txt
# ----------------------------------------------------------------
# COMMAND 74: arjun - HTTP Parameter Discovery
# Discovers hidden GET and POST parameters for a given URL.
# Install: pip3 install arjun
# ----------------------------------------------------------------
arjun -u https://target.com/api/endpoint -oT arjun_params.txt
# Scan multiple URLs:
arjun -i live_hosts.txt -oT arjun_all_params.txt
# ----------------------------------------------------------------
# COMMAND 75: Combine All Discovered URLs & Endpoints
# Merge all content discovery results into a master URL list.
# ----------------------------------------------------------------
cat katana_results.txt gospider_results/*.txt hakrawler_results.txt \
wayback_all_urls.txt js_endpoints.txt 2>/dev/null | \
grep "target.com" | sort -u > all_discovered_urls.txt
echo "[+] Total unique URLs discovered: $(wc -l < all_discovered_urls.txt)"
Automated Vulnerability Scanning — Nuclei
Commands 76–88Nuclei by ProjectDiscovery is the most powerful open-source vulnerability scanner available to bug bounty hunters. It uses a YAML-based template system with over 9,000 community-contributed templates covering CVEs, misconfigurations, exposed panels, default credentials, and much more. Running Nuclei against your live hosts is one of the highest-ROI activities in bug bounty hunting.
nuclei -update-templates before starting a new engagement to ensure you have the latest templates. New templates are added daily by the community.
# ----------------------------------------------------------------
# COMMAND 76: Update Nuclei Templates (Always Do This First!)
# Install: go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# ----------------------------------------------------------------
nuclei -update-templates
# ----------------------------------------------------------------
# COMMAND 77: Basic Nuclei Scan (Single Target)
# Runs all templates against a single URL.
# ----------------------------------------------------------------
nuclei -u https://target.com -o nuclei_single.txt
# ----------------------------------------------------------------
# COMMAND 78: Nuclei Scan (List of Targets)
# Runs all templates against a list of live hosts.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -o nuclei_all.txt
# ----------------------------------------------------------------
# COMMAND 79: Nuclei - CVE Scanning
# Focus exclusively on known CVEs. High signal-to-noise ratio.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t cves/ -severity critical,high -o nuclei_cves.txt
# ----------------------------------------------------------------
# COMMAND 80: Nuclei - Exposed Panels & Login Pages
# Find admin panels, login pages, and management interfaces.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t exposed-panels/ -o nuclei_panels.txt
# ----------------------------------------------------------------
# COMMAND 81: Nuclei - Misconfiguration Detection
# Find common misconfigurations in web servers and applications.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t misconfiguration/ -o nuclei_misconfig.txt
# ----------------------------------------------------------------
# COMMAND 82: Nuclei - Default Credentials Testing
# Test for default usernames and passwords on admin panels.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t default-logins/ -o nuclei_default_creds.txt
# ----------------------------------------------------------------
# COMMAND 83: Nuclei - Subdomain Takeover Detection
# Detect CNAME records pointing to unclaimed third-party services.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t dns/subdomain-takeover.yaml -o nuclei_takeover.txt
# ----------------------------------------------------------------
# COMMAND 84: Nuclei - Technology Detection
# Identify the technology stack of each host.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t technologies/ -o nuclei_tech.txt
# ----------------------------------------------------------------
# COMMAND 85: Nuclei - Exposure Detection
# Find exposed sensitive files, directories, and data.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -t exposures/ -o nuclei_exposures.txt
# ----------------------------------------------------------------
# COMMAND 86: Nuclei - Headless Browser Scanning
# Use a headless browser for JavaScript-heavy applications.
# Catches vulnerabilities that require JavaScript execution.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -headless -t headless/ -o nuclei_headless.txt
# ----------------------------------------------------------------
# COMMAND 87: Nuclei - Rate-Limited Scan (Respectful)
# Limit requests per second to avoid overwhelming the target
# and to stay within bug bounty program guidelines.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt -rate-limit 50 -bulk-size 10 -o nuclei_ratelimited.txt
# ----------------------------------------------------------------
# COMMAND 88: Nuclei - Full Comprehensive Scan
# The ultimate Nuclei command. Covers all template categories.
# Run this for a complete automated vulnerability assessment.
# ----------------------------------------------------------------
nuclei -l live_hosts.txt \
-t cves/,exposures/,misconfiguration/,exposed-panels/,default-logins/,technologies/ \
-severity critical,high,medium \
-rate-limit 100 \
-o nuclei_comprehensive.txt
echo "[+] Nuclei scan complete. Results saved to nuclei_comprehensive.txt"
Advanced Recon Techniques
Commands 89–100These advanced techniques go beyond the basics and target specific, high-value attack surfaces: cloud storage misconfigurations, exposed Git repositories, secret leakage in source code, subdomain takeovers, and visual reconnaissance. These are the techniques that separate top-tier bug bounty hunters from the rest.
# ----------------------------------------------------------------
# COMMAND 89: Cloud Enumeration - cloud_enum
# Discovers cloud assets (S3, Azure Blob, GCP Storage) for a target.
# Install: pip3 install cloud-enum
# ----------------------------------------------------------------
cloud_enum -k target -k targetcompany -k target-company \
--disable-azure --disable-gcp -o cloud_enum_results.txt
# ----------------------------------------------------------------
# COMMAND 90: AWS S3 Bucket Enumeration
# Check if a specific S3 bucket is publicly accessible.
# ----------------------------------------------------------------
aws s3 ls s3://target-company-assets --no-sign-request
aws s3 ls s3://target-backup --no-sign-request
aws s3 ls s3://target-dev --no-sign-request
# ----------------------------------------------------------------
# COMMAND 91: S3Scanner - Bulk S3 Bucket Scanning
# Scans a list of potential bucket names for public access.
# Install: pip3 install s3scanner
# ----------------------------------------------------------------
echo -e "target\ntarget-dev\ntarget-staging\ntarget-backup\ntarget-assets" | \
s3scanner scan --bucket-file -
# ----------------------------------------------------------------
# COMMAND 92: TruffleHog - Secret Detection in Git Repos
# Scans Git repositories for high-entropy strings and secrets.
# Install: pip3 install truffleHog
# ----------------------------------------------------------------
trufflehog git https://github.com/target-org/target-repo.git
# Scan a local directory:
trufflehog filesystem /path/to/cloned/repo
# ----------------------------------------------------------------
# COMMAND 93: git-dumper - Dump Exposed .git Directories
# Reconstructs source code from an exposed .git directory.
# Install: pip3 install git-dumper
# ----------------------------------------------------------------
git-dumper https://target.com/.git/ ~/git-dumper-output/
# After dumping, search for secrets:
grep -r "password\|secret\|api_key\|token\|credential" ~/git-dumper-output/
# ----------------------------------------------------------------
# COMMAND 94: Subdomain Takeover - subzy
# Checks a list of subdomains for potential takeover vulnerabilities.
# Install: go install github.com/LukaSikic/subzy@latest
# ----------------------------------------------------------------
subzy run --targets live_hosts.txt --output subzy_results.txt
# ----------------------------------------------------------------
# COMMAND 95: Subdomain Takeover - subjack
# Another excellent subdomain takeover detection tool.
# Install: go install github.com/haccer/subjack@latest
# ----------------------------------------------------------------
subjack -w live_hosts.txt -t 100 -timeout 30 -o subjack_results.txt -ssl
# ----------------------------------------------------------------
# COMMAND 96: Visual Reconnaissance - gowitness
# Takes screenshots of all live hosts for visual review.
# Install: go install github.com/sensepost/gowitness@latest
# ----------------------------------------------------------------
gowitness file -f live_hosts.txt --screenshot-path ./screenshots/
# Generate an HTML report:
gowitness report generate
# ----------------------------------------------------------------
# COMMAND 97: Visual Reconnaissance - aquatone
# Takes screenshots and generates a beautiful HTML report.
# Install: https://github.com/michenriksen/aquatone/releases
# ----------------------------------------------------------------
cat live_hosts.txt | aquatone -out aquatone_report/ -threads 5
# ----------------------------------------------------------------
# COMMAND 98: Shodan CLI - Advanced Search
# Search Shodan for specific services, technologies, and vulnerabilities.
# Install: pip3 install shodan
# ----------------------------------------------------------------
shodan search "org:\"Target Organization\" http.title:\"Admin\""
shodan search "ssl.cert.subject.cn:*.target.com"
shodan search "hostname:target.com port:8080"
# ----------------------------------------------------------------
# COMMAND 99: Google Dorks - Manual OSINT
# Use Google's advanced search operators to find sensitive info.
# Run these manually in your browser.
# ----------------------------------------------------------------
# site:target.com filetype:pdf OR filetype:xls OR filetype:docx
# site:target.com inurl:admin OR inurl:login OR inurl:dashboard
# site:target.com intext:"password" OR intext:"api_key" OR intext:"secret"
# site:github.com "target.com" "api_key"
# site:pastebin.com "target.com"
# inurl:target.com ext:env OR ext:log OR ext:bak OR ext:sql
# ----------------------------------------------------------------
# COMMAND 100: anew - Track New Subdomains Over Time
# Use anew to continuously monitor for new subdomains.
# Install: go install github.com/tomnomnom/anew@latest
# ----------------------------------------------------------------
# Run this daily via cron to track new assets:
subfinder -d target.com -all -silent | anew tracked_subs.txt | \
httpx -silent | anew live_hosts_new.txt
AI-Powered Reconnaissance
Commands 101–108Artificial intelligence is transforming bug bounty hunting. AI can generate intelligent subdomain wordlists, craft targeted Google dorks, analyze technology stacks for vulnerabilities, prioritize targets, and generate professional reports. These Python scripts use the OpenAI API to supercharge your recon workflow. Set your API key as an environment variable: export OPENAI_API_KEY="your_key_here"
# ----------------------------------------------------------------
# COMMAND 101: AI Subdomain Wordlist Generator
# Generates intelligent, context-aware subdomain prefixes.
# Save as: ai_subdomain_gen.py
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
target = "target.com"
prompt = (
f"Generate 100 realistic subdomain prefixes for {target}. "
"Include: environments (dev, staging, uat, qa, prod, beta, alpha), "
"services (api, mail, ftp, vpn, cdn, static, assets, media, img), "
"regions (us-east, eu-west, ap-southeast, us-west, ca-central), "
"internal tools (jenkins, jira, confluence, gitlab, grafana, kibana), "
"and any other common subdomain patterns. One per line, no explanations."
)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
wordlist = response.choices[0].message.content.strip().split('\n')
with open('ai_wordlist.txt', 'w') as f:
f.write('\n'.join(wordlist))
print(f"[+] Generated {len(wordlist)} subdomain prefixes. Saved to ai_wordlist.txt")
"""
# ----------------------------------------------------------------
# COMMAND 102: AI Google Dorks Generator
# Creates highly targeted Google dorks for a specific company.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
target = "target.com"
company_name = "Target Company"
prompt = (
f"Generate 25 advanced Google dorks to find sensitive information "
f"about {company_name} ({target}). Include dorks for: "
"exposed configuration files (.env, config.php, settings.py), "
"exposed credentials in code (GitHub, GitLab, Bitbucket), "
"admin and login panels, API documentation, "
"exposed cloud storage (S3, Azure Blob), "
"employee information and org charts, "
"exposed databases and backups, "
"and any other high-value targets. Format each dork on its own line."
)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
"""
# ----------------------------------------------------------------
# COMMAND 103: AI Technology Stack Vulnerability Analyzer
# Analyzes httpx tech-detect output and suggests attack vectors.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
with open('hosts_tech.txt', 'r') as f:
tech_data = f.read()
prompt = (
"You are an expert bug bounty hunter. Analyze the following technology "
"stack detection output from httpx. For each unique technology identified:\n"
"1. List known CVEs or vulnerability classes relevant to that technology.\n"
"2. Suggest specific Nuclei templates to run.\n"
"3. Recommend manual testing techniques.\n"
"4. Prioritize the most promising attack vectors.\n\n"
f"Technology Detection Output:\n{tech_data}"
)
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
with open('ai_tech_analysis.txt', 'w') as f:
f.write(response.choices[0].message.content)
print("[+] AI technology analysis saved to ai_tech_analysis.txt")
"""
# ----------------------------------------------------------------
# COMMAND 104: AI Target Prioritization
# Analyzes all recon data and ranks targets by potential value.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
with open('hosts_full.txt', 'r') as f:
hosts_data = f.read()
prompt = (
"You are an expert bug bounty hunter. Analyze the following list of "
"live hosts with their status codes, titles, and technologies. "
"Identify and rank the top 15 most promising targets for bug bounty "
"hunting. For each target, explain:\n"
"1. Why it is interesting (technology, title, status code).\n"
"2. What vulnerabilities to look for first.\n"
"3. Specific commands or tools to use next.\n\n"
f"Live Hosts Data:\n{hosts_data[:8000]}"
)
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
with open('ai_priorities.txt', 'w') as f:
f.write(response.choices[0].message.content)
print("[+] AI target prioritization saved to ai_priorities.txt")
"""
# ----------------------------------------------------------------
# COMMAND 105: AI Recon Report Generator
# Generates a professional recon summary report from all findings.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
with open('live_hosts.txt', 'r') as f:
hosts = f.read()
with open('ports_top100.txt', 'r') as f:
ports = f.read()
with open('nuclei_comprehensive.txt', 'r') as f:
nuclei = f.read()
prompt = (
"Generate a professional, structured bug bounty reconnaissance report "
"in Markdown format. Include the following sections:\n"
"1. Executive Summary\n"
"2. Scope & Methodology\n"
"3. Assets Discovered (subdomains, live hosts)\n"
"4. Open Ports & Services\n"
"5. Technology Stack Analysis\n"
"6. Automated Findings (from Nuclei)\n"
"7. Recommended Next Steps\n"
"8. Risk Assessment\n\n"
f"Live Hosts ({len(hosts.splitlines())} total):\n{hosts[:2000]}\n\n"
f"Open Ports:\n{ports[:2000]}\n\n"
f"Nuclei Findings:\n{nuclei[:3000]}"
)
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
with open('recon_report.md', 'w') as f:
f.write(response.choices[0].message.content)
print("[+] Professional recon report saved to recon_report.md")
"""
# ----------------------------------------------------------------
# COMMAND 106: AI Custom Nuclei Template Generator
# Generates a Nuclei template for a specific vulnerability.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
vuln_description = "Login page at /admin/login that returns different error messages for valid vs invalid usernames, enabling username enumeration."
prompt = (
"Generate a valid Nuclei YAML template to detect the following vulnerability:\n\n"
f"{vuln_description}\n\n"
"The template should follow the official Nuclei template format and include "
"proper id, info (name, author, severity, description, tags), "
"and the appropriate requests/matchers section."
)
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
template = response.choices[0].message.content
with open('custom_template.yaml', 'w') as f:
f.write(template)
print("[+] Custom Nuclei template saved to custom_template.yaml")
print("[*] Run with: nuclei -u https://target.com -t custom_template.yaml")
"""
# ----------------------------------------------------------------
# COMMAND 107: AI-Powered Parameter Fuzzing Payload Generator
# Generates context-aware fuzzing payloads for discovered parameters.
# ----------------------------------------------------------------
"""
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
endpoint = "https://target.com/api/search?q=test&category=products&sort=price"
prompt = (
f"Analyze this URL and its parameters: {endpoint}\n\n"
"Generate a comprehensive list of fuzzing payloads to test for:\n"
"1. SQL Injection (error-based, time-based, boolean-based)\n"
"2. XSS (reflected, stored, DOM-based)\n"
"3. SSRF (internal network probing)\n"
"4. Path Traversal\n"
"5. Command Injection\n"
"6. SSTI (Server-Side Template Injection)\n"
"7. Open Redirect\n\n"
"Format as a JSON object with vulnerability type as key and list of payloads as value."
)
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)
"""
# ----------------------------------------------------------------
# COMMAND 108: Complete AI-Powered Recon Automation Pipeline
# A full end-to-end recon pipeline with AI analysis at each stage.
# Save as: ai_recon_pipeline.sh
# Usage: bash ai_recon_pipeline.sh target.com
# ----------------------------------------------------------------
"""
#!/bin/bash
TARGET=$1
if [ -z "$TARGET" ]; then
echo "Usage: $0 target.com"
exit 1
fi
mkdir -p recon_$TARGET
cd recon_$TARGET
echo "[*] Phase 1: Subdomain Discovery for $TARGET"
subfinder -d $TARGET -all -silent | tee subs.txt
echo "[+] Found $(wc -l < subs.txt) subdomains"
echo "[*] Phase 2: DNS Resolution"
cat subs.txt | dnsx -silent | tee resolved.txt
echo "[+] Resolved $(wc -l < resolved.txt) subdomains"
echo "[*] Phase 3: Live Host Detection"
httpx -l resolved.txt -status-code -title -tech-detect -web-server -ip -cdn \
-silent | tee hosts_full.txt
grep -oE "https?://[^ ]+" hosts_full.txt | sort -u > live_hosts.txt
echo "[+] Found $(wc -l < live_hosts.txt) live hosts"
echo "[*] Phase 4: Port Scanning"
naabu -list live_hosts.txt -top-ports 100 -silent | tee ports.txt
echo "[+] Port scan complete"
echo "[*] Phase 5: Nuclei Scanning"
nuclei -l live_hosts.txt -t cves/,exposures/,misconfiguration/ \
-severity critical,high -rate-limit 50 | tee nuclei.txt
echo "[+] Nuclei scan complete"
echo "[*] Phase 6: AI Analysis"
python3 <<PYEOF
import openai, os
openai.api_key = os.getenv("OPENAI_API_KEY")
with open("hosts_full.txt") as f: hosts = f.read()
with open("nuclei.txt") as f: nuclei = f.read()
prompt = f"Analyze this recon data and provide a prioritized action plan:\n\nHosts:\n{hosts[:4000]}\n\nNuclei:\n{nuclei[:4000]}"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
with open("ai_action_plan.txt", "w") as f:
f.write(response.choices[0].message.content)
print("[+] AI action plan saved to ai_action_plan.txt")
PYEOF
echo "[*] Recon complete for $TARGET"
echo "[*] Results saved in: recon_$TARGET/"
ls -la
"""
Master One-Liners
These one-liners chain multiple tools together using Unix pipes to perform complex recon workflows in a single command. They are the hallmark of an efficient bug bounty hunter.
# The Ultimate Passive Recon One-Liner
# Discover subdomains, probe for live hosts, detect tech stack
subfinder -d target.com -all -silent | \
httpx -silent -status-code -title -tech-detect -web-server | \
tee passive_recon.txt
# The Full Active Recon Pipeline (Use with caution!)
subfinder -d target.com -all -silent | dnsx -silent | \
httpx -silent | tee live_hosts.txt | \
nuclei -t cves/,exposures/ -severity critical,high | \
tee nuclei_results.txt
# Subdomain Discovery + Visual Recon
subfinder -d target.com -all -silent | httpx -silent | \
gowitness file -f - --screenshot-path ./screenshots/
# Find All URLs with Parameters (for injection testing)
subfinder -d target.com -all -silent | httpx -silent | \
katana -jc | grep "?" | sort -u | tee params.txt
# Discover & Scan for Subdomain Takeovers
subfinder -d target.com -all -silent | httpx -silent | \
nuclei -t dns/subdomain-takeover.yaml | tee takeovers.txt
# Find Exposed Admin Panels
subfinder -d target.com -all -silent | httpx -silent | \
nuclei -t exposed-panels/ | tee admin_panels.txt
# JavaScript Secret Hunting Pipeline
subfinder -d target.com -all -silent | httpx -silent | \
getJS -output js_files.txt && \
cat js_files.txt | xargs -I {} python3 SecretFinder.py -i {} -o cli | \
tee secrets.txt
# Port Scan + Web Service Discovery
subfinder -d target.com -all -silent | dnsx -silent | \
naabu -top-ports 1000 -silent | \
httpx -silent -status-code -title | tee web_services.txt
# Continuous Monitoring (run via cron daily)
subfinder -d target.com -all -silent | anew all_subs.txt | \
httpx -silent | anew live_hosts.txt | \
nuclei -t cves/ -severity critical | \
tee new_findings_$(date +%Y%m%d).txt
Quick Tips & Best Practices
cat all_subs.txt | grep -v "out-of-scope.com" | tee in_scope.txt
httpx -l subs.txt -rate-limit 50 -silent and nuclei -l hosts.txt -rate-limit 30
tmux new -s recon to start, Ctrl+B, D to detach, tmux attach -t recon to reattach.
anew tool by Tomnomnom appends only new lines to a file, making it perfect for tracking new assets over time. Run your recon pipeline daily via cron.
puredns bruteforce wordlist.txt target.com -r resolvers.txt
subfinder -d target.com -silent & amass enum -passive -d target.com & assetfinder target.com & wait
Tool Reference Table
| Tool | Category | Description | Install |
|---|---|---|---|
| subfinder | Subdomain Discovery | Fast passive subdomain enumeration from 40+ sources | GitHub |
| amass | Subdomain Discovery | OWASP's comprehensive attack surface management tool | GitHub |
| assetfinder | Subdomain Discovery | Fast and lightweight subdomain finder by Tomnomnom | GitHub |
| puredns | DNS Brute-Forcing | Accurate DNS brute-forcing with wildcard filtering | GitHub |
| dnsx | DNS Resolution | Fast DNS toolkit for resolving and querying subdomains | GitHub |
| shuffledns | DNS Brute-Forcing | Wrapper around massdns for subdomain brute-forcing | GitHub |
| dnsgen | DNS Permutation | Generates subdomain permutations from a known list | GitHub |
| httpx | Live Host Detection | Fast HTTP toolkit for probing and fingerprinting hosts | GitHub |
| naabu | Port Scanning | Fast port scanner with SYN/CONNECT probe support | GitHub |
| nmap | Port Scanning | The industry-standard network scanner with scripting engine | nmap.org |
| masscan | Port Scanning | Internet-scale port scanner. Extremely fast. | GitHub |
| rustscan | Port Scanning | The fastest port scanner, written in Rust | GitHub |
| feroxbuster | Content Discovery | Fast, recursive content discovery tool written in Rust | GitHub |
| ffuf | Content Discovery | Fast web fuzzer written in Go. Highly flexible. | GitHub |
| katana | Web Crawling | Next-generation web crawling framework by ProjectDiscovery | GitHub |
| waybackurls | Historical Recon | Fetches all URLs from the Wayback Machine for a domain | GitHub |
| nuclei | Vulnerability Scanning | Fast, template-based vulnerability scanner with 9,000+ templates | GitHub |
| LinkFinder | JS Analysis | Discovers endpoints and parameters in JavaScript files | GitHub |
| SecretFinder | Secret Detection | Finds API keys, tokens, and secrets in JavaScript files | GitHub |
| trufflehog | Secret Detection | Finds secrets in Git repositories and filesystems | GitHub |
| cloud_enum | Cloud Recon | Multi-cloud asset enumeration (AWS, Azure, GCP) | GitHub |
| subzy | Subdomain Takeover | Subdomain takeover vulnerability checker | GitHub |
| gowitness | Visual Recon | Web screenshot utility with reporting capabilities | GitHub |
| arjun | Parameter Discovery | HTTP parameter discovery suite | GitHub |
| anew | Utility | Appends new lines to files, perfect for tracking changes | GitHub |
References & Further Reading
- CipherOps GitBook — "50 Copy-Paste Recon Commands That Find Bugs" (Original inspiration for this guide)
- CipherOps GitBook — Bug Bounty Notes (Full Collection)
- ProjectDiscovery — Open-Source Security Tools (httpx, nuclei, subfinder, naabu, katana, dnsx)
- Nuclei Templates — Community Curated Vulnerability Templates (9,000+)
- KingOfBugBountyTips — Community Bug Bounty Tips & Tricks
- SecLists — The Security Tester's Companion (Wordlists)
- puredns — Fast Domain Resolver and Subdomain Brute-Forcing Tool
- LinkFinder — Endpoint Discovery in JavaScript Files
- HackerOne — A Guide to Subdomain Takeovers 2.0
- ProjectDiscovery Blog — Reconnaissance 102: Subdomain Enumeration
- Intigriti — Complete Guide to Shodan & Censys for Bug Bounty
- BugBase — Automating Bug Bounties with Nuclei Templates
- Trickest — High-Quality DNS Resolver Lists
- Assetnote — Commonspeak2 Wordlists (Data-Driven Subdomain Wordlists)
Comments
Post a Comment