Skip to content

Repository files navigation

 ██████╗ ███████╗ ██████╗ ██████╗ ███╗ ██╗ ████████╗ ██████╗ ██████╗ ██╗
██╔══██╗██╔════╝██╔════╝██╔═══██╗████╗ ██║ ╚══██╔══╝██╔═══██╗██╔═══██╗██║
██████╔╝█████╗ ██║ ██║ ██║██╔██╗ ██║ ██║ ██║ ██║██║ ██║██║
██╔══██╗██╔══╝ ██║ ██║ ██║██║╚██╗██║ ██║ ██║ ██║██║ ██║██║
██║ ██║███████╗╚██████╗╚██████╔╝██║ ╚████║ ██║ ╚██████╔╝╚██████╔╝███████╗
╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝

A unified, terminal-based recon tool for bug bounty hunters and pentesters.
Combines subfinder · httpx · chaos · uncover · Wayback CDX into one powerful CLI.

Go VersionLicenseAuthorRelease


⚡ Installation

One-line Install (recommended)

go install -v github.com/hackthacker/recontool@latest

Requires Go 1.21+. After install, the recontool binary is available in $GOPATH/bin (or ~/go/bin).

From Source

git clone https://github.com/hackthacker/recontool
cd recontool
go build -o recontool .
./recontool -h

🚀 Quick Start

# Full automated recon pipeline (everything at once)
recontool -d example.com
# With chaos (projectdiscovery cloud key)
recontool scan -d example.com -key YOUR_PDCP_KEY
# With uncover OSINT search
recontool scan -d example.com -key PDCP_KEY -uq "ssl:example.com" -ue shodan,censys

📖 Commands

recontool [command] [flags]
COMMANDS:
scan Full automated recon pipeline
subfinder Run subfinder subdomain enumeration
httpx Run httpx HTTP probing
chaos Run chaos subdomain search
uncover Run uncover OSINT search
GLOBAL:
-v, --version Show version info
-h, --help Show help
-u, --update Check for updates on GitHub

🔁 Full Pipeline — recontool scan

Runs 5 tools in sequence, saves all output inside a <domain>/ folder:

recontool scan -d example.com

Pipeline Steps

StepToolOutput File
1Wayback CDX (4 queries)wayback_main.txt, wayback_wildcard.txt, wayback_specific.txt, wayback_sensitive.txt
2subfindersubfinder.txt
3chaos (optional, needs -key)chaos.txt
4httpx (all status codes)httpx.txt, 1xx.txt, 2xx.txt, 3xx.txt, 4xx.txt, 5xx.txt
5uncover (optional, needs -uq)uncover.txt

Scan Flags

 -d string target domain (required)
-key string ProjectDiscovery Cloud API key (or set PDCP_API_KEY env)
-uq string uncover search query (e.g. 'ssl:example.com')
-ue string uncover engine(s) (default: shodan)
-ul int uncover result limit (default: 100)
-sf-all use ALL subfinder sources (slow but thorough)
-sf-timeout int subfinder timeout in seconds (default: 30)
-sf-threads int subfinder goroutines (default: 10)
-hx-threads int httpx threads (default: 50)
-hx-timeout int httpx timeout (default: 10)
-hx-title show page titles in httpx results
-hx-td show technologies (wappalyzer)
-silent suppress progress logs
-o string custom output folder name

🔍 subfinder

Full subfinder subdomain enumeration with all flags:

recontool subfinder -d example.com
recontool subfinder -d example.com -all -silent -o subs.txt
recontool subfinder -dL domains.txt -s shodan,crtsh -json
recontool subfinder -h # show all flags
FlagDescription
-dDomain(s) to enumerate (comma-separated)
-dLFile containing list of domains
-sSpecific sources (-s crtsh,github,shodan)
-allUse all available sources (slow)
-recursiveUse only recursive sources
-esExclude sources
-oOutput file
-oJJSONL output
-silentOnly print subdomains
-rlRate limit (requests/sec)
-tThreads (default: 10)
-timeoutTimeout in seconds
-proxyHTTP proxy
-configConfig file path
-pcProvider config file

🌐 httpx

Full HTTP probing with all flags + status-family splitting:

