Foothold OSINT
reconFTW: Recon Orchestration from Domain to Findings

reconFTW: Recon Orchestration from Domain to Findings

How six2dez/reconFTW orchestrates subdomain enum, port scanning, and Nuclei against a target — setup, config, triage, and when to skip it.

Manually chaining twenty recon tools across a multi-hour session is a solved problem — the question is which orchestration framework you trust with the job. six2dez/reconFTW has 7,700+ GitHub stars as of early 2025 and active maintenance. That’s a reasonable baseline for confidence. What follows is how it actually works, where it fits, and where it doesn’t.


What reconFTW Does

reconFTW is a Bash framework that conducts a curated collection of third-party tools against a target domain. It doesn’t replace those tools — it sequences them, normalizes output into a predictable directory tree, and optionally pushes completion alerts to Slack, Discord, or Telegram. The entire pipeline is configurable through a single reconftw.cfg file; modules can be toggled without touching the core script.

The pipeline covers:

Dependencies installed during setup include Amass, Subfinder, httpx, Nuclei, ffuf, naabu, and dnsx, among others. That list is reconFTW’s main operational constraint and its main operational advantage simultaneously.


Where It Fits in a Recon Workflow

Think of recon in three layers: passive OSINT (no target contact, public data only), active enumeration (DNS queries, port scans, HTTP probing), and vulnerability identification (template scanning, fuzzing). reconFTW spans all three. That breadth is the point.

On an external pentest, reconFTW slots between initial scoping and exploitation. Hand it a root domain, let it run, then triage the structured output — Nuclei findings and live hosts first — to build a prioritized target list for manual work.

For bug bounty, it earns its keep on wide-scope programs. The Nuclei integration flags low-hanging CVEs and misconfigurations automatically, which frees time for chained and logic-based vulnerabilities that automated tooling won’t catch.

For attack surface monitoring, reconFTW can run on a schedule against a fixed domain list to surface new subdomains or newly exposed services. That said, dedicated ASM platforms handle alerting and historical trending better for that specific use case — reconFTW isn’t architected around diffing runs over time.


reconFTW vs. Recon-ng vs. Spiderfoot

Recon-ng is a modular, console-driven framework that integrates cleanly with OSINT APIs. It’s the right tool for structured, analyst-directed investigations where you want explicit control over each module. It doesn’t orchestrate active scanners like Nuclei or naabu — its scope stops at intelligence gathering.

Spiderfoot offers a web UI and strong passive OSINT coverage, particularly for building relationship graphs across IPs, domains, emails, and ASNs. Like Recon-ng, it isn’t designed to run the active scanning ecosystem reconFTW depends on.

CriterionreconFTWRecon-ngSpiderfoot
Setup complexityHigh (many deps)LowLow
Passive OSINT depthModerateHighHigh
Active scanningStrongMinimalMinimal
Vuln identificationStrong (Nuclei)NoneNone
CustomizationConfig fileModule-levelModule-level
Best forBug bounty, pentestsOSINT investigationsEntity mapping

reconFTW wins when you need end-to-end coverage through vulnerability identification in a single run, the target scope is broad, and you’re running on a VPS where a long-running process is acceptable.

Skip it when you need a lightweight passive lookup, when network controls block active scanning, when your workflow requires a UI or API for team collaboration, or when the engagement requires audit-grade logging.


Before You Run It

Authorization. reconFTW does active scanning — DNS brute force, port scanning, HTTP probing, Nuclei vulnerability checks. Running it without explicit written authorization is illegal in most jurisdictions and violates every major bug bounty platform’s terms. Confirm scope before execution, every time.

Resource footprint. A full run against a large domain takes several hours and generates significant outbound traffic. Run it on a dedicated VPS. The project’s README calls out that full-run mode is not recommended on low-bandwidth connections.

Notifications. Configure a Slack, Discord, or Telegram webhook in reconftw.cfg before a long run. Polling a terminal for hours is unnecessary friction.


Reproducible Setup on Ubuntu 22.04

All commands below come from the official installation documentation in the reconFTW repository.

Step 1 — Clone the Repository

git clone https://github.com/six2dez/reconftw.git
cd reconftw

Step 2 — Run the Installer

./install.sh

The installer pulls and compiles all dependencies into ~/go/bin and related paths. On a 2-core / 4 GB VPS, budget 5–15 minutes depending on network speed. Start it, then handle configuration while it runs.

Step 3 — Configure the Tool

cp reconftw.cfg.sample reconftw.cfg
nano reconftw.cfg

First-run values worth reviewing:

Step 4 — Run a Scoped Test

For a passive-only smoke test against an authorized domain:

./reconftw.sh -d example.com -p

The -p flag skips active scanning modules. Output lands in ~/reconftw/Recon/example.com/.

For a full run (confirm authorization before executing):

./reconftw.sh -d example.com -r

Add -s to constrain scope to the target domain and direct subdomains, which prevents aggressive expansion on wildcard scopes.

Step 5 — Triage the Output

reconFTW writes to a predictable directory tree:

~/reconftw/Recon/example.com/
├── subdomains/       # Enumerated subdomain lists
├── webs/             # Live web hosts
├── nuclei/           # Vulnerability scan results
├── screenshots/      # Web screenshots
├── ports/            # Port scan data
└── osint/            # Passive intelligence

Start with nuclei/ — findings are categorized by severity. Cross-reference webs/ and ports/ to build a prioritized target list for manual follow-up. Don’t treat automated findings as ground truth; treat them as a triage queue.


Strengths and Honest Limitations

Where it holds up:

Where it falls short:

I’ve seen the dependency chain break on Ubuntu installs where Go version mismatches caused naabu or dnsx to compile incorrectly. The output directories still populate, but port and DNS data is incomplete. Run naabu -version and dnsx -version after install to confirm the binaries are functional before a real engagement.


Integration Patterns for Existing Pipelines

If you’re already running a custom recon pipeline, reconFTW’s config file makes it straightforward to isolate specific module groups. Setting SUBDOMAINS_ACTIVE=true and HTTP_PROBE=true while disabling everything else turns reconFTW into a subdomain-to-live-hosts resolver — useful if you want its passive source coverage without the full scanning stack.

For team environments, point the output directory at a shared NFS mount or sync it to an S3-compatible bucket via a post-run script. That makes findings immediately available without requiring SSH access to the scan host.

For broader context on the tools reconFTW orchestrates: the Nuclei documentation from ProjectDiscovery covers template-based scanning and severity interpretation, which directly applies to reading reconFTW’s nuclei output. The Amass User Guide covers the DNS enumeration methodology driving a significant portion of subdomain discovery.


The first concrete step after reading this: spin up a fresh Ubuntu 22.04 VPS, run the installer, and point reconFTW at a domain in an authorized bug bounty scope with -p (passive only). Validate the subdomain output against what you’d get from a manual Subfinder or Amass run. If the counts are comparable, your install is healthy and you have a working baseline for scoped active runs.