ReconFlow is a high-performance automated reconnaissance framework for bug bounty hunting and security assessments. It enumerates attack surface (subdomains, ports, directories, JS assets) and enriches results with vulnerability signals.
- Subdomain Enumeration: Passive + active enumeration with multiple tools
- subfinder, amass, assetfinder
- crt.sh scraping, DNS bruteforce
- Live Host Detection: HTTP probing with httpx
- Status codes, titles, technologies
- Port Scanning: Fast + deep scanning
- masscan (fast), nmap (service detection)
- Directory Bruteforcing: Intelligent scanning with ffuf
- Auto-calibration, wildcard detection
- JS Collection & Analysis: Crawling + secret detection
- katana, gau, waybackurls
- Regex patterns for API keys, tokens, endpoints
- CVE & Service Mapping: Correlate services with known vulnerabilities
- Subdomain Takeover Detection: Fingerprint-based identification
- Technology Fingerprinting: Wappalyzer-style detection
- Cloud Asset Discovery: S3, Azure, GCP storage detection
- DNS Analysis: Zone transfer checks, dangling DNS
- Correlation Engine: Links findings across stages
1. Subdomain Enumeration
2. DNS Analysis (Zone Transfer, CNAME, Takeover)
3. Live Host Detection
4. Port Scanning (masscan + nmap)
5. Directory Bruteforcing
6. JS Collection
7. JS Analysis
8. Technology Fingerprinting
9. CVE Mapping
10. Correlation & Reporting
# Build the Docker image
docker build -t reconflow .
# Run a basic scan
docker run --rm -it \
--cap-add NET_RAW --cap-add NET_ADMIN \
-v $(pwd)/output:/app/output \
reconflow scan -d example.com --full
# Resume an interrupted scan
docker run --rm -it \
--cap-add NET_RAW --cap-add NET_ADMIN \
-v $(pwd)/output:/app/output \
reconflow resume -d example.com# Start the container
docker-compose up reconflow
# Run a scan
docker-compose run reconflow scan -d example.com --full
# View results
ls -la output/example.com/# Install Go 1.24+
# Clone and build
git clone https://github.com/yourrepo/reconflow.git
cd reconflow
go mod download
go build -o reconflow ./cmd/reconflow
# Run
./reconflow scan -d example.com --full# Start a new scan
reconflow scan -d example.com --full
# Resume interrupted scan
reconflow resume -d example.com
# Check tool installation
reconflow install --check
# Install all tools
reconflow install --all
# Show version
reconflow versionResults are saved to output/<domain>/:
output/example.com/
├── state.db # SQLite database with all findings
├── subdomains.txt # Discovered subdomains
├── live.txt # Live hosts
├── ports.json # Open ports
├── dirs.txt # Discovered directories
├── js/ # JavaScript files
├── findings.json # Security findings
├── summary.json # Scan summary
└── logs/ # Stage logs
For full functionality, run with:
docker run --rm -it \
--cap-add NET_RAW \
--cap-add NET_ADMIN \
--cap-add SYS_NICE \
--cap-add SYS_RESOURCE \
reconflow scan -d example.com# Start with VPN
docker-compose --profile vpn up reconflow-vpn# Start dev container
docker-compose --profile dev up reconflow-dev
# Access shell
docker exec -it reconflow-dev /bin/bashDefault configuration is in internal/config/config.go. Create a custom config:
{
"general": {
"timeout": 30,
"retries": 3
},
"subdomain": {
"brute_force": true,
"wordlist": "/wordlists/subdomains.txt"
},
"portscan": {
"fast_scan": true,
"deep_scan": true,
"top_ports": 1000
},
"ratelimit": {
"enabled": true,
"requests_per_sec": 100
},
"concurrency": {
"subdomain_enum": 20,
"live_check": 50,
"dir_brute": 50
}
}The framework uses these external tools:
| Tool | Purpose | Required |
|---|---|---|
| subfinder | Subdomain enumeration | Yes |
| httpx | HTTP probing | Yes |
| masscan | Fast port scanning | Yes |
| nmap | Service detection | Yes |
| ffuf | Directory bruteforcing | Yes |
| katana | Web crawling | Yes |
| dnsx | DNS toolkit | Yes |
| gau | Historical URLs | Yes |
| waybackurls | Wayback data | Yes |
| assetfinder | Domain finder | Yes |
| amass | Advanced enumeration | No |
| gowitness | Screenshots | No |
cmd/reconflow/ # Main entry point
internal/
├── bootstrap/ # Tool validation & installation
├── config/ # Configuration management
├── pipeline/ # Pipeline orchestration
│ └── stages/ # Individual scan stages
├── state/ # Database & state management
├── worker/ # Worker pool for concurrency
├── utils/ # Utilities (dedup, proxy, rate limiting)
└── output/ # Output file generation
ReconFlow supports pause/resume:
# Ctrl+C during scan saves state
# Resume with:
reconflow resume -d example.com
# Skip to specific stage
reconflow scan -d example.com --resume-stage=portscan# Set rate limit
reconflow scan -d example.com --rate 50
# Use proxy
reconflow scan -d example.com --proxy http://proxy:8080
# Rotate proxies
reconflow scan -d example.com --proxy-list proxies.txtFor enhanced subdomain enumeration, configure API keys:
# Subfinder API keys
mkdir -p ~/.config/subfinder
# Add your API keys to provider-config.yamlMIT License - See LICENSE file for details.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This tool is for authorized security testing only. Unauthorized scanning may be illegal. Always obtain proper authorization before using.