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
dnsdiag — Conjunto de herramientas de medición DNS, solución de problemas y auditoría de seguridad | Kitploit
Herramientas/GitHubGitHub/farrokhi/dnsdiag
ReconocimientoMapeo de RedesAnálisis de VulnerabilidadesRecopilación de InformaciónSeguridad de RedesAnálisis de DNS
GitHubfarrokhi/dnsdiag

dnsdiag

Conjunto de herramientas de medición DNS, solución de problemas y auditoría de seguridad

Ver Repositorio
1.1k111hace 15 díasRevisado 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
Sitio web

PyPI PyPI Downloads Downloads PyPI Docker Pulls GitHub stars

Conjunto de herramientas de medición, resolución de problemas y auditoría de seguridad de DNS

¿Alguna vez te has preguntado si tu ISP está interceptando tu tráfico DNS? ¿Has notado algún comportamiento inusual en tus respuestas DNS, o has sido redirigido a la dirección incorrecta y has sospechado que algo anda mal con tu DNS? Ofrecemos un conjunto de herramientas para realizar auditorías básicas en tus solicitudes y respuestas DNS, ayudándote a asegurarte de que tu DNS funcione como se espera.

Con dnsping, puedes medir el tiempo de respuesta de cualquier servidor DNS para consultas arbitrarias. Similar a la utilidad ping normal, dnsping ofrece funcionalidad comparable para solicitudes DNS, ayudándote a monitorear la capacidad de respuesta del servidor.

También puedes rastrear la ruta de tu solicitud DNS hasta su destino usando dnstraceroute, verificando que no esté siendo redirigida o interceptada. Al comparar consultas DNS enviadas al mismo servidor, dnstraceroute te permite observar cualquier diferencia en las rutas tomadas, alertándote sobre posibles problemas.

dnseval evalúa múltiples resolutores DNS para ayudarte a elegir el mejor resolutor DNS para tu red. Si bien se recomienda usar tu propio resolutor DNS para evitar depender de resolutores DNS de terceros, dnseval puede ayudar a seleccionar el resolutor DNS óptimo cuando sea necesario. Te permite comparar servidores DNS según el rendimiento (latencia) y la confiabilidad (pérdida de paquetes), brindándote una visión integral para la toma de decisiones informada.

Instalación

Hay varias formas de usar este conjunto de herramientas, aunque recomendamos ejecutarlo directamente desde el código fuente para obtener una flexibilidad y control óptimos.

Código fuente

  1. Clona el repositorio git e instala las dependencias:
root@kitploit:~
git clone https://github.com/farrokhi/dnsdiag.git
cd dnsdiag
pip3 install -r requirements.txt
  1. También puedes instalar el paquete usando pip:
root@kitploit:~
pip3 install dnsdiag

Usando uv (Recomendado)

uv es un gestor de paquetes Python rápido que puede ejecutar herramientas directamente sin instalación:

root@kitploit:~
# Ejecutar dnsping directamente sin instalación
uvx --from dnsdiag dnsping google.com

# Ejecutar con opciones específicas
uvx --from dnsdiag dnsping -c 5 --tls -s 8.8.8.8 example.com

# Ejecutar dnstraceroute
uvx --from dnsdiag dnstraceroute cloudflare.com

# Ejecutar dnseval
uvx --from dnsdiag dnseval -f public-servers.txt github.com

Para instalar dnsdiag de forma persistente:

root@kitploit:~
# Instalar herramientas dnsdiag
uv tool install dnsdiag

# Actualizar a la última versión
uv tool upgrade dnsdiag

Paquete binario

De vez en cuando se publicarán paquetes binarios para Windows, Mac OS X y Linux. Puedes obtener la última versión desde la página de lanzamientos.

Plataformas soportadas

Los binarios precompilados están disponibles para:

  • Linux (x86_64, ARM64)
  • macOS (Intel, Apple Silicon)
  • Windows (x86_64)

Windows ARM64 no es compatible actualmente debido a que las dependencias de compilación requieren cadenas de herramientas de compilación nativas que no están fácilmente disponibles. Si usas Windows en ARM, puedes ejecutar dnsdiag usando el Subsistema de Windows para Linux (WSL2) o instalarlo directamente desde el código fuente.

Docker

Si prefieres no instalar dnsdiag en tu máquina local, puedes usar la imagen Docker para ejecutar las herramientas en un entorno contenerizado. Por ejemplo:

root@kitploit:~
docker run --network host -it --rm farrokhi/dnsdiag dnsping.py

dnsping

