Curso 1 — DNS Under the Microscope

Laboratorio Bloque 2 — Observando una transacción DNS

En este laboratorio utilizaremos dig y Wireshark para generar, capturar y analizar tráfico DNS real.

WHO → WHAT → WHERE → RESPONSE → RESULT → TIME

1. Objetivo del laboratorio

Al finalizar este laboratorio, el participante deberá ser capaz de:

2. Requisitos previos

Antes de iniciar, verifica que tu equipo tenga los siguientes elementos:

3. Validar que dig está disponible

Abre una ventana de Terminal y ejecuta:

dig example.com

Si dig está instalado correctamente, deberás obtener una respuesta DNS con información similar a:

4. Preparar Wireshark

Abre Wireshark y selecciona la interfaz de red que estás utilizando.

Inicia la captura.

5. Filtrar tráfico DNS

En la barra de filtros de Wireshark escribe:

dns

Presiona Enter.

A partir de este momento Wireshark mostrará únicamente tráfico identificado como DNS.

6. Generar una consulta tipo A

Regresa a Terminal y ejecuta:

dig example.com A

Regresa inmediatamente a Wireshark y localiza la consulta.

7. Identificar WHO — ¿Quién participa?

Selecciona el paquete correspondiente a la consulta DNS y localiza:

Anota ambos valores:

Cliente DNS: ______________________

Resolver DNS: _____________________

8. Identificar WHAT — QNAME y QTYPE

Expande la sección:

Domain Name System

Después identifica:

Para esta consulta deberías observar:

QNAME: example.com

QTYPE: A

9. Identificar WHERE — Resolver y puerto

Revisa nuevamente la información IP y de transporte.

Identifica:

En una consulta DNS tradicional deberás observar el puerto:

53

10. Identificar Query y Response

Para mostrar únicamente consultas DNS utiliza:

dns.flags.response == 0

Para mostrar únicamente respuestas DNS utiliza:

dns.flags.response == 1

Observa cómo la dirección IP de origen y destino se invierte entre la consulta y la respuesta.

11. Transaction ID

Selecciona la consulta DNS y localiza:

Transaction ID

Después verifica el mismo valor en la respuesta correspondiente.

Transaction ID Query:    __________________

Transaction ID Response: __________________

Ambos valores deben coincidir.

12. RESULT — RCODE

Selecciona la respuesta DNS y localiza:

Reply code

También puedes utilizar el siguiente filtro para trabajar con el Response Code:

dns.flags.rcode

Para una consulta exitosa normalmente observarás:

NOERROR

13. Analizar la sección Answer

Dentro de la respuesta DNS, localiza:

Answers

Identifica la dirección IPv4 devuelta.

Respuesta A: __________________

14. Identificar TTL

Dentro del registro de respuesta localiza:

Time to live

También puedes utilizar el siguiente campo en filtros de Wireshark:

dns.resp.ttl

Anota el TTL observado.

TTL: __________________ segundos

15. TIME — Tiempo de respuesta

Observa cuánto tiempo transcurrió entre la consulta y la respuesta.

Tiempo de respuesta: __________________

16. Generar una consulta AAAA

Ejecuta:

dig example.com AAAA

Regresa a Wireshark y localiza la nueva transacción.

Compara esta consulta con la consulta tipo A anterior.

17. Consultar un resolver específico

dig también permite decidir qué servidor DNS utilizar.

Utiliza la sintaxis:

dig @DNS-SERVER example.com A

Sustituye DNS-SERVER por la dirección IP del resolver que quieras utilizar durante el laboratorio.

Observa especialmente:

18. Configurar columnas útiles en Wireshark

Para facilitar el análisis de múltiples consultas DNS, podemos agregar columnas específicas a Wireshark.

Nombre de columna Campo Wireshark
QNAME dns.qry.name
RNAME dns.resp.name
RSP TTL dns.resp.ttl

19. Filtros útiles para análisis DNS

Durante el laboratorio puedes utilizar los siguientes filtros.

Mostrar todo el tráfico DNS:

dns

Mostrar únicamente consultas:

dns.flags.response == 0

Mostrar únicamente respuestas:

dns.flags.response == 1

Filtrar por nombre consultado:

dns.qry.name

Examinar el tipo de consulta:

dns.qry.type

Examinar Response Code:

dns.flags.rcode

Examinar TTL:

dns.resp.ttl

20. Tabla de observaciones

Completa la siguiente tabla utilizando los datos observados durante el laboratorio:

Elemento Consulta A Consulta AAAA
IP del cliente
IP del resolver
QNAME
QTYPE
Transaction ID
RCODE
Answer
TTL
Tiempo de respuesta

21. Preguntas de análisis

  1. ¿Qué dirección IP está utilizando tu equipo como resolver DNS?
  2. ¿Qué diferencia observaste entre una consulta A y una AAAA?
  3. ¿Cómo puedes relacionar una Query con su Response?
  4. ¿Qué información proporciona el RCODE?
  5. ¿Qué función tiene el TTL?
  6. ¿El tiempo de respuesta fue similar en todas las consultas?
  7. ¿Qué cambia cuando utilizas un resolver específico con dig?

22. Resultado esperado

Al finalizar el laboratorio deberás poder seleccionar cualquier transacción DNS básica dentro de Wireshark y responder:

Conclusión

El objetivo de este ejercicio no es memorizar campos de Wireshark. El objetivo es desarrollar una metodología repetible para analizar DNS.

WHO → WHAT → WHERE → RESPONSE → RESULT → TIME