Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
knockpy — Knock Subdomain Scan | Kitploit
Herramientas/GitHubGitHub/guelfoweb/knockpy
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoRecopilación de InformaciónPruebas de PenetraciónEnumeración de SubdominiosAnálisis de DNS
GitHubguelfoweb/knockpy

knockpy

Knock Subdomain Scan

Ver Repositorio
4.2k873hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

🔍 Knockpy Subdomain Scan v9.0

✅ Rápido y Async • 🔐 Recon + Fuerza Bruta • 🔧 Fácil de Extender

KnockPy es una herramienta modular de Python 3 para enumerar subdominios mediante reconocimiento pasivo y fuerza bruta, ahora con soporte async/await, rendimiento mejorado y manejo moderno de HTTP/TLS.


🚀 Características (v9)

  • ✅ Escaneo asíncrono con httpx y resolución DNS
  • ✅ Modular: añade nuevas fuentes pasivas fácilmente
  • 🔍 Soporta reconocimiento pasivo, fuerza bruta o ambos
  • 🎨 Salida de terminal formateada con Rich (tablas, progreso, paneles)
  • 📜 Valida el estado HTTP/HTTPS, certificado TLS e IP
  • ⚠️ Detecta soporte de TLS heredado (TLS 1.0/1.1) como advertencia en CLI/verboso/informe HTML
  • 🧾 Verifica AXFR (transferencia de zona) en el dominio raíz durante escaneos en modo dominio
  • 🔎 --verbose diagnóstico de un solo dominio (DNS/TCP/TLS/cadenas de redirección/errores de solicitud + comprobaciones de seguridad)
  • 💡 Soporta detección de DNS comodín
  • 🧪 Informes SQLite con catálogo interactivo (show/delete/export/search)
  • 🔐 Soporta las APIs de VirusTotal y Shodan
  • 🚀 Tiempo de ejecución de fuerza bruta optimizado con caché de punto final de prueba TLS (no requiere cambios de tiempo de espera)

📦 Instalación

Desde la fuente de GitHub (recomendado)

root@kitploit:~
git clone https://github.com/guelfoweb/knockpy.git
cd knockpy
# recomendado: instalar en un entorno virtual
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -U pip
pip install .

# alternativa: instalar para el usuario actual (sin venv)
# python3 -m pip install --user .

⚠️ Versión de Python recomendada: 3.9+

🧱 Estructura del proyecto

El código está organizado por responsabilidad, con fachadas estables para compatibilidad hacia atrás:

root@kitploit:~
knockpy/
  cli.py                   # Punto de entrada CLI (fachada/orquestación)
  cli_parts/
    status.py              # renderizado del panel de estado/ejecución
    setup.py               # configuración interactiva y valores predeterminados persistentes en tiempo de ejecución
    report.py              # modo informe interactivo
    scan_flow.py           # reglas de exclusión, prueba de reconocimiento, ayudantes de comodín
  core.py                  # fachada principal pública (compatibilidad)
  engine/
    runtime.py             # implementación del motor de escaneo
  storage.py               # fachada de almacenamiento público (compatibilidad)
  storage_parts/
    db.py                  # persistencia/configuraciones SQLite
    export.py              # orquestación de exportación de informes
    html_report.py         # renderizado de informes HTML
  output.py                # renderizado de salida en terminal
  server_versions.py       # catálogo de versiones de servidores web
  knockpy.py               # exportaciones del módulo de compatibilidad

Nota de compatibilidad:

  • Importaciones externas preferidas: import knockpy o from knockpy import KNOCKPY.
  • Los módulos internos están divididos en engine/, cli_parts/ y storage_parts/.

Usando pip

Solo después de que la versión estable se publique en GitHub

root@kitploit:~
pip install knock-subdomains

🧪 Uso

root@kitploit:~
knockpy -d dominio.com [opciones]

Opciones

Ajuste de rendimiento: --threads y --timeout

Estas dos opciones tienen el mayor impacto en el tiempo de ejecución para escaneos grandes.

  • --threads controla la concurrencia (cuántos objetivos se procesan en paralelo)
  • --timeout controla cuánto tiempo espera cada paso de red antes de rendirse

Compromiso:

  • threads más alto = escaneos más rápidos, pero más carga en CPU/red/DNS y mayor riesgo de límites de tasa remotos
  • timeout más bajo = escaneos más rápidos, pero mayor riesgo de perder objetivos lentos pero válidos (falsos negativos)

Perfiles recomendados:

  • escaneo pequeño/preciso (pocos dominios): --threads 50 --timeout 5
  • escaneo equilibrado: --threads 150 --timeout 4
  • escaneo grande (10k+ dominios): comenzar con --threads 250 --timeout 3

Si necesitas velocidad y completitud en listas muy grandes, usa una estrategia de 2 pasadas:

  1. pasada rápida: --threads 250 --timeout 3
  2. pasada de reintento solo para objetivos faltantes/inciertos: --threads 80 --timeout 5 (o más alto)

Notas:

  • Los valores CLI siempre anulan los valores guardados de configuración
  • Los valores guardados de configuración (--setup) anulan los valores predeterminados incorporados
  • Los valores predeterminados incorporados actuales son threads=250, timeout=3