dnsping te permite hacer "ping" a un resolutor DNS enviando una consulta DNS arbitraria varias veces. Para obtener una lista completa de las opciones de línea de comandos compatibles, usa --help. Aquí hay algunos indicadores clave:

  • Usa --tcp, --tls, --doh, --quic o --http3 para seleccionar el protocolo de transporte (el valor predeterminado es UDP). Estas opciones son mutuamente excluyentes; solo se puede especificar un protocolo por comando.
  • Usa --flags para mostrar los indicadores de respuesta, incluidos los indicadores EDNS, para cada respuesta.
  • Usa --dnssec para solicitar validación DNSSEC, si está disponible.
  • Los mensajes de error DNS extendidos (RFC 8914) se muestran automáticamente cuando están presentes.
  • Usa --nsid para mostrar el Identificador del Servidor de Nombres (NSID) si está disponible (RFC 5001).
  • Usa --ecs para incluir información de Subred de Cliente EDNS para optimización de enrutamiento geográfico.
  • Usa --cookie para mostrar cookies DNS (RFC 7873) cuando estén presentes en las respuestas.
root@kitploit:~
./dnsping.py -c 5 --dnssec --flags --tls -t AAAA -s 8.8.8.8 brokendnssec.net
root@kitploit:~
dnsping.py DNS: 8.8.8.8:853, hostname: brokendnssec.net, proto: TLS, class: IN, type: AAAA, flags: [RD]
75  bytes from 8.8.8.8: seq=1   time=73.703 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=2   time=69.523 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=3   time=58.058 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=4   time=54.235 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]
75  bytes from 8.8.8.8: seq=5   time=57.806 ms  SERVFAIL [QR RD RA -- DO] [EDE:10("For brokendnssec.net/soa")]

--- 8.8.8.8 dnsping statistics ---
5 requests transmitted, 5 responses received, 0% lost
min=54.235 ms, avg=22.665 ms, max=69.523 ms, stddev=38.202 ms

dnsping también proporciona estadísticas como tiempos de respuesta mínimo, máximo y promedio, junto con la fluctuación (desviación estándar) y la pérdida de paquetes.

Aquí hay algunos casos de uso interesantes para dnsping:

  • Comparar tiempos de respuesta en diferentes protocolos de transporte (por ejemplo, UDP vs. DoH).
  • Evaluar la confiabilidad de tu servidor DNS midiendo la fluctuación y la pérdida de paquetes.
  • Medir tiempos de respuesta con DNSSEC habilitado usando la opción --dnssec.
  • Probar el comportamiento de EDNS Client Subnet para respuestas con conocimiento de geolocalización:
root@kitploit:~
./dnsping.py -c 3 --ecs 203.0.113.0/24 -s 94.140.14.14 google.com
root@kitploit:~
dnsping.py DNS: 94.140.14.14:53, hostname: google.com, proto: UDP, class: IN, type: A, flags: [RD]
66  bytes from 94.140.14.14: seq=1   time=31.407 ms  NOERROR [ECS:203.0.113.0/24/24]
66  bytes from 94.140.14.14: seq=2   time=29.156 ms  NOERROR [ECS:203.0.113.0/24/24]
66  bytes from 94.140.14.14: seq=3   time=30.892 ms  NOERROR [ECS:203.0.113.0/24/24]

--- 94.140.14.14 dnsping statistics ---
3 requests transmitted, 3 responses received, 0% lost
min=29.156 ms, avg=30.485 ms, max=31.407 ms, stddev=1.176 ms
  • Identificar servidores DNS usando la opción NSID:
root@kitploit:~
./dnsping.py -c 2 --nsid -s 8.8.8.8 google.com
root@kitploit:~
dnsping.py DNS: 8.8.8.8:53, hostname: google.com, proto: UDP, class: IN, type: A, flags: [RD]
68  bytes from 8.8.8.8: seq=1   time=36.399 ms  NOERROR [NSID:gpdns-ams]
68  bytes from 8.8.8.8: seq=2   time=32.156 ms  NOERROR [NSID:gpdns-ams]

--- 8.8.8.8 dnsping statistics ---
2 requests transmitted, 2 responses received, 0% lost
min=32.156 ms, avg=34.278 ms, max=36.399 ms, stddev=2.122 ms
  • Probar cookies DNS para mayor seguridad y optimización de caché:
root@kitploit:~
./dnsping.py -c 2 --cookie -s anyns.pch.net quad9.net
root@kitploit:~
dnsping.py DNS: anyns.pch.net:53, hostname: quad9.net, proto: UDP, class: IN, type: A, flags: [RD]
82  bytes from anyns.pch.net: seq=1   time=30.552  ms  NOERROR [COOKIE:27f609c017bb2ec4ea70de5c68eec3fc39f6a53ee49c55f8]
82  bytes from anyns.pch.net: seq=2   time=24.794  ms  NOERROR [COOKIE:719631dd9fcce722d3ac859b68eec3fd2e5430b5c8a7f8cf]

