Skip to main content

ReconForge

 ____  _____ ____ ___  _   _ _____ ___  ____   ____ _____
|  _ \| ____/ ___/ _ \| \ | |  ___/ _ \|  _ \ / ___| ____|
| |_) |  _|| |  | | | |  \| | |_ | | | | |_) | |  _|  _|
|  _ <| |__| |__| |_| | |\  |  _|| |_| |  _ <| |_| | |___
|_| \_\_____\____\___/|_| \_|_|   \___/|_| \_\\____|_____|

Python License: MIT PRs Welcome GitHub stars GitHub issues

AI-assisted recon toolkit for bug bounty hunters and security researchers

ReconForge combines practical recon automation with AI triage prompts so authorized testers can move from raw findings to prioritized hypotheses faster. Built for speed, reliability, and ease of use.

โœจ Features

  • ๐Ÿ”Ž Subdomain Discovery - Find subdomains from certificate transparency data via crt.sh
  • ๐Ÿ” DNS Enumeration - Enumerate DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA, SRV)
  • ๐Ÿ” SSL/TLS Analysis - Certificate validation, expiration detection, cipher analysis
  • โšก Concurrent Port Scanning - Fast multi-port scanning with ThreadPoolExecutor
  • ๐Ÿงฌ Technology Detection - Identify tech stacks from headers, cookies, and body signals
  • ๐Ÿงญ Scope Checking - Validate targets against exact hosts, wildcards, IP ranges, and CIDR blocks
  • ๐Ÿ“„ Markdown Reports - Professional reports with findings, technologies, and collection notes
  • ๐Ÿค– AI Triage Prompts - Structured prompts for analyzing HTTP responses, auth flows, APIs, and more
  • ๐ŸŽจ Rich Terminal Output - Beautiful tables, status indicators, and progress spinners
  • ๐Ÿš€ Production Ready - Comprehensive tests, CI/CD, and error handling

๐Ÿš€ Quick Start

Installation

# Install from PyPI (recommended)
pip install reconforge

# Or install from source
git clone https://github.com/ferasbusiness666/ReconForge.git
cd ReconForge
pip install .

Basic Usage

# Discover subdomains
reconforge subdomains -d example.com

# Enumerate DNS records
reconforge dns-enum -d example.com

# Scan SSL/TLS certificate
reconforge ssl-scan -d example.com

# Scan common ports
reconforge portscan -t api.example.com

# Detect technologies
reconforge techdetect -u https://api.example.com

# Check scope
reconforge scopecheck -t targets.txt -s scope.txt

# Generate full report
reconforge report -d example.com --output report.md

๐Ÿ“– Detailed Usage

Subdomain Discovery

Discover subdomains using certificate transparency logs:

reconforge subdomains -d example.com

Output:

       Subdomains for example.com
โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ #  โ”ƒ Subdomain         โ”ƒ
โ”กโ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ 1  โ”‚ api.example.com   โ”‚
โ”‚ 2  โ”‚ login.example.com โ”‚
โ”‚ 3  โ”‚ www.example.com   โ”‚
โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Total: 3

Port Scanning

Scan common ports with concurrent scanning for speed:

# Default: scan common ports (80, 443, 8080, 8443, 22, 21, 3306, 6379)
reconforge portscan -t api.example.com

# Custom ports
reconforge portscan -t api.example.com --ports 80,443,3000,5000

Output:

            Port scan for api.example.com
โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Port โ”ƒ Status    โ”ƒ Banner / Note                   โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚   80 โ”‚ ๐ŸŸข open   โ”‚ HTTP/1.1 301 Moved Permanently  โ”‚
โ”‚  443 โ”‚ ๐ŸŸข open   โ”‚ No banner                       โ”‚
โ”‚ 8080 โ”‚ ๐Ÿ”ด closed โ”‚ Connection refused              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Technology Detection

Fingerprint web technologies from HTTP headers and response body:

reconforge techdetect -u https://api.example.com

Output:

Final URL: https://api.example.com/
HTTP status: 200

Detected Technologies
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Technology              โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ nginx                   โ”‚
โ”‚ HSTS                    โ”‚
โ”‚ Content Security Policy โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Scope Checking

Validate targets against your bug bounty scope:

reconforge scopecheck -t targets.txt -s scope.txt

scope.txt:

example.com
*.example.com
192.0.2.0/24

targets.txt:

