Dig es una herramienta principalmente de Linux, utilizada para el envío de ordenes DNS, y para detectar que webs están en un server (utilizado para mass defacement). Es útil para verificar y mantener nuestros servidores DNS.
Conviene recordar que los Servidores DNS, escuchan por los puertos 53 TCP/UDP.
Mass Defacement es un término usado en informática para hacer referencia a un cambio producido de manera intencionada en una página web por un atacante que haya obtenido algún tipo de acceso a ella, bien por algún error de programación de la página, por algún bug en el propio servidor o por una mala administración de este. El autor de un defacement se denomina defacer.
Instalar dig
Si por defecto nuestro S.O. no viene con dig hay que instalarlo.
jesus ~ # apt-get install dnsutils
Sintaxis:
$ dig [@servidor_dns] <nombre> [opciones] [tipo]
[@servidor_dns]: nombre o IP del servidor DNS al que queremos dirigir nuestra consulta, por ejemplo @dns1.nrc.ca. Si no especificamos este parámetro, utilizará los servidores DNS listados en /etc/resolv.conf
<nombre>: nombre de dominio cuya IP queremos resolver
[tipo]: tipo de consulta. Valores posibles:
A: IP del servidor que aloja al dominio (por defecto).
NS: servidores DNS.
MX: servidores de correo.
ANY: todas las anteriores.
AAAA: IP en IPv6 (si tiene).
El primer comando que es de los que más destaca de los que utilizaremos es el siguiente:
jesus ~ # dig google.com

Ahora vamos a intentar entender la salida del comando:
- Las lineas que comienzan por ; son comentarios, no son parte de la información.
- La primera línea muestra la vesión de dig, en este caso (9.8.1).
- Después, dig muestra la cabecera de la respuesta recibida por parte del servidor DNS
- Después viene question section, la cual simplemente muestra la consulta, que es este caso es una consulta para “A” de google.com. IN significa que es un Internet lookup .
- La answer section muestra que google.com tiene la dirección IP address 173.194.41.X, donde X quiere decir las diferentes IP’s de los servidores de google.
- Por último se muestran algunos datos de estado sobre la consulta. Los cuales se pueden omitir usando la opción +nostats.
jesus ~ # dig ns
Este comando nos devolverá una lista de los servidores DNS raiz, que podremos utilizar para trabajar.
jesus ~ # dig google.com NS
Esto nos devuelve la lista de los servidores DNS de un determinado dominio, en este caso google.com
jesus ~ # dig google.com MX
Lista los Servidores de Correo de un determinado dominio.
jesus ~ # dig google.com ns1.google.com
Consultar datos de un Dominio en determinado servidor DNS.
En este caso consulta al servidor DNS de google.com por el dominio ns1.google.com
jesus ~ # dig -x google.com
DNS Inverso, es decir, reverse look-up.
jesus ~ # dig -x 8.8.4.4
Vuelve a realizar un DNS inverso. Obtiene el nombre asociado del servidor de nombres b de google.
jesus ~ #dig google.com AAAA
Número de IP en IPv6, se reconoce por la cuatro AAAA.
jesus ~ # dig google.com ANY
Otra función que también les recomiendo es la de ANY, la cual nos devuelve los servidores de correo, DNS, y varios datos más.
jesus ~ # dig 8.8.8.8 losteatinos.net ANY
Consulta al servidor 8.8.8.8, es decir, el servidor DNS a de google, por todos los registros de recursos del dominio losteatinos.net
jesus ~ # dig google.com SOA
Mail del responsable y otros datos del DNS.

Aquí el correo sería: dns-admin@google.com (cambiando el «.» por @), el DNS primario sería: ns1.google.com, y su última actualización fue: 2013/12/13, el TTL (Time to a live) es de 300, el tiempo de espera para actualización de los DNS’s secundarios (con respecto al primario) es de: 7200, el tiempo de reintento (cuando hay error al conectar con DNS primario) es de: 1800, y el tiempo de caducidad (el tiempo que el servidor mantendrá en caché los datos sin actualizar en caso de error de actualización) es de: 1209600
Los datos están expresados en milisegundos.
jesus ~ # dig 8.8.8.8 www.losteatinos.es +trace
Con este comando se le envía una consulta recursiva al servidor DNS 8.8.8.8 preguntando por el nombre losteatinos.es, y se le indica con la opción +trace que muestre el rastro de todo el proceso de resolución.
Observa que se pregunta en primer lugar a un servidor raiz, posteriormente a un servidor autorizado para el dominio .es y por último al servidor autorizado para losteatinos.es
Otras funciones útiles:
+nocmd
+nocomments
+noquestion
+noanswer
+noauthority
+noadditional
+nostats
+noall
Sería también muy interesante que le echaseis un vistazo a un comando muy similar a dig llamado nslookup. Posee también un modo interactivo.
nslookup www.google.es –> Probad a ver que os parece.
Otro comando interesante es host.
host www.google.es –> Probad a ver que os parece.
NOTA: entre nslookup, host y dig, me quedo con dig, puesto que proporciona una información más amplia dado que proporciona toda la información del protocolo DNS en cuanto a un mensaje DNS:
HEADER
QUESTION
ANSWER
AUTHORITY
ADDITIONAL
Pero si no disponemos de un PC con Linux, no queda más remedio que usar nslookup, que después de dig es el mejor, desde mi punto de vista.