CTFR-Reloaded
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.pyen lugar dectfr-reloaded.
Demo
Capturas reales con osint.com.ar: todas las fuentes, resolucion DNS, comprobacion HTTP, takeover, TLS, CDN y scoring.
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
Tarjetas de resumen, distribucion de scores, keywords y tabla interactiva
python -m ctfr_reloaded serve
# → http://127.0.0.1:9473/
Consola de actividad
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)
- Crear tag
vX.Y.Zy pushearlo a GitHub - Configurar secret
PYPI_API_TOKENen el repo - 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.