api.example.com
login.example.com
thirdparty.net
192.0.2.50

Output:

In-Scope Targets
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Target            โ”ƒ Reason                     โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ api.example.com   โ”‚ matched wildcard *.example.com โ”‚
โ”‚ 192.0.2.50        โ”‚ matched CIDR 192.0.2.0/24 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Out-of-Scope Targets
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Target             โ”ƒ Reason                โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ thirdparty.net     โ”‚ no scope rule matched โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Generate Report

Create a comprehensive markdown report combining all findings:

reconforge report -d example.com --output report.md

See examples/example_report.md for a sample report.

๐Ÿค– AI Triage Prompts

ReconForge includes a library of AI-assisted triage prompts in prompts/ai_triage.md for analyzing:

  • HTTP responses and headers
  • Authentication and session flows
  • Sensitive and admin-looking endpoints
  • JavaScript routes and feature flags
  • API authorization patterns
  • Parameter anomalies
  • Finding prioritization

Important: Always remove secrets, tokens, and proprietary data before pasting into any AI system.

๐Ÿ›  Development

Setup Development Environment

git clone https://github.com/ferasbusiness666/ReconForge.git
cd ReconForge
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt
pip install -e .

Running Tests

# All tests
pytest

# With coverage
pytest --cov=reconforge

# Specific test file
pytest tests/test_subdomains.py -v

Code Quality

# Format code
black reconforge tests

# Lint
flake8 reconforge tests

# Type check
mypy reconforge

# Sort imports
isort reconforge tests

๐Ÿ“‹ Project Structure

reconforge/
  __init__.py           # Package metadata
  cli.py               # CLI commands
  subdomains.py        # Subdomain discovery
  portscan.py          # Port scanning with concurrency
  techdetect.py        # Technology detection
  scopecheck.py        # Scope validation
  report.py            # Report generation
prompts/
  ai_triage.md         # AI triage prompt library
tests/
  test_*.py            # Unit tests
examples/
  example_report.md    # Sample generated report
.github/workflows/
  ci.yml               # GitHub Actions CI/CD
requirements.txt       # Runtime dependencies
requirements-dev.txt   # Development dependencies
setup.py              # Package configuration

๐ŸŽฏ Why ReconForge?

Avoid Out-of-Scope Mistakes

Bug bounty scope can include exact hosts, wildcard subdomains, and IP ranges while excluding third-party systems. ReconForge's scope checker separates in-scope and out-of-scope targets before testing.

Reduce Manual Recon Time

Manual recon means jumping between CT logs, socket checks, browser tabs, and notes. ReconForge provides an auditable workflow for common first-pass tasks with easy-to-copy output.

Bring AI Into Recon

ReconForge includes model-agnostic AI triage prompts that help analyze findings while keeping final validation in your hands.

๐Ÿ”’ Security & Ethics

ReconForge is intended only for systems you own or have explicit permission to test. You are responsible for:

  • Following program scope and rules of engagement
  • Complying with all applicable laws and regulations
  • Respecting rate limits and terms of service
  • Using only on authorized targets

๐Ÿ“ License

MIT License - see LICENSE for details.

๐Ÿค Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

๐Ÿ“š Resources

๐Ÿ™ Acknowledgments

Built with โค๏ธ for the security research community.


Questions? Open an issue or check the discussions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reconforge-1.3.0.tar.gz (42.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reconforge-1.3.0-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

File details

Details for the file reconforge-1.3.0.tar.gz.

File metadata

  • Download URL: reconforge-1.3.0.tar.gz
  • Upload date:
  • Size: 42.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for reconforge-1.3.0.tar.gz
Algorithm Hash digest
SHA256 8f658b472bd1c537ce581033f18c05b6e4bdbb54b769a33dae4e678bb5b2b819
MD5 3b3f2eeac5b8c237f6b9f2767de2f0a4
BLAKE2b-256 83e7bfcc9f234cfae38366af7ce2408c5dfc28753f5836f70a396c8bcf49a569

See more details on using hashes here.

File details

Details for the file reconforge-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: reconforge-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 43.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for reconforge-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06c8fba998e88747077baf32b1b9137acac80db258c692b8d3e9df91e204a431
MD5 cb11a5e45903b4bfbc835345b9fed7ad
BLAKE2b-256 7b6c32d3cb873f8604ded49b6952a3a8ce6cb1ec432a5fc00870f54a6cd65241

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page