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.

Demo

Terminal

CTFR-Reloaded terminal demo

$ python ctfr.py -d ejemplo.com --source all --resolve --alive --takeover --tls --cdn --tqdm
[+] 42 subdominios encontrados. Listo!

Ver salida completa en docs/demo-terminal.txt.

Dashboard web

Dashboard — resultados del scan

Dashboard — consola de actividad

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 (logs de fuentes, DNS, HTTP, etc.). Ver captura en la seccion Dashboard web arriba. El reporte -o reporte.html usa el mismo diseno.

Publicar en PyPI (mantenedores)

  1. Crear release v4.2.0 en GitHub
  2. Configurar secret PYPI_API_TOKEN en el repo
  3. El workflow publish-pypi.yml publica automaticamente

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

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.0
File Size Uploaded Provenance Actions
ctfr_reloaded-4.2.0.tar.gz 55.1 kB Without provenance Details for ctfr_reloaded-4.2.0.tar.gz

Built distribution (wheel)

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

Total release size: 112.3 kB

Release files / ctfr_reloaded-4.2.0.tar.gz

Download URL ctfr_reloaded-4.2.0.tar.gz
Size 55.1 kB
Tags Source
SHA-256 checksum
How to use checksums
77fd1e34e211c7843da7eaa62f71db9dcf68a98caa78d4d1d29d155b438ed002
BLAKE2b-256 checksum
How to use checksums
19e33475422f423bd36e6429bdb59434f5cd4d4d689cd818d54a6b0e58bc7df0
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.0-py3-none-any.whl

Download URL ctfr_reloaded-4.2.0-py3-none-any.whl
Size 57.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a86e6922fced256c15a52f0a7228a657fde990c29a847620adc990bd78cb2490
BLAKE2b-256 checksum
How to use checksums
5fc6fa202cd1a3ae2d18ca0fc79d3884287f1581d52b82f75ae780151fb1cc64
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.0

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