📌 Ejemplos

🔎 Recon + Fuerza Bruta

root@kitploit:~
knockpy -d example.com --recon --bruteforce

🧪 Prueba de servicios de reconocimiento

root@kitploit:~
knockpy -d example.com --recon --test

🔄 Actualizar catálogo de versiones más recientes de servidores web

root@kitploit:~
knockpy --update-versions

🆕 Verificar actualizaciones de Knockpy

root@kitploit:~
knockpy --check-update

⚙️ Configuración de fuentes de reconocimiento (editable)

En la primera ejecución, KnockPy crea:

root@kitploit:~
~/.knockpy/recon_services.json

Puedes agregar/deshabilitar fuentes editando el array services. También puedes apuntar a una ruta de archivo personalizada sin cambiar código:

root@kitploit:~
export KNOCK_RECON_SERVICES=/ruta/a/recon_services.json

Cada servicio soporta:

  • name
  • enabled (true/false)
  • parser
  • url_template (soporta {domain}, {virustotal_key}, {shodan_key})
  • requires_api (virustotal o shodan, opcional)

Analizadores soportados:

  • csv_first_column
  • rapiddns_html_td
  • json_list
  • virustotal_subdomains
  • shodan_subdomains

📥 Dominio desde stdin

root@kitploit:~
echo "example.com" | knockpy -d

🧠 Claves API (opcional)

root@kitploit:~
export API_KEY_VIRUSTOTAL=tu-clave-api-virustotal
export API_KEY_SHODAN=tu-clave-api-shodan

Puedes usar archivo .env:

root@kitploit:~
API_KEY_VIRUSTOTAL=tu-clave-api-virustotal
API_KEY_SHODAN=tu-clave-api-shodan

💾 Informes (SQLite + Exportación HTML interactiva)

root@kitploit:~
knockpy -d example.com --recon --bruteforce
knockpy --report list
knockpy --report latest
knockpy --report

Menú de informe interactivo:

  • 1 show
  • 2 delete
  • 3 export
  • 4 search
  • 0 reset db (pide confirmación explícita)

Salir del modo informe:

  • presiona Enter en el mensaje de acción vacío
  • o presiona CTRL+C

🔍 Diagnóstico de un solo dominio

root@kitploit:~
knockpy -d forum.example.com --verbose

🧪 Solo prueba de comodín

root@kitploit:~
knockpy -d example.com --wildcard

🧬 Uso de la API de Python

KnockPy se puede usar como módulo de Python:

root@kitploit:~
import knockpy

result = knockpy.KNOCKPY("example.com", timeout=5.0, threads=20)
print(result["domain"], result["ip"])

o:

root@kitploit:~
from knockpy import KNOCKPY

domain = 'example.com'

results = KNOCKPY(
    domain,
    dns="8.8.8.8",
    useragent="Mozilla/5.0",
    timeout=5,
    threads=10,
    recon=True,
    bruteforce=True,
    wordlist=None,
    silent=False
)

for entry in results:
    print(entry['domain'], entry['ip'], entry['http'], entry['cert'])

📂 Lista de palabras

Se incluye una lista de palabras predeterminada en knockpy/wordlist/wordlist.txt. Puedes proporcionar la tuya propia con --wordlist.

Prueba

root@kitploit:~
python3 -m pytest

# (opcional) ejecución de prueba del script de ejemplo
python3 examples/poc.py

📖 Licencia

Licenciado bajo la licencia GPLv3.

Gianni Amato (@guelfoweb)

Descargar herramienta
FlagDescripción
-d, --domainDominio objetivo (o stdin si se usa sin valor)
-f, --fileArchivo con lista de dominios
--reconHabilita reconocimiento pasivo
--bruteforce, --bruteHabilita fuerza bruta usando lista de palabras
--exclude TIPO VALORExcluir coincidencias (status, length/lenght, body)
--verboseDiagnóstico profundo solo para escaneos de un solo dominio
--wildcardProbar DNS comodín y salir
--testCon --recon, probar cada fuente de reconocimiento (falló/vacía/datos)
--setupConfiguración interactiva (valores predeterminados de ejecución + claves API en DB)
--update-versionsActualizar catálogo local de versiones más recientes de servidores web
--report [ID|latest|list]Modo informe (mostrar/eliminar/exportar/buscar/resetear db interactivo, exportar HTML)
--check-updateVerificar en línea si hay una versión más reciente de Knockpy disponible en PyPI
--wordlistSobrescribir lista de palabras en tiempo de ejecución
--dnsSobrescribir resolutor DNS en tiempo de ejecución
--useragentSobrescribir agente de usuario HTTP en tiempo de ejecución
--timeoutSobrescribir tiempo de espera en tiempo de ejecución (segundos)
--threadsSobrescribir trabajadores concurrentes en tiempo de ejecución
--silentOcultar barra de progreso
--jsonSalida solo JSON (fuerza --silent)
--statusImprimir estado de ejecución y continuar
-h, --helpMostrar mensaje de ayuda