--- anyns.pch.net dnsping statistics ---
2 requests transmitted, 2 responses received, 0% lost
min=24.794 ms, avg=27.673 ms, max=30.552 ms, stddev=4.072 ms

Interpretación de indicadores relacionados con DNSSEC y seguridad

Al usar --dnssec y --flags, dnsping expone campos del protocolo DNS que son directamente relevantes para la validación de seguridad DNS. Estos valores indican si un resolutor es capaz de validar DNSSEC y si una respuesta se verificó correctamente.

Indicadores comunes:

  • DO (DNSSEC OK)
    Indica que el cliente está solicitando registros relacionados con DNSSEC. Su presencia muestra que el resolutor admite consultas DNSSEC.

  • AD (Authenticated Data)
    Lo establecen los resolutores validadores cuando la respuesta se ha verificado criptográficamente mediante DNSSEC. Esta es una señal fuerte de que la validación DNSSEC está activa y fue exitosa.

Patrones típicos:

ResultadoSignificado
NOERROR con indicador AD

Los Errores DNS Extendidos (EDE, RFC 8914) proporcionan información de diagnóstico adicional cuando falla la validación DNSSEC. Por ejemplo:

  • EDE:10 – DNSSEC Bogus (datos DNSSEC no válidos o rotos)
  • EDE:6 – DNSSEC Signature Expired (Firma DNSSEC caducada)
  • EDE:7 – DNSSEC Signature Not Yet Valid (Firma DNSSEC aún no válida)

Estos indicadores hacen que dnsping sea útil no solo para pruebas de rendimiento, sino también para validar si los resolutores aplican correctamente DNSSEC y para diagnosticar problemas de implementación de DNSSEC.

dnstraceroute

dnstraceroute es una utilidad que rastrea la ruta de tus solicitudes DNS hasta su destino. Es posible que desees comparar esto con tu traceroute de red real para asegurarte de que tu tráfico DNS no se esté enrutando a través de rutas no deseadas.

dnstraceroute admite múltiples protocolos de transporte (mutuamente excluyentes):

  • UDP (predeterminado): consultas DNS tradicionales
  • TCP (--tcp): DNS sobre TCP
  • DoQ (--quic): DNS sobre QUIC (compatible con AdGuard DNS)
  • DoH3 (--http3): DNS sobre HTTP/3 (compatible con Google DNS y Cloudflare)
root@kitploit:~
./dnstraceroute.py --expert --asn -C -t A -s 8.8.4.4 facebook.com

También puedes probar protocolos DNS modernos:

root@kitploit:~
# Probar DNS sobre QUIC con AdGuard DNS
./dnstraceroute.py --quic -s 94.140.14.14 -c 3 google.com

# Probar DNS sobre HTTP/3 con Google DNS
./dnstraceroute.py --http3 -s 8.8.8.8 -c 3 google.com
root@kitploit:~
dnstraceroute.py DNS: 8.8.4.4:53, hostname: facebook.com, rdatatype: A
1	192.168.0.1 (192.168.0.1) 1 ms
2	192.168.28.177 (192.168.28.177) 4 ms
3	192.168.0.1 (192.168.0.1) 693 ms
4	172.19.4.17 (172.19.4.17) 3 ms
5	dns.google (8.8.4.4) [AS15169 GOOGLE, US] 8 ms

=== Expert Hints ===
 [*] public DNS server is next to a private IP address (possible hijacking)

Usar la opción --expert con dnstraceroute habilitará la visualización de sugerencias expertas, incluidas advertencias sobre posibles secuestros de tráfico DNS.

dnseval

dnseval es una utilidad de ping masivo que envía consultas DNS arbitrarias a una lista específica de servidores DNS, permitiéndote comparar sus tiempos de respuesta simultáneamente.

Puedes usar dnseval para evaluar los tiempos de respuesta en diferentes protocolos de transporte, incluidos UDP (predeterminado), TCP, DoT (DNS sobre TLS), DoH (DNS sobre HTTPS), DoQ (DNS sobre QUIC) y DoH3 (DNS sobre HTTP/3) usando las opciones --tcp, --tls, --doh, --quic y --http3, respectivamente. Estas opciones de protocolo son mutuamente excluyentes; solo se puede especificar una por comando.

Resumen de soporte de protocolos

DoQ: DNS sobre QUIC, DoH3: DNS sobre HTTP/3

