Skip to main content

CTFR-Reloaded

Python License: GPL v3 CI 100% Free PyPI

Herramienta de enumeracion de subdominios 100% gratuita — sin API keys, sin registro, sin costo.

Desarrollado por MrGuillote.

CLI + TUI Dashboard web Consola en vivo
8 fuentes CT gratuitas Stats, scores y export Logs SSE durante el scan
DNS, HTTP, takeover, TLS, CDN Tabla filtrable y ordenable Mismo motor que la terminal

Inicio rapido

Un solo comando. Terminal, dashboard web y export PDF vienen incluidos — no hace falta instalar extras.

pip install ctfr-reloaded
Que queres hacer Comando
Scan en terminal ctfr-reloaded -d ejemplo.com
Dashboard web python -m ctfr_reloaded serve → http://127.0.0.1:9473/
Reporte HTML ctfr-reloaded -d ejemplo.com -o reporte.html
Reporte PDF ctfr-reloaded -d ejemplo.com -o reporte.pdf

Si clonaste el repo, tambien podes usar python ctfr.py en lugar de ctfr-reloaded.


Demo

Capturas reales con osint.com.ar: todas las fuentes, resolucion DNS, comprobacion HTTP, takeover, TLS, CDN y scoring.

Terminal

CTFR-Reloaded — scan en terminal

CLI con colores, logs por fuente y barras de progreso

ctfr-reloaded -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm -v

Salida completa de ejemplo: docs/demo-terminal.txt.

Dashboard web

Dashboard — resultados del scan

Tarjetas de resumen, distribucion de scores, keywords y tabla interactiva

python -m ctfr_reloaded serve
# → http://127.0.0.1:9473/

Consola de actividad

Dashboard — consola de actividad en vivo

Panel lateral LOG con streaming en tiempo real (fuentes, DNS, HTTP, scoring…)


Instalacion

pip (PyPI) — recomendado

pip install ctfr-reloaded

Incluye todo lo necesario para usar la herramienta:

Componente Dependencias Incluido
Terminal + TUI requests, colorama, dnspython, tqdm Si
Dashboard web FastAPI, uvicorn, httpx Si
Export PDF fpdf2 Si
Tests (pytest) pytest, pytest-mock, responses No — solo con [dev]

Los extras [api] y [pdf] de versiones anteriores ya no hacen falta (se mantienen vacios por compatibilidad).

Para contribuir al proyecto:

pip install "ctfr-reloaded[dev]"

Desde GitHub

git clone https://github.com/MrGuillote/ctfr-reloaded.git
cd ctfr-reloaded
pip install -e ".[dev]"

# Scan full de ejemplo
python ctfr.py -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm -v -o reporte.html --format html

Docker (GHCR)

docker pull ghcr.io/mrguillote/ctfr-reloaded:latest
docker run --rm ghcr.io/mrguillote/ctfr-reloaded:latest -d ejemplo.com

Fuentes gratuitas (8)

Fuente Flag Notas
crt.sh crtsh Lento, a veces 404/timeout
crt.name crtname Rapido, recomendado
Certspotter certspotter
HackerTarget hackertarget
Wayback Machine wayback
Anubis anubis
Bufferover bufferover
RapidDNS rapiddns
Todas all (default)

Uso rapido

# Scan basico (todas las fuentes por defecto)
ctfr-reloaded -d ejemplo.com

Scan FULL (traer todo)

Todas las fuentes + DNS + HTTP + takeover + TLS + CDN + score + reporte HTML:

ctfr-reloaded -d ejemplo.com \
  --source all \
  --resolve --alive --takeover --tls --cdn \
  --tqdm -v \
  --history \
  -o reporte.html --format html

Equivalente en una linea:

ctfr-reloaded -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm -v --history -o reporte.html --format html

Salida JSON en lugar de HTML:

ctfr-reloaded -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm -j -o resultados.json

Docker (mismo scan full):

docker run --rm ghcr.io/mrguillote/ctfr-reloaded:latest \
  -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm -v -j

Mas ejemplos

# Recon pro con barra de progreso
ctfr-reloaded -d ejemplo.com --resolve --alive --takeover --tls --cdn --tqdm

# Reporte PDF
ctfr-reloaded -d ejemplo.com -o reporte.pdf --format pdf

# TUI interactivo
ctfr-reloaded -d ejemplo.com --tui

# Watch con alertas Discord
ctfr-reloaded -d ejemplo.com --watch --interval 1800 \
  --discord-webhook "https://discord.com/api/webhooks/..."

# Pipeline
ctfr-reloaded -d ejemplo.com --pipe | httpx -silent

