CTFR-Reloaded
Herramienta de enumeracion de subdominios 100% gratuita — sin API keys, sin registro, sin costo.
Desarrollado por MrGuillote.
Demo
Terminal
$ 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
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)
- Crear release
v4.2.0en GitHub - Configurar secret
PYPI_API_TOKENen el repo - El workflow
publish-pypi.ymlpublica 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.