root@kitploit:~
./dnseval.py --skip-warmup --dnssec -c10 -f public-servers.txt ripe.net
root@kitploit:~
server                   avg(ms)  min(ms)  max(ms)  stddev(ms)  lost(%)  ttl      flags                      response
---------------------------------------------------------------------------------------------------------------------
1.0.0.1                  29.01    14.15    45.36    8.60        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.1                  23.90    18.14    42.07    7.83        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.0.0.2                  25.90    21.36    31.58    4.26        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.2                  22.68    18.36    32.15    3.96        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.0.0.3                  22.53    18.98    32.52    3.94        %0       300      QR -- -- RD RA AD -- DO     NOERROR
1.1.1.3                  21.70    20.25    22.97    0.77        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1001     21.70    19.13    27.50    2.28        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1111     22.63    20.42    30.18    3.13        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1002     24.97    20.89    44.63    7.16        %0       299      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1112     23.24    21.37    25.87    1.48        %0       298      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1003     21.68    19.28    24.88    1.65        %0       298      QR -- -- RD RA AD -- DO     NOERROR
2606:4700:4700::1113     22.61    19.86    26.09    1.73        %0       299      QR -- -- RD RA AD -- DO     NOERROR
195.46.39.39             25.56    16.42    55.37    15.37       %0       300      QR -- -- RD RA -- -- --     NOERROR
195.46.39.40             19.08    16.51    23.86    2.24        %0       300      QR -- -- RD RA -- -- --     NOERROR
2a05:d014:939:3300::39   0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
2a05:d014:939:3300::40   0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
208.67.220.220           30.60    14.54    120.64   31.88       %0       300      QR -- -- RD RA AD -- DO     NOERROR
208.67.222.222           21.78    17.42    36.45    6.06        %0       50       QR -- -- RD RA AD -- DO     NOERROR
2620:0:ccc::2            29.48    19.23    98.29    24.22       %0       299      QR -- -- RD RA AD -- DO     NOERROR
2620:0:ccd::2            22.36    17.90    30.18    3.98        %0       299      QR -- -- RD RA AD -- DO     NOERROR
216.146.35.35            172.53   114.46   360.87   71.47       %0       299      QR -- -- RD RA AD -- DO     NOERROR
216.146.36.36            187.36   118.21   324.32   59.08       %0       110      QR -- -- RD RA AD -- DO     NOERROR
209.244.0.3              46.49    25.23    115.86   28.19       %0       300      QR -- -- RD RA -- -- DO     NOERROR
209.244.0.4              58.33    28.09    109.18   29.20       %0       299      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.1                  64.58    30.21    86.79    30.19       %25      299      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.2                  40.54    22.69    74.80    20.76       %0       70       QR -- -- RD RA -- -- DO     NOERROR
4.2.2.3                  90.62    90.62    90.62    0.00        %50      70       QR -- -- RD RA -- -- DO     NOERROR
4.2.2.4                  31.53    23.80    70.93    14.51       %0       294      QR -- -- RD RA -- -- DO     NOERROR
4.2.2.5                  24.11    24.05    24.18    0.09        %33      294      QR -- -- RD RA -- -- DO     NOERROR
80.80.80.80              0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
80.80.81.81              0.00     0.00     0.00     0.00        %100     N/A      -- -- -- -- -- -- -- --     No Response
8.8.4.4                  28.35    20.85    39.14    7.24        %0       300      QR -- -- RD RA AD -- DO     NOERROR
8.8.8.8                  21.22    16.22    24.93    2.39        %0       299      QR -- -- RD RA AD -- DO     NOERROR

También puedes guardar los resultados en formato JSONL para su posterior procesamiento. Cada línea del archivo de salida es un objeto JSON válido que contiene los resultados completos de la medición para un servidor DNS.

root@kitploit:~
./dnseval.py -c 5 -j results.jsonl -f public-servers.txt example.com

La salida se puede analizar línea por línea con herramientas JSON estándar como jq.

root@kitploit:~
cat results.jsonl | jq -r 'select(.data.r_lost_percent == 0) | .data.resolver'

Autor

Babak Farrokhi

  • github: github.com/farrokhi
  • website: farrokhi.net
  • mastodon: @[email protected]
  • twitter: @farrokhi

Licencia

dnsdiag se publica bajo una licencia BSD de 2 cláusulas.

Descargar herramienta
Validación DNSSEC exitosa
SERVFAIL con indicador DOValidación DNSSEC fallida (a menudo debido a firmas rotas o mala configuración)
Indicador AD ausenteEl resolutor no está realizando validación DNSSEC
HerramientaUDPTCPTLS (DoT)DoHDoQDoH3
dnsping✓✓✓✓✓✓
dnstraceroute✓✓--✓✓
dnseval✓✓✓✓✓✓