recontool httpx -l subfinder.txt -sc -title
recontool httpx -l hosts.txt -mc 200 -o live.txt -save-filtered
recontool httpx -u example.com -sc -json -o results.json
recontool httpx -h # show all flags
FlagDescription
-lInput file of hosts
-uTarget host(s) to probe
-scShow status code
-titleShow page title
-serverShow server name
-tdShow technologies (wappalyzer)
-ctShow content-type
-rtShow response time
-ipShow host IP
-cdnShow CDN/WAF
-mcMatch status codes (-mc 200,301)
-fcFilter status codes (-fc 404,403)
-msMatch response string
-fsFilter response string
-jJSONL output
-oOutput file
-save-filteredSave 1xx/2xx/3xx/4xx/5xx.txt files
-tThreads (default: 50)
-timeoutTimeout (default: 10s)
-proxyHTTP/SOCKS proxy
-frFollow redirects

💥 chaos

ProjectDiscovery Cloud subdomain dataset:

recontool chaos -d example.com -key YOUR_PDCP_KEY
recontool chaos -dL domains.txt -key PDCP_KEY -o subs.txt
recontool chaos -d example.com -key PDCP_KEY -count
recontool chaos -h # show all flags
FlagDescription
-keyPDCP API key (or set PDCP_API_KEY env)
-dDomain to search
-dLFile of domains
-countShow subdomain count only
-jsonJSONL output
-oOutput file
-silentOnly print results

Get your free API key at cloud.projectdiscovery.io


🔭 uncover

OSINT search across 15+ engines (Shodan, Censys, Fofa, etc.):

recontool uncover -q "org:example.com" -e shodan,censys,fofa
recontool uncover -shodan "ssl:example.com" -j -o results.json
recontool uncover -fofa "domain=example.com" -l 500
recontool uncover -h # show all flags
FlagDescription
-qSearch query
-eEngine(s): shodan,fofa,censys,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow,google,onyphe,driftnet,daydaymap
-asqAwesome search queries (e.g. jira)
-sQuery for shodan
-ffQuery for fofa
-csQuery for censys
-lLimit results (default: 100)
-jJSONL output
-fField: ip,port,host (default: ip:port)
-oOutput file
-proxyHTTP proxy

Configure engine API keys in: ~/.config/uncover/provider-config.yaml


🕰️ Wayback CDX

Automatically queries 4 Wayback Machine CDX endpoints per domain:

FileQuery
wayback_main.txturl=www.domain/* — all archived URLs
wayback_wildcard.txturl=*.www.domain/* — wildcard subdomains
wayback_specific.txturl=https://www.domain/en/* — specific path
wayback_sensitive.txtFiltered: xls,xml,pdf,sql,zip,env,key,pem,config,bak,log...

📁 Output Structure

Running recontool -d example.com creates:

example.com/
├── subfinder.txt ← all discovered subdomains
├── chaos.txt ← chaos subdomains (if -key given)
├── httpx.txt ← ALL HTTP probe results
├── 1xx.txt ← informational (100–199)
├── 2xx.txt ← success (200–299)
├── 3xx.txt ← redirects (300–399)
├── 4xx.txt ← client errors (400–499)
├── 5xx.txt ← server errors (500–599)
├── wayback_main.txt
├── wayback_wildcard.txt
├── wayback_specific.txt
├── wayback_sensitive.txt
└── uncover.txt ← OSINT results (if -uq given)

🛠️ Requirements

  • Go 1.21+
  • Optional: PDCP API key for chaos
  • Optional: Engine API keys in ~/.config/uncover/provider-config.yaml for uncover

📦 Powered By

PackagePurpose
projectdiscovery/subfinderSubdomain enumeration
projectdiscovery/httpxHTTP probing
projectdiscovery/chaos-clientChaos DB subdomains
projectdiscovery/uncoverOSINT engine search
Wayback CDX APIHistorical URL discovery

📜 License

MIT License — see LICENSE


Made with ❤️ by hackthacker

About

Unified reconnaissance CLI for subdomain discovery, HTTP probing, asset discovery, OSINT, and Wayback data combining subfinder, httpx, chaos, uncover, and Wayback CDX in one tool

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages