Data Model & I/O

Complete reference for reconFTW's input formats and output structure.


Input Formats

Single Domain (-d)

# Standard domain
./reconftw.sh -d example.com -r

# Subdomain (scans parent automatically)
./reconftw.sh -d api.example.com -r

# With protocol (protocol is stripped)
./reconftw.sh -d https://example.com -r

Domain List (-l)

./reconftw.sh -l targets.txt -r

targets.txt format:

example.com
target.org
subdomain.another.com
  • One domain per line

  • No protocols, paths, or ports

  • Blank lines ignored

  • Comments NOT supported

CIDR/IP Range (-m)

Supported formats:

  • CIDR: 192.168.1.0/24

  • Range: 192.168.1.1-255

  • Single IP: 192.168.1.1

Scope Files

In-scope (-i):

Out-of-scope (-x):

Wildcards supported: *.example.com matches anything.example.com


Output Directory Structure

All results stored in Recon/<domain>/:


Key Output Files

subdomains/subdomains.txt

The master list of all discovered subdomains.

How it's built:

  1. Passive sources (subfinder, APIs)

  2. Certificate transparency (crt.sh)

  3. Brute-force (if enabled)

  4. Permutations (if enabled)

  5. All sources merged and deduplicated

webs/webs.txt

Live web servers (responding HTTP/HTTPS).

Filtering applied:

  • DNS resolves ✓

  • TCP connection succeeds ✓

  • HTTP response received ✓

webs/webs_all.txt

Detailed web server information.

Format: URL [status] [title] [server] [content-type]

hosts/ips.txt

All resolved IP addresses (CDN filtered).

vulns/nuclei_output.json

Machine-readable vulnerability data.

Useful jq queries:

hotlist.txt

Risk-scored priority findings.


Module Input/Output Matrix

Module
Primary Input
Key Outputs

OSINT

Domain

osint/emails.txt, osint/github_*.json, osint/dorks.txt

Subdomains

Domain

subdomains/subdomains.txt, subdomains/takeover.txt

Web Probing

Subdomains

webs/webs.txt, webs/webs_all.txt

URL Collection

Live webs

webs/url_extract.txt, js/js_endpoints.txt

Fuzzing

Live webs

fuzzing/fuzzing_full.txt

Ports

IPs

hosts/portscan_active.txt, hosts/portscan_active.xml

Vulns

URLs

vulns/nuclei_output.json, vulns/*.txt


Data Flow


File Formats

Text Lists (.txt)

One item per line, no headers:

JSON Output (.json)

NDJSON format (one JSON object per line):

XML Output (.xml)

Standard Nmap XML for port scans:

CSV Output

Some tools output CSV (httpx with custom flags):


Checkpoint System

The .called_fn/ directory tracks completed functions.

How It Works

Resuming Scans

If interrupted, reconFTW skips completed functions:

Force Re-run


Log Files

Main Log

Recon/<domain>/.log/reconftw.log

Debug Mode

Outputs verbose tool commands and intermediate results.


Aggregated Outputs

assets.jsonl

Machine-readable asset inventory:

HTML Report (with AI)

When using -y/--ai:


Integration Exports

Faraday

Automatic import when configured:

  • Nuclei JSON → Faraday vulnerabilities

  • Host info → Faraday hosts

  • Services → Faraday services

Custom Export


Common Data Operations

Find All Critical Vulns

Merge Results from Multiple Scans

Generate Statistics


Storage Requirements

Approximate disk usage per scan:

Target Size
Storage

Small (<100 subs)

50-200 MB

Medium (100-1K subs)

200-500 MB

Large (1K-10K subs)

500 MB - 2 GB

Massive (10K+ subs)

2-10 GB

Space-heavy components:

  • Screenshots (~500KB each)

  • Fuzzing results (large wordlists)

  • Full port scan XML

Cleanup command:


Documentation Info Branch: dev | Version: v3.0.0+ | Last updated: February 2026

Last updated