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

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

python ctfr.py -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

Levantar el dashboard:

pip install "ctfr-reloaded[api]"
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)

pip install ctfr-reloaded

# Con extras
pip install "ctfr-reloaded[api,pdf]"

Desde GitHub

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

# 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)
python ctfr.py -d ejemplo.com

Scan FULL (traer todo)

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

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

Equivalente en una linea:

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

Salida JSON en lugar de HTML:

python ctfr.py -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
python ctfr.py -d ejemplo.com --resolve --alive --takeover --tls --cdn --tqdm

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

# TUI interactivo
python ctfr.py -d ejemplo.com --tui

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

# Pipeline
python ctfr.py -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.

API local y dashboard web

pip install "ctfr-reloaded[api]"
python -m ctfr_reloaded serve
URL Descripcion
http://127.0.0.1:9473/ Dashboard web — formulario, estadisticas, tabla interactiva
http://127.0.0.1:9473/docs Documentacion API (Swagger)
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 FULL (API)
http://127.0.0.1:9473/health Estado del servidor

Puerto por defecto: 9473 (configurable con --port).

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.1

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.1
File Size Uploaded Provenance Actions
ctfr_reloaded-4.2.1.tar.gz 55.7 kB Without provenance Details for ctfr_reloaded-4.2.1.tar.gz

Built distribution (wheel)

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

Total release size: 113.1 kB

Release files / ctfr_reloaded-4.2.1.tar.gz

Download URL ctfr_reloaded-4.2.1.tar.gz
Size 55.7 kB
Tags Source
SHA-256 checksum
How to use checksums
cbe553f10eb393c601aece209b5be91e57ae29139ef5b60420cdcd8aa71abbcd
BLAKE2b-256 checksum
How to use checksums
2cb1574c0800e93f788d977eacb75c3011cdc863b27d1b9c064de4cabf2d5a4f
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.1-py3-none-any.whl

Download URL ctfr_reloaded-4.2.1-py3-none-any.whl
Size 57.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
baf9ec89f473a8139783914fc40b10a7f11439d9b0ada7d800e6f419056d880b
BLAKE2b-256 checksum
How to use checksums
ff5c7d612c215bf190441f460e93edbe6ebeaaf59ba1253efa92ee299ac41e20
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.1

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