1. Project Overview & Quickstart (six2dez/reconftw)
File: README.md
reconFTW
reconFTW is a powerful automated reconnaissance tool designed for security researchers and penetration testers. It streamlines the process of gathering intelligence on a target by performing subdomain enumeration, vulnerability scanning, OSINT and more. With a modular design, extensive configuration options, and support for distributed scanning via AX Framework, reconFTW is built to deliver comprehensive results efficiently.
reconFTW leverages a wide range of techniques, including passive and active subdomain discovery, web vulnerability checks (e.g., XSS, SSRF, SQLi), OSINT, directory fuzzing, port scanning and screenshotting. It integrates with cutting-edge tools and APIs to maximize coverage and accuracy, ensuring you stay ahead in your reconnaissance efforts.
Key Features:
- Comprehensive subdomain enumeration (passive, bruteforce, permutations, certificate transparency, etc.)
- Vulnerability scanning for XSS, SSRF, SQLi, LFI, SSTI, and more
- OSINT for emails, metadata, API leaks, and third-party misconfigurations
- Distributed scanning with AX Framework for faster execution
- Customizable workflows with a detailed configuration file
- Integration with Faraday for reporting and visualization
- Support for Docker, Terraform and Ansible deployments
Disclaimer: Usage of reconFTW for attacking targets without prior consent is illegal. It is the user's responsibility to obey all applicable laws. The developers assume no liability for misuse or damage caused by this tool. Use responsibly.
๐ Table of Contents
- ๐ Table of Contents
- โจ Features
- ๐๏ธ Architecture
- ๐ฟ Installation
- โ๏ธ Configuration
- ๐ Usage
- โ๏ธ Ax Framework Support (previously Axiom)
- ๐ป Faraday Support
- ๐ง AI Integration
- ๐๏ธ Data Management
- ๐งช Testing
- Mindmap/Workflow
- Sample video
- ๐ค How to Contribute
- ๐ Security
- โ Need Help?
- ๐ Support This Project
- ๐ Thanks
- ๐ Changelog
- ๐ ๏ธ Development
- ๐ License
- โญ Star History
โจ Features
reconFTW is packed with features to make reconnaissance thorough and efficient. Below is a detailed breakdown of its capabilities, updated to reflect the latest functionality in the script and configuration.
OSINT
- Domain Information: WHOIS lookup for domain registration details (whois).
- Email and Password Leaks: Searches for leaked emails and credentials (emailfinder and LeakSearch).
- Microsoft 365/Azure Mapping: Identifies Microsoft 365 and Azure tenants (msftrecon).
- Metadata Extraction: Extracts metadata from indexed office documents (metagoofil).
- API Leaks: Detects exposed APIs in public sources (porch-pirate, SwaggerSpy and postleaksNg).
- Google Dorking: Automated Google dork queries for sensitive information (dorks_hunter and xnldorker).
- GitHub Analysis: Scans GitHub organizations for repositories and secrets with selectable engines (enumerepo, trufflehog, gitleaks, titus, noseyparker).
- GitHub Actions Audit (Optional): Audits workflow artifacts and CI/CD exposure with gato.
- Third-Party Misconfigurations: Identifies misconfigured third-party services (misconfig-mapper).
- Mail Hygiene: Reviews SPF/DMARC configuration to flag spoofing or deliverability issues.
- Cloud Storage Enumeration: Surveys buckets across major providers for exposure (cloud_enum).
- Spoofable Domains: Checks for domains vulnerable to spoofing (spoofcheck).
Subdomains
- Passive Enumeration: Uses APIs and public sources for subdomain discovery (subfinder and github-subdomains).
- Certificate Transparency: Queries certificate transparency logs (crt).
- NOERROR Discovery: Identifies subdomains with DNS NOERROR responses (dnsx, more info here).
- Bruteforce: Performs DNS bruteforcing with customizable wordlists (puredns and custom wordlists).
- Permutations: Generates subdomain permutations using AI, regex and tools (Gotator as the single permutation engine, plus regulator and subwiz).
- Web Scraping: Extracts subdomains from passive URL sources and live web metadata (urlfinder, waymore, httpx, csprecon).
- DNS Records: Resolves DNS records for subdomains (dnsx).
- Google Analytics: Identifies subdomains via Analytics IDs (AnalyticsRelationships).
- TLS Handshake: Discovers subdomains via TLS ports (tlsx).
- Recursive Search: Performs recursive passive or bruteforce enumeration combined (dsieve).
- Subdomain Takeover: Detects vulnerable subdomains (nuclei and dnstake).
- DNS Zone Transfer: Checks for misconfigured DNS zone transfers (dig).
- Cloud Buckets: Identifies misconfigured cloud buckets and exposed storage assets (S3Scanner and cloud_enum).
- Cloud Coverage Note: Cloud bucket checks no longer include Alibaba OSS coverage after replacing CloudHunter with cloud_enum.
- Cloud Output Migration: Legacy
cloudhunter_*bucket artifacts were removed; usesubdomains/cloud_enum_buckets_trufflehog.txtinstead. - Reverse IP Lookup: Discovers subdomains via IP ranges (hakip2host).
Hosts
- IP Information: Retrieves geolocation and WHOIS data (ipinfo).
- CDN Detection: Identifies IPs behind CDNs (cdncheck).
- WAF Detection: Detects Web Application Firewalls (wafw00f).
- Port Scanning: Active scanning with nmap (optionally preceded by naabu) and passive scanning with smap.
- Service Fingerprinting: Fingerprints exposed services on discovered host:port pairs with nerva.
- Service Vulnerabilities (Optional): Deep portscan profile can enrich results with CVE matching via vulners.
- Password Spraying: Attempts password spraying on identified services with engine selection (brutespray or brutus).
- Geolocation: Maps IP addresses to geographic locations (ipinfo).
- IPv6 Discovery: Optionally enumerates and scans discovered IPv6 targets when
IPV6_SCANis enabled.
Web Analysis
- Web Probing: Detects live web servers on standard and uncommon ports ((httpx)).
- Screenshots: Captures screenshots of web pages (nuclei).
- Virtual Host Fuzzing: Identifies virtual hosts by fuzzing HTTP headers (VhostFinder).
- CMS Detection: Identifies content management systems (CMSeeK).
- URL Extraction: Collects URLs passively and actively (urlfinder, waymore, katana, github-endpoints and JSA).
- URL Pattern Analysis: Classifies URLs using patterns (urless, gf and gf-patterns).
- Favicon Tech Recon: Identifies technologies from favicon hashes (favirecon).
- JavaScript Analysis: Extracts secrets and endpoints from JS files (subjs, JSA, xnLinkFinder, getjswords, mantra, jsluice).
- Source Map Extraction: Retrieves sensitive data from JavaScript source maps (sourcemapper).
- GraphQL Detection: Discovers GraphQL endpoints with nuclei and optionally performs in-depth introspection (GQLSpection).
- Parameter Discovery: Bruteforces hidden parameters on endpoints (arjun).
- WebSocket Auditing: Validates upgrade handshakes and origin handling on
ws://andwss://endpoints. - gRPC Reflection: Probes common gRPC ports for exposed service reflection (grpcurl).
- LLM Service Fingerprinting (Optional): Probes discovered web/API endpoints for exposed LLM services with julius.
- Fuzzing: Performs directory and parameter fuzzing (ffuf).
- File Extension Sorting: Organizes URLs by file extensions.
- Wordlist Generation: Creates custom wordlists for fuzzing.
- Password Dictionary: Generates password dictionaries from live content (cewler).
- IIS Shortname Scanning: Detects IIS shortname vulnerabilities (shortscan).
Vulnerability Checks
- CVEs: Checks for CVE and common vulnerabilites nuclei
- Nuclei DAST: Runs
nuclei -dasttemplates over collected URLs and GF candidates for additional DAST coverage. - XSS: Tests for cross-site scripting vulnerabilities (dalfox).
- SSL/TLS: Checks for SSL/TLS misconfigurations (testssl).
- SSRF: Tests for server-side request forgery (interactsh, parameter values with ffuf, and optional alternate protocol payloads).
- CRLF: Checks for CRLF injection vulnerabilities (crlfuzz).
- LFI: Tests for local file inclusion via fuzzing (ffuf).
- SSTI: Detects server-side template injection (TInjA).
- SQLi: Tests for SQL injection (SQLMap and ghauri).
- Broken Links: Identifies broken links and external references likely to be takeover-prone (second-order).
- Command Injection: Tests for command injection vulnerabilities (commix).
- HTTP Request Smuggling: Checks for request smuggling vulnerabilities (smugglex).
- Web Cache: Identifies web cache vulnerabilities (Web-Cache-Vulnerability-Scanner and toxicache).
- 4XX Bypassing: Attempts to bypass 4XX responses (nomore403).
- Parameter Fuzzing: Fuzzes URL parameters for vulnerabilities (nuclei).
Extras
- Multithreading: Optimizes performance (Interlace).
- Custom Resolvers: Generates DNS resolvers (dnsvalidator).
- Docker Support: Official Docker image on DockerHub.
- AWS Deployment: Deploys via Terraform and Ansible.
- IP/CIDR Support: Scans IP ranges and CIDR blocks.
- Scan Resumption: Resumes scans from the last completed step.
- Custom Output: Saves results to a user-defined directory.
- Diff Mode: Highlights new findings in subsequent scans.
- Scope Filtering: Supports in-scope and out-of-scope lists (inscope).
- Notifications: Sends alerts via Slack, Discord, or Telegram (notify).
- Result Zipping: Compresses and sends results.
- Faraday Integration: Exports results to Faraday for reporting .
- AI Report Generation: Generates reports using local AI models (reconftw_ai).
- Quick Rescan Mode: Skips heavy stages automatically when no new assets are discovered (
--quick-rescan/QUICK_RESCAN). - Hotlist Builder: Scores and highlights the riskiest assets (
hotlist.txt) based on new findings. - Command Tracing: Toggle
SHOW_COMMANDSto log every executed command into target logs for debugging. - Asset Store: Appends findings to
assets.jsonlfor downstream automation whenASSET_STOREis enabled. - Consolidated Report: Auto-generates
report/report.jsonandreport/index.htmlat end of scan. - ARM Support: Compatible with Raspberry Pi and ARM architectures (including MacOS MX).
- Health Check: Built-in system health check via
--health-check(also used by DockerHEALTHCHECK). - Incremental Mode: Only scan new findings since last run (
--incremental). - Adaptive Rate Limiting: Automatically back off on 429/503 errors (
--adaptive-rate). - Structured Logging: Optional JSON log output for advanced analysis (
STRUCTURED_LOGGING). - Input Sanitization: All user input is sanitized to prevent command injection.
- Dry-Run Mode: Preview what would be executed without running commands (
--dry-run). - Parallel Mode: Run independent functions in parallel for faster scans (
--parallel, disable with--no-parallel). - Modular Architecture: Codebase split into 8 focused modules for maintainability.
- Secrets Management: Environment variables,
secrets.cfg, and Docker runtime secrets (see SECURITY.md). - Circuit Breaker: Automatically skips tools after repeated failures to avoid scan hangs.
- Checkpoint System: Resume interrupted scans from the last successful phase.
- macOS Native Support: Full compatibility with macOS (BSD coreutils, Homebrew Bash 4+).
๐๏ธ Architecture
reconFTW uses a modular architecture. The main entry point (reconftw.sh) handles argument parsing and sources 8 specialized modules from the modules/ directory.
Directory Layout
reconftw/
โโโ reconftw.sh # Entry point โ arg parsing, module loading, dispatch
โโโ reconftw.cfg # Default configuration
โโโ install.sh # Installer
โโโ Makefile # Data management, lint, fmt, test targets
โโโ modules/
โ โโโ core.sh # Lifecycle, logging, notifications, cleanup (1024 lines)
โ โโโ modes.sh # Scan modes, argument parsing, help (902 lines)
โ โโโ subdomains.sh # Subdomain enumeration (1938 lines)
โ โโโ web.sh # Web analysis, fuzzing, JS checks (1712 lines)
โ โโโ vulns.sh # Vulnerability scanning (926 lines)
โ โโโ osint.sh # OSINT functions (500 lines)
โ โโโ axiom.sh # Ax/Axiom fleet helpers (143 lines)
โ โโโ utils.sh # Utilities, sanitization, validation (508 lines)
โโโ tests/
โ โโโ run_tests.sh # Test runner
โ โโโ unit/ # bats-core unit tests
โ โโโ integration/ # Integration tests
โ โโโ fixtures/ # Test data
โโโ Docker/
โ โโโ Dockerfile # Official Docker image
โโโ Terraform/ # AWS deploymentModule Reference
| Module | Lines | Purpose |
|---|---|---|
core.sh |
1024 | Lifecycle management, logging, notifications, cleanup traps |
modes.sh |
902 | Scan mode definitions, argument parsing, help output |
subdomains.sh |
1938 | All subdomain enumeration functions |
web.sh |
1712 | Web analysis, fuzzing, JS analysis, CMS detection |
vulns.sh |
926 | Vulnerability scanning (XSS, SQLi, SSRF, etc.) |
osint.sh |
500 | OSINT functions (WHOIS, emails, dorks, metadata) |
utils.sh |
508 | Shared utilities, input sanitization, validation |
axiom.sh |
143 | Ax/Axiom distributed fleet management |
The --source-only flag allows sourcing reconftw.sh without executing the main logic, enabling unit testing of individual functions.
๐ฟ Installation
reconFTW supports multiple installation methods to suit different environments. Ensure you have sufficient disk space (at least 10 GB recommended) and a stable internet connection.
Quickstart
- Clone and install
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh --verbose- Run a scan (full + resume)
./reconftw.sh -d example.com -r- Minimal run (passive-only footprint)
./reconftw.sh -d example.com -pTip: re-run
./install.sh --toolslater to refresh the toolchain without reinstalling system packages.
Local Installation (PC/VPS/VM)
Prerequisites:
- Golang: Latest version (
install_golangenabled by default inreconftw.cfg). - System Permissions: If not running as root, configure sudo to avoid prompts:bash
sudo echo "${USERNAME} ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/reconFTW
- Golang: Latest version (
Steps:
bashgit clone https://github.com/six2dez/reconftw cd reconftw ./install.sh ./reconftw.sh -d target.com -rNotes:
- The
install.shscript installs dependencies, tools, and configures paths (GOROOT,GOPATH,PATH). - Set
install_golang=falseinreconftw.cfgif Golang is already configured. - For existing setups, run
./install.sh --toolsto refresh Go binaries, pipx packages, and repositories without touching system packages. - Check the Installation Guide for detailed instructions.
Docker
Pull the Image:
bashdocker pull six2dez/reconftw:mainRun the Container:
bashdocker run -it --rm \ -v "${PWD}/OutputFolder/:/reconftw/Recon/" \ six2dez/reconftw:main -d example.com -rFor a list of targets, bind the list file into the container and reference the in-container path:
bashdocker run -it --rm \ -v "${PWD}/domains.txt:/reconftw/domains.txt:ro" \ -v "${PWD}/OutputFolder/:/reconftw/Recon/" \ six2dez/reconftw:main -l /reconftw/domains.txt -rView Results:
- Results are saved in the
OutputFolderdirectory on the host (not inside the container).
- Results are saved in the
Customization:
- Modify the Docker image or build your own; see the Docker Guide.
- To skip Ax tooling in custom builds, pass
--build-arg INSTALL_AXIOM=false. - Mount your notify config at
~/.config/notify/provider-config.yamlinside the container if you use notifications.
Secrets at Runtime:
Pass API keys and secrets via environment variables โ never bake them into the image:
bashdocker run -it --rm \ -e SHODAN_API_KEY="your-key" \ -e PDCP_API_KEY="your-projectdiscovery-key" \ -e COLLAB_SERVER="your-server" \ -e XSS_SERVER="your-server" \ -v "${PWD}/OutputFolder/:/reconftw/Recon/" \ six2dez/reconftw:main -d example.com -rSee SECURITY.md for full secrets management guidance.
Health Check:
The Docker image includes a built-in
HEALTHCHECKthat runs./reconftw.sh --health-checkevery 60 seconds. You can also run it manually:bashdocker exec <container-id> ./reconftw.sh --health-check
Terraform + Ansible
- Deploy reconFTW on AWS using Terraform and Ansible.
- Follow the guide in Terraform/README.md for setup instructions.
๐ ๏ธ Troubleshooting
- Bash 4+ on macOS: The scripts auto-relaunch under Homebrew Bash. If you see a message about Bash < 4, run
brew install bash, open a new terminal, and re-run./install.sh. - timeout on macOS: macOS provides
gtimeoutviabrew install coreutils. The scripts now detect and use it automatically. - Network hiccups: Installers hide most command output. If something fails, re-run with
upgrade_tools=trueinreconftw.cfg, execute./install.sh --tools, or install the missing tool manually (the error will name it). - GOPATH binaries: Binaries are copied to
/usr/local/bin. If you prefer not to, ensure~/go/binis in yourPATH. - Nuclei templates: If templates werenโt cloned, remove
~/nuclei-templatesand re-run./install.sh.
๐ API Checklist (Optional)
subfinder:~/.config/subfinder/provider-config.yaml- GitHub tokens:
~/Tools/.github_tokens(one per line) - GitLab tokens:
~/Tools/.gitlab_tokens(one per line) - WHOISXML: set
WHOISXML_APIinreconftw.cfgor env var - ASN enumeration (
asnmap): setPDCP_API_KEYin env/config (ASN_ENUMskips if unset) - Slack/Discord/Telegram: configure
notifyin~/.config/notify/provider-config.yaml - SSRF server: set
COLLAB_SERVERenv/cfg if used - Blind XSS server: set
XSS_SERVERenv/cfg if used
๐พ Requirements
- Disk: 10โ20 GB free recommended (toolchain + data)
- Network: stable connection during installation and updates
- OS: Linux/macOS with Bash โฅ 4
- Extras:
shellcheckandshfmt(optional) formake lint/make fmt
โ๏ธ Configuration
The reconftw.cfg file controls the entire execution of reconFTW. It allows fine-grained customization of:
- Tool Paths: Set paths for tools, resolvers, and wordlists (
tools,resolvers,fuzz_wordlist). - API Keys: Configure keys for Shodan, WHOISXML, etc. via environment variables or
secrets.cfg(see SECURITY.md). - Scanning Modes: Enable/disable modules (e.g.,
OSINT,SUBDOMAINS_GENERAL,VULNS_GENERAL). - Performance: Adjust threads, rate limits, and timeouts (e.g.,
FFUF_THREADS,HTTPX_RATELIMIT). - Adaptive Rate Limiting: Automatically back off on 429/503 errors (
ADAPTIVE_RATE_LIMIT,MIN_RATE_LIMIT,MAX_RATE_LIMIT). - Incremental Scanning: Only scan new findings since last run (
INCREMENTAL_MODE). - Notifications: Set up Slack, Discord, or Telegram notifications (
NOTIFY_CONFIG). - Ax (formerly Axiom): Configure distributed scanning and resolver paths (
AXIOM_FLEET_NAME,AXIOM_FLEET_COUNT,AXIOM_RESOLVERS_PATH). - AI Reporting: Configure model/profile/format and context controls (
AI_MODEL,AI_REPORT_PROFILE,AI_REPORT_TYPE,AI_MAX_CHARS_PER_FILE). - Advanced Web Checks: Toggle GraphQL introspection, parameter discovery, WebSocket testing, gRPC probing, and IPv6 scanning.
- Automation & Data: Control quick rescan heuristics, asset logging, chunk sizes, hotlists, and debug tracing (
QUICK_RESCAN,ASSET_STORE,CHUNK_LIMIT,HOTLIST_TOP,SHOW_COMMANDS). - Disk & Logging: Pre-flight disk check (
MIN_DISK_SPACE_GB), log rotation (MAX_LOG_FILES,MAX_LOG_AGE_DAYS), structured JSON logging (STRUCTURED_LOGGING). - Caching: Configure cache expiry for wordlists and resolvers (
CACHE_MAX_AGE_DAYS). - DNS Resolver Safety: Missing resolver files fail fast, resolver downloads use configurable retry/timeout knobs (
RESOLVER_DOWNLOAD_*), and DNS brute/resolve timeout defaults to disabled (DNS_*_TIMEOUT=0) with heartbeat progress. - Secrets: Use
secrets.cfgfor local overrides or environment variables for CI/Docker (see SECURITY.md).
Example Configuration:
/* Detailed source-code truncated for AI context efficiency. */DNS resolver guardrails:
- Missing/empty resolver files now fail fast before DNS brute/resolve starts.
- Resolver downloads are configurable with
RESOLVER_DOWNLOAD_CONNECT_TIMEOUT,RESOLVER_DOWNLOAD_MAX_TIME,RESOLVER_DOWNLOAD_RETRY, andRESOLVER_DOWNLOAD_RETRY_DELAY. DNS_BRUTE_TIMEOUT=0andDNS_RESOLVE_TIMEOUT=0disable hard-timeout by default (recommended for very large target sets). Heartbeat progress still prints everyDNS_HEARTBEAT_INTERVAL_SECONDS.
DNS_BRUTE_TIMEOUT=4h
DNS_RESOLVE_TIMEOUT=6h
DNS_HEARTBEAT_INTERVAL_SECONDS=20Full Details: See the Configuration Guide.
๐ Usage
reconFTW supports multiple modes and options for flexible reconnaissance. Use the -h flag to view the help menu.
Target Options
| Flag | Description |
|---|---|
-d |
Single target domain (e.g., example.com) |
-l |
File with list of target domains (one per line) |
-m |
Multi-domain target (e.g., company name for related domains) |
-x |
Exclude subdomains (out-of-scope list) |
-i |
Include subdomains (in-scope list) |
Mode Options
| Flag | Description |
|---|---|
-r |
Recon: Full reconnaissance without active attacks |
-s |
Subdomains: Subdomain enumeration, web probing, and takeovers |
-p |
Passive: Passive reconnaissance only |
-a |
All: Full reconnaissance plus active vulnerability checks |
-w |
Web: Vulnerability checks on specific web targets |
-n |
OSINT: OSINT scan without subdomain enumeration or attacks |
-z |
Zen: Lightweight recon with basic checks and some vulnerabilities |
-c |
Custom: Run a specific function (requires additional arguments) |
-h |
Show help menu |
General Options
| Flag | Description |
|---|---|
--deep |
Enable deep scanning (slower, VPS recommended) |
-f |
Custom configuration file path |
-o |
Output directory for results |
-v |
Enable Ax distributed scanning |
--vps-count |
Override Ax fleet instance count for this run |
-q |
Set rate limit (requests per second) |
-y |
Enables AI results analysis |
--check-tools |
Exit if required tools are missing |
--quick-rescan |
Skip heavy modules when no new subs/webs are found |
--health-check |
Run system health check and exit |
--incremental |
Only scan new findings since last run |
--adaptive-rate |
Automatically adjust rate limits on errors (429/503) |
--dry-run |
Show what would be executed without running commands |
--parallel |
Run independent functions in parallel (faster, more RAM) |
--no-parallel |
Force sequential execution even if parallel is enabled |
--monitor |
Continuous monitoring mode (single target; -w supports -l) |
--monitor-interval |
Minutes between monitor cycles |
--monitor-cycles |
Stop after N cycles (0 = infinite) |
--report-only |
Rebuild report artifacts without scanning |
--refresh-cache |
Force refresh of cached resolvers/wordlists |
--export |
Export artifacts: json, html, csv, or all |
Example Usage
Full Recon on a Single Target:
bash./reconftw.sh -d target.com -rRecon on Multiple Targets:
bash./reconftw.sh -l targets.txt -r -o /path/to/output/Deep Recon (VPS Recommended):
bash./reconftw.sh -d target.com -r --deepParallel Mode (Faster, requires more RAM):
bash./reconftw.sh -d target.com -r --parallelForce Sequential Mode:
bash./reconftw.sh -d target.com -r --no-parallelMulti-Domain Recon:
bash./reconftw.sh -m company -l domains.txt -rAx Integration:
bash./reconftw.sh -d target.com -r -vAx Integration with fleet override:
bash./reconftw.sh -d target.com -r -v 30Full Recon with Attacks (YOLO Mode):
bash./reconftw.sh -d target.com -aShow Help:
./reconftw.sh -h- Force cache refresh:
./reconftw.sh -d target.com -r --refresh-cache- Export all report artifacts:
./reconftw.sh -d target.com -r --export all- Continuous monitoring (every 30m, 48 cycles):
./reconftw.sh -d target.com -r --monitor --monitor-interval 30 --monitor-cycles 48- Rebuild reports only (no scan):
./reconftw.sh -d target.com --report-only --export allFull Guide: See the Usage Guide.
โ๏ธ Ax Framework Support (previously Axiom)
reconFTW integrates with Ax for distributed scanning, reducing execution time by distributing tasks across multiple cloud instances.
- Setup: Select
reconftwas the provisioner during Ax configuration (axiom-configure). - Fleet Management: Automatically create and destroy fleets (
AXIOM_FLEET_LAUNCH,AXIOM_FLEET_SHUTDOWN) or use an existing fleet. - Configuration: Set fleet size, region, and name in
reconftw.cfg(AXIOM_FLEET_COUNT,AXIOM_FLEET_REGIONS,AXIOM_FLEET_NAME).
Example:
./reconftw.sh -d target.com -r -vDetails: See the official Ax Docs and the attacksurge/ax repo.
๐ป Faraday Support
reconFTW integrates with Faraday for web-based reporting and vulnerability management.
- Setup: Install Faraday, authenticate via
faraday-cli, and configure the workspace inreconftw.cfg(FARADAY_WORKSPACE). - Usage: Enable with
FARADAY=trueinreconftw.cfg.
๐ง AI Integration
reconFTW uses AI to generate detailed reports from scan results with the tool reconftw_ai.
- Model: Configurable AI model (e.g.,
llama3:8bviaAI_MODEL). - Report Types: Markdown or plain text (
AI_REPORT_TYPE). - Profiles: Executive, brief, or bug hunter (
AI_REPORT_PROFILE). - Structured Output:
reconftwstores a machine-readable report inai_result/reconftw_analysis.json. - Context Controls: Bound input size using
AI_MAX_CHARS_PER_FILEandAI_MAX_FILES_PER_CATEGORY. - Safety Controls: Toggle redaction and strict mode with
AI_REDACTandAI_STRICT.
Example:
AI_EXECUTABLE="python3"
AI_MODEL="llama3:8b"
AI_REPORT_TYPE="md"
AI_REPORT_PROFILE="bughunter"
AI_MAX_CHARS_PER_FILE=50000
AI_MAX_FILES_PER_CATEGORY=200
AI_REDACT=true
AI_ALLOW_MODEL_PULL=false
AI_STRICT=false๐๏ธ Data Management
Manage scan data and API keys securely using a private repository.
When ASSET_STORE=true, reconFTW aggregates key findings into assets.jsonl during each run, making it easy to sync only actionable deltas to your private repo.
Makefile
Use the provided Makefile for easy repository management (requires GitHub CLI).
Bootstrap:
bashexport PRIV_REPO="$HOME/reconftw-data" make bootstrapSync with Upstream:
bashmake syncUpload Data:
bashmake uploadLint / Format Scripts:
bashmake lint # shellcheck for reconftw.sh, modules/*.sh & install.sh make fmt # shfmt with project defaultsRun Tests:
bashmake test # unit tests (bats-core) make test-all # unit + integration tests
Manual
Create a private repository on GitHub/GitLab.
Clone and configure:
bashgit clone https://github.com/yourusername/reconftw-data cd reconftw-data git commit --allow-empty -m "Initial commit" git remote add upstream https://github.com/six2dez/reconftw git fetch upstream git rebase upstream/main masterUpload Changes:
bashgit add . git commit -m "Data upload" git push origin masterUpdate Tool:
bashgit fetch upstream git rebase upstream/main master
๐งช Testing
reconFTW uses bats-core for automated testing.
Install bats-core
# macOS
brew install bats-core
# Debian/Ubuntu
apt install bats
# From source
git clone https://github.com/bats-core/bats-core.git /tmp/bats
sudo /tmp/bats/install.sh /usr/localRunning Tests
# Unit tests only
make test
# Unit + integration tests
make test-all
# Via the runner script
./tests/run_tests.sh # unit only
./tests/run_tests.sh --all # unit + integrationTest Directory Structure
tests/
โโโ run_tests.sh # Test runner script
โโโ unit/ # Unit tests (fast, no network)
โ โโโ test_sanitize.bats
โ โโโ test_utils.bats
โ โโโ test_validation.bats
โโโ integration/ # Integration tests (require installed tools)
โ โโโ test_smoke.bats
โโโ security/ # Security tests (injection, etc.)
โ โโโ test_injection.bats
โโโ mocks/ # Mock tools for offline testing
โโโ fixtures/ # Shared test data filesRunning Security Tests
# Test command injection prevention
make test-security
# Or directly
bats tests/security/Writing Tests
Tests use the --source-only pattern to load functions without executing the main script:
#!/usr/bin/env bats
setup() {
source ./reconftw.sh --source-only
}
@test "sanitize_domain strips invalid chars" {
result="$(sanitize_domain 'exam;ple.com')"
[ "$result" = "example.com" ]
}CI Pipeline
The GitHub Actions workflow (.github/workflows/tests.yml) runs on every push and pull request:
- ShellCheck โ lints
reconftw.sh,modules/*.sh, andinstall.sh - Unit Tests โ runs all
tests/unit/*.batsfiles - Integration Tests โ installs reconFTW and validates tool availability
Mindmap/Workflow
Sample video
๐ค How to Contribute
See CONTRIBUTING.md for the full contributing guide, including development setup, code style, testing, and PR process.
Quick links:
- Report a Bug
- Submit a Pull Request (target the
devbranch) - Code of Conduct
๐ Security
For security policy, secrets management, and vulnerability reporting, see SECURITY.md.
โ Need Help?
- Wiki: Explore the reconFTW Wiki.
- FAQ: Check the FAQ.
- Community: Join the Discord server or Telegram group.
๐ Support This Project
Support reconFTWโs development through:
- Buy Me a Coffee: buymeacoffee.com/six2dez
- DigitalOcean Referral: Referral Link
- GitHub Sponsorship: github.com/sponsors/six2dez
๐ Thanks
Special thanks to the following services for supporting reconFTW:
๐ Changelog
See CHANGELOG.md for a detailed list of changes in each release.
๐ ๏ธ Development
Project Structure
reconftw/
โโโ reconftw.sh # Main entry point (~500 lines)
โโโ reconftw.cfg # Configuration file
โโโ modules/ # Phase modules
โ โโโ utils.sh # Utilities, sanitization, caching, circuit breaker
โ โโโ core.sh # Framework core, logging, lifecycle, health check
โ โโโ modes.sh # Scan modes, argument parsing
โ โโโ subdomains.sh # Subdomain enumeration
โ โโโ web.sh # Web analysis, nuclei scans
โ โโโ vulns.sh # Vulnerability scanning
โ โโโ osint.sh # OSINT functions
โ โโโ axiom.sh # Ax/Axiom fleet helpers
โโโ lib/ # Pure utility libraries
โ โโโ validation.sh # Input validation functions
โโโ tests/ # Test suite (100+ tests)
โ โโโ unit/ # Unit tests (bats)
โ โโโ integration/ # Integration/smoke tests
โ โโโ security/ # Injection prevention tests
โโโ docs/ # Documentation
โ โโโ ARCHITECTURE.md # Detailed architecture guide
โโโ secrets.cfg.example # Template for API keysRunning Tests
make test # Unit tests
make test-security # Security tests
make test-all # All tests
make lint # Shellcheck
make lint-fix # Auto-fix with shfmtDevelopment Workflow
# 1. Source without executing (for testing)
source ./reconftw.sh --source-only
# 2. Test individual functions
sanitize_domain "test;domain.com"
# 3. Run health check
./reconftw.sh --health-check
# 4. Dry run to preview
./reconftw.sh -d example.com -r --dry-runContributing
See CONTRIBUTING.md for development guidelines and docs/ARCHITECTURE.md for technical details.
๐ License
reconFTW is licensed under the MIT License.
โญ Star History
File: Proxmox/README.md
ReconFTW Proxmox LXC Deployment Script
This script automates the deployment of ReconFTW in a Linux Container (LXC) on a Proxmox server. It simplifies the process of setting up a dedicated environment for reconnaissance activities.
Prerequisites
- A Proxmox VE server (version 6.x or later)
- Root access to the Proxmox server
- Sufficient storage space on the Proxmox server
Usage
Copy the script
bash -c "$(curl -fsSL https://raw.githubusercontent.com/six2dez/reconftw/master/Proxmox/reconftw_prox_deploy.sh)"to your Proxmox server.Follow the prompts to configure your LXC container. You'll be asked for:
- Container ID
- Storage location
- Root filesystem size
- RAM allocation
- Number of CPU cores
- Hostname
- Password
- The script will then:
- Download the Debian template if not already present
- Create and configure the LXC container
- Install ReconFTW and its dependencies
- Once completed, the script will display the container information, including ID, hostname, and password.
Logging
The script generates a log file in /var/log/ with the format reconftw_deploy_YYYYMMDD_HHMMSS.log. Refer to this log for detailed information about the deployment process.
Post-Installation
After the script completes:
- You can access the container using:
pct enter <CONTAINER_ID>ReconFTW will be installed in
/opt/reconftw/. Navigate to this directory to use ReconFTW.Refer to the ReconFTW documentation for usage instructions.
Troubleshooting
- If the script fails, check the log file for error messages.
- Ensure you have sufficient storage space and resources on your Proxmox server.
- Verify that your Proxmox server has internet access to download necessary packages.
Security Note
Remember to change the default password after accessing the container for the first time.
Support
For issues related to this deployment script, please open an issue in the GitHub repository. For ReconFTW-specific questions, refer to the ReconFTW GitHub page.
File: Terraform/README.md
reconFTW loves Ansible+Terraform <3
This is an automated script created to work under AWS by using Terraform and Ansible. It allows you to easily deploy it or to easily adapt it into your IaaC strategy.
Note (best-effort): This Terraform/Ansible setup is provided as a reference. Cloud images, SSH usernames, and
package repos change over time, so you may need to adjust it for your environment. It is not covered by reconFTW CI.
Requirements
You would need to have installed:
- AWS CLI (https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
- Terraform (https://learn.hashicorp.com/tutorials/terraform/install-cli)
- Ansible (https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)
And AWS credentials configured via the standard AWS provider chain (e.g., AWS_PROFILE, env vars, or an IAM role).
Deploying reconFTW on the AWS Cloud using Terraform and Ansible
Note: this will charge costs (unless you are in the Free Tier)
- Move to the Terraform folder (optional but recommended):
cd Terraform- Put your own Subfinder config file and reconFTW config file on the files/ folder
- Create a key pair to be used, e.g:
ssh-keygen -f terraform-keys -t ecdsa -b 521 - Run
terraform init - Run
terraform apply- You will be prompted for
allowed_ssh_cidr(recommended: your public IP +/32)
- You will be prompted for
- Type "yes" and hit enter
- Wait, because it can take up to 15 min.
- Once the process has finished, you can now login, using
ssh admin@ip -i terraform-keys - ???
- If you have finished playing with reconFTW and hacking the world, remember to destroy the instance using
terraform destroy
2. Official Technical Reference & Guides (six2dez/reconftw-docs)
File: README.md
reconFTW Documentation
Welcome to reconFTW
reconFTW is a modular reconnaissance automation framework designed for security researchers, penetration testers, and bug bounty hunters. It orchestrates 80+ security tools to perform full reconnaissance on your targets, from subdomain enumeration to vulnerability scanning.
Why reconFTW?
| Feature | Description |
|---|---|
| Automated Workflow | Complete reconnaissance pipeline with a single command |
| Modular Design | Enable/disable any module or function as needed |
| Distributed Scanning | Scale with Axiom across cloud infrastructure |
| Structured Output | Organized results with multiple export formats |
| Continuous Monitoring | Recurrent scan cycles with delta and alert snapshots |
| Report Rebuild Mode | Recreate report/export artifacts from existing scan data |
| Highly Configurable | 300+ configuration options for fine-tuning |
| Incremental Scans | Only scan new findings since last run |
| AI Integration | Generate structured JSON + markdown/txt security summaries with local AI models |
What Can reconFTW Do?
/* Detailed source-code truncated for AI context efficiency. */Quick Start
# Install reconFTW
git clone https://github.com/six2dez/reconftw.git
cd reconftw
./install.sh
# Run your first scan
./reconftw.sh -d example.com -r
# Full scan with vulnerabilities
./reconftw.sh -d example.com -aDocumentation Overview
This documentation is organized to help you get the most out of reconFTW:
๐ For Beginners
- First 30 Minutes - Quick start guide to get scanning
- Getting Started - Installation and setup
- Concepts - Understanding how reconFTW works
- Usage Guide - All command-line options explained
๐ง For Configuration
- Configuration - Deep dive into reconftw.cfg
- Modules - Detailed documentation for each module
- Tools Reference - All 80+ integrated tools
๐ For Results
- Output Interpretation - Understanding your results
- Data Model & I/O - Complete input/output reference
- Integrations - Axiom and Faraday setup
For Advanced Users
- Deployment - Docker, Terraform, VPS, CI/CD
- Performance Tuning - Optimize for speed and target size
- Case Studies - Real-world usage examples
- Advanced Usage - Custom functions and optimization
- Troubleshooting - Common issues and solutions
- Release Gate - Required checks before publishing updates
โ๏ธ Legal & Security
- OPSEC & Legal - Stay safe and authorized
Scan Modes at a Glance
| Mode | Flag | Description | Use Case |
|---|---|---|---|
| Recon | -r |
Full reconnaissance | Standard bug bounty recon |
| Subdomains | -s |
Subdomain enumeration only | Quick subdomain discovery |
| Passive | -p |
Passive reconnaissance | Stealth/non-intrusive |
| All | -a |
Full recon + vulnerabilities | Full assessment |
| Web | -w |
Web analysis only | Analyze known URLs |
| OSINT | -n |
OSINT gathering only | Intelligence gathering |
| Custom | -c |
Run custom function | Advanced workflows |
| Zen | -z |
Minimal output mode | Clean terminal output |
| AI Report | -y |
Generate AI-assisted report | Post-scan summarization |
| VPS Fleet | -v |
Run via Axiom distributed fleet | Large surfaces / faster runs |
Additional workflow flags:
--monitor,--monitor-interval,--monitor-cycles--report-only,--no-report--export json|html|csv|all--refresh-cache,--gen-resolvers--incremental,--adaptive-rate,--quick-rescan--quiet,--verbose,--no-color--log-format plain|jsonl|jsonl-strict--parallel-log summary|tail|full
Bundled config profiles:
config/reconftw_quick.cfgconfig/reconftw_full.cfgconfig/reconftw_stealth.cfg
โ ๏ธ Legal & OPSEC
IMPORTANT: reconFTW is designed for authorized security testing only.
Authorization Checklist
Before running any scan, verify:
- Written permission from target owner
- Defined scope (in-scope and out-of-scope assets)
- Rate limits agreed upon
- Testing window defined (if applicable)
- Emergency contact available
- NDA signed (if required)
OPSEC Considerations
| Risk | Mitigation |
|---|---|
| IP Blocking | Use VPS, rotate IPs with Axiom |
| WAF Detection | Start with passive mode (-p) |
| Rate Limiting | Use --adaptive-rate flag |
| Legal Issues | Always have written authorization |
| Data Exposure | Keep secrets.cfg secure, never commit |
Legal Disclaimer
By using this tool, you confirm that:
- You have explicit written permission to test the target
- You will comply with all applicable laws and regulations
- You understand that unauthorized testing is illegal
The developers assume no liability for misuse of this tool. Use responsibly.
โก๏ธ Full OPSEC Guide
Community & Support
- GitHub Issues: Report bugs or request features
- Discord: Join our community
- Telegram: Discussion group
- Twitter: @Six2dez1
Contributing
reconFTW is open source and welcomes contributions! See our Contributing Guide for details.
File: assets/README.md
Assets Directory
This directory contains images and other media files for the reconFTW documentation.
Directory Structure
assets/
โโโ images/ # Screenshots, diagrams, and illustrations
โ โโโ architecture/ # Architecture diagrams
โ โโโ screenshots/ # UI screenshots
โ โโโ diagrams/ # Flow diagrams
โ โโโ icons/ # Icons and logos
โโโ README.md # This fileRequired Images
The following images are referenced in the documentation and need to be created:
Architecture Diagrams
| Filename | Location | Description |
|---|---|---|
architecture-overview.png |
concepts.md | High-level reconFTW architecture showing modules and data flow |
data-flow.png |
concepts.md | Data flow between modules showing how results propagate |
checkpoint-system.png |
concepts.md | Visual explanation of checkpoint/resume system |
axiom-architecture.png |
axiom.md | Axiom distributed scanning architecture |
faraday-integration.png |
faraday.md | Data flow from reconFTW to Faraday |
Screenshot Examples
| Filename | Location | Description |
|---|---|---|
terminal-scan-output.png |
getting-started.md | Terminal showing reconFTW running a scan |
screenshot-gallery.png |
web-analysis.md | Nuclei screenshot gallery example |
nuclei-results.png |
vulnerabilities.md | Example Nuclei vulnerability output |
faraday-dashboard.png |
faraday.md | Faraday web interface with imported results |
Module Diagrams
| Filename | Location | Description |
|---|---|---|
osint-flow.png |
osint.md | OSINT module data flow |
subdomain-flow.png |
subdomains.md | Subdomain enumeration pipeline |
web-analysis-flow.png |
web-analysis.md | Web analysis module flow |
vuln-scanning-flow.png |
vulnerabilities.md | Vulnerability scanning workflow |
host-analysis-flow.png |
hosts.md | Host analysis pipeline |
Image Guidelines
Dimensions
- Architecture diagrams: 1200x800px (landscape)
- Screenshots: 1400x900px or native resolution
- Flow diagrams: 800x1200px (portrait) or 1200x800px (landscape)
- Icons: 64x64px or 128x128px
Format
- Diagrams: PNG with transparent background preferred
- Screenshots: PNG
- Icons: SVG preferred, PNG acceptable
Style Guidelines
- Use consistent color scheme matching reconFTW branding
- Primary color:
#2D3748(dark blue-gray) - Accent color:
#48BB78(green) - Use clean, readable fonts (Inter, Roboto, or system fonts)
- Include proper contrast for accessibility
Creating Images
Recommended Tools
- Diagrams: draw.io, Excalidraw, Mermaid
- Screenshots: macOS Screenshot, Flameshot, ShareX
- Image editing: GIMP, Figma, Canva
Using Mermaid (for GitBook)
GitBook supports Mermaid diagrams. Example:
graph TD
A[Target Domain] --> B[OSINT]
B --> C[Subdomains]
C --> D[Host Analysis]
D --> E[Web Analysis]
E --> F[Vulnerabilities]ASCII Diagrams
The documentation includes ASCII diagrams as fallbacks. These work in all environments and don't require images.
Placeholder Convention
In the documentation, image placeholders are marked with HTML comments:
Contributing Images
- Create image following guidelines above
- Place in appropriate subdirectory
- Use descriptive filename (kebab-case)
- Update documentation to reference image:markdown
- Submit PR with image and documentation update
License
All images in this directory should be:
- Original creations, OR
- Properly licensed for open source use (CC0, CC-BY, MIT, etc.)
Do not include copyrighted images without permission.
File: 05-modules/README.md
Modules Overview
reconFTW is organized into specialized modules, each handling a specific phase of reconnaissance. This page provides an overview and quick navigation to each module's detailed documentation.
Module Architecture
flowchart TD
T[Target Input] --> O[OSINT]
O --> S[Subdomains]
S --> H[Hosts]
H --> W[Web Analysis]
W --> V[Vulnerabilities]
O -.-> O1[Dorks, emails, metadata, leaks]
S -.-> S1[Passive, brute, permutations, takeover]
H -.-> H1[Ports, CDN, WAF, geolocation]
W -.-> W1[Probing, screenshots, JS analysis, fuzzing]
V -.-> V1[Nuclei, XSS, SQLi, SSRF, etc.]Module Summary
| Module | Functions | Primary Tools | Output Directory |
|---|---|---|---|
| OSINT | 13 | dorks_hunter, ghleaks, postleaksNg, trufflehog, gato | osint/ |
| Subdomains | 17 | subfinder, puredns, dnsx, dnstake, hakip2host | subdomains/ |
| Hosts | 6 | nmap, naabu, nerva (Praetorian Suite), smap, cdncheck | hosts/ |
| Web Analysis | 19 | httpx, favirecon, katana, ffuf, julius | webs/, fuzzing/, js/ |
| Vulnerabilities | 18 | nuclei, dalfox, sqlmap, TInjA, second-order, toxicache, brutus/brutespray | vulns/ |
OSINT Module
Purpose: Gather intelligence about the target organization without direct interaction.
Key Capabilities:
- Google dorking for sensitive files
- GitHub secret scanning
- Email harvesting
- Document metadata extraction
- Cloud storage enumeration
- API leak detection
When to use: At the beginning of an engagement for initial intelligence gathering.
โก๏ธ Full OSINT Documentation
Subdomains Module
Purpose: Discover all subdomains associated with the target domain.
Key Capabilities:
- Passive enumeration (40+ sources)
- Certificate Transparency logs
- DNS brute-forcing
- Permutation generation
- Recursive enumeration
- Subdomain takeover detection
When to use: After OSINT, to map the attack surface.
โก๏ธ Full Subdomains Documentation
Hosts Module
Purpose: Analyze infrastructure behind discovered assets.
Key Capabilities:
- Port scanning (passive + active)
- Service fingerprinting on discovered ports
- CDN detection and filtering
- WAF identification
- IP geolocation
When to use: After subdomain enumeration, to understand infrastructure.
โก๏ธ Full Hosts Documentation
Web Analysis Module
Purpose: Analyze web applications and discover endpoints.
Key Capabilities:
- HTTP probing and status detection
- Screenshot capture
- URL extraction from archives
- JavaScript analysis for secrets
- Directory/file fuzzing
- Technology detection
When to use: After identifying live web servers.
โก๏ธ Full Web Analysis Documentation
Vulnerabilities Module
Purpose: Identify security vulnerabilities in discovered assets.
Key Capabilities:
- Template-based scanning (Nuclei)
- XSS testing
- SQL injection detection
- SSRF testing
- CORS misconfiguration
- SSL/TLS analysis
- And many more...
When to use: Final phase, after mapping all assets.
โก๏ธ Full Vulnerabilities Documentation
Module Execution Order
In a full scan (-a flag), modules execute in this order:
1. OSINT โ Intelligence gathering
2. Subdomains โ Asset discovery
3. Hosts โ Infrastructure analysis
4. Web Analysis โ Application mapping
5. Vulnerabilities โ Security testingEach module builds on the previous one's output, creating a full reconnaissance pipeline.
Enabling/Disabling Modules
Via Configuration
# In reconftw.cfg
OSINT=true
SUBDOMAINS_GENERAL=true
PORTSCANNER=true
WEBPROBEFULL=true # Unified web probing over 80/443 + uncommon ports
NUCLEICHECK=true
# Use VULNS_GENERAL=true if you want to enable the full vulnerability module by configVia Command Line
# Run only specific modules
./reconftw.sh -d example.com -s # Subdomains only
./reconftw.sh -d example.com -n # OSINT only
./reconftw.sh -d example.com -w # Web analysis only
# Custom function selection
./reconftw.sh -d example.com -c sub_passive
./reconftw.sh -d example.com -c webprobe_fullModule Dependencies
Some modules depend on outputs from others:
OSINT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Subdomains โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โผ โ
Hosts โโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โผ โ
Web Analysis โโโโโโโโโโโโโโโโโโโโค
โ โ
โผ โ
Vulnerabilities โโโโโโโโโโโโโโโโโโNext Steps
Choose a module to explore in detail:
- OSINT Module - Start with intelligence gathering
- Subdomains Module - Discover your attack surface
- Hosts Module - Understand the infrastructure
- Web Analysis Module - Map web applications
- Vulnerabilities Module - Find security issues