Features

Feature Flag
Barra tqdm --tqdm
TUI interactivo --tui
Export PDF -o reporte.pdf
Webhook Discord --discord-webhook URL
Webhook Telegram --telegram-token + --telegram-chat-id
Takeover detection --takeover
Historial SQLite --history
Monitoreo --watch --interval SEC
Desactivar score --no-score

Score (priorizacion)

Cada subdominio recibe un score de 0 a 100 para ordenar resultados: arriba van los que conviene revisar primero en un pentest u OSINT.

No es un nivel de riesgo real ni confirma vulnerabilidades; es una heuristica de prioridad.

Factor Puntos
Base +10
Palabra clave interesante en el nombre (api, dev, mail, admin, test, git, etc.) +15 por match
Resuelve DNS (--resolve) +10
Responde HTTP (--alive) +20
Posible subdomain takeover (--takeover) +50
Deteccion CDN (--cdn) +5
Info TLS (--tls) +5
Nombre corto (apex o pocas partes, ej. ejemplo.com) +5

Ejemplo sin flags extra:

api.ejemplo.com     → 25  (10 + keyword "api")
dev.ejemplo.com     → 25  (10 + keyword "dev")
ejemplo.com         → 15  (10 + nombre corto)
www.ejemplo.com     → 10  (solo base)

Con --resolve --alive --takeover los scores suben segun lo que se detecte en cada host. Para desactivar el calculo: --no-score.


Servidor web local (dashboard)

El modo web levanta un servidor HTTP en tu maquina (por defecto 127.0.0.1:9473). Incluye el dashboard visual y endpoints REST para integrar scans desde otros scripts.

No usa servicios externos ni pide API keys — todo corre localmente en tu PC.

python -m ctfr_reloaded serve
# Abrir en el navegador: http://127.0.0.1:9473/

Puerto configurable: python -m ctfr_reloaded serve --port 8080

URL Descripcion
http://127.0.0.1:9473/ Dashboard web — formulario, estadisticas, tabla interactiva
http://127.0.0.1:9473/docs Documentacion interactiva (Swagger) de los endpoints REST
http://127.0.0.1:9473/scan?domain=ejemplo.com Scan JSON basico
http://127.0.0.1:9473/scan?domain=ejemplo.com&source=all&resolve=true&alive=true&takeover=true&tls=true&cdn=true&score=true Scan completo (JSON)
http://127.0.0.1:9473/health Estado del servidor

El dashboard incluye tarjetas de estadisticas, distribucion de scores, keywords detectadas, filtro y orden por columnas, export a JSON/HTML, y una consola lateral en vivo durante el scan. Ver capturas en la seccion Demo. El reporte -o reporte.html usa el mismo diseno.


Publicar en PyPI (mantenedores)

  1. Crear tag vX.Y.Z y pushearlo a GitHub
  2. Configurar secret PYPI_API_TOKEN en el repo
  3. Ejecutar workflow publish-pypi.yml (manual o tras release publicado)

Desarrollo

pip install -e ".[dev]"
pytest

Reportar bugs

Usa los issue templates del repo.


Licencia

GPL v3 — LICENSE

Metadata

Release files for ctfr-reloaded 4.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ctfr-reloaded 4.2.2
File Size Uploaded Provenance Actions
ctfr_reloaded-4.2.2.tar.gz 56.7 kB Without provenance Details for ctfr_reloaded-4.2.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ctfr-reloaded 4.2.2
File Interpreter ABI Platform Actions
ctfr_reloaded-4.2.2-py3-none-any.whl Python 3 none any Details for ctfr_reloaded-4.2.2-py3-none-any.whl

Total release size: 114.6 kB

Release files / ctfr_reloaded-4.2.2.tar.gz

Download URL ctfr_reloaded-4.2.2.tar.gz
Size 56.7 kB
Tags Source
SHA-256 checksum
How to use checksums
58e9eace67c43c189f73587d2b007a9b83b238246172e750078528e9154bfce7
BLAKE2b-256 checksum
How to use checksums
88b73020f8743d7fea13c1ff2ecb612b5dad8fe04279638526526e34020596c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / ctfr_reloaded-4.2.2-py3-none-any.whl

Download URL ctfr_reloaded-4.2.2-py3-none-any.whl
Size 57.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e5d1eba17b4846e0005dc9e36e791f89f54cdfbb4cb0c5cf769d0fcd9ba1098
BLAKE2b-256 checksum
How to use checksums
2bbbbf4e281fc2ee037f5841e33786307b8751b091d9cb1de73054597c241d13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Security for ctfr-reloaded 4.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page