Utilizar DNSChef para crear un DNS Falso

  • Posted on: 13 June 2014
  • By: ReYDeS

DNSChef es un proxy DNS altamente configurable para Pruebas de Penetración y Análisis de Malware. Un proxy DNS (un “DNS Falso”) es una herramienta utilizada para analizar el tráfico de red de aplicaciones entre otros usos. Por ejemplo, un proxy DNS puede ser utilizado para falsificar solicitudes para “dominio.com” y de esta manera apuntar a una máquina local provocando su terminación o interceptación, en lugar del host real ubicado en algún lugar de Internet.

DNSChef es una aplicación capaz de falsificar respuestas basado en listas de dominios inclusivas o exlusivas, soportar varios tipos de registros DNS, corresponder dominios con comodín, "proxear" respuestas verdaderas para dominios no correspondientes, definir archivos externos de configuración, soportar IPv6, entre muchas otras características.

La utilización de un Proxy DNS se recomienda en situaciones donde no es posible forzar el uso de algún otro servidor proxy directamente en una aplicación. En estos casos, el uso de un servidor proxy DNS tal como DNSChef permitirá engañar a la aplicación para reenviar conexiones al destino requerido.

Al momento de publicar el presente escrito la versión de DNSChef incluida en Kali Linux es la 0.1. Por lo tanto se procede a descargar la versión más reciente de DNSChef desde la sitio web del proyecto.

Ejecutar DNSChef

DNSChef está escrita en Python, el cual puede ser ejecutado en la mayoría de plataformas que incluyan el interprete de Python.

# dnschef

Al ejecutar DNSChef sin parámetros se ejecutará completamente en modo proxy. Esto implica que todas las peticiones serán sencillamente reenviadas hacía un servidor DNS (Por defecto 8.8.8.8) y retornadas al host solicitante.

Al realizar una consulta utilizando el comando “host” utilizando la opción “-t” para seleccionar el tipo de consulta a realizar, y la dirección IP del Servidor DNS, DNSChef imprimirá una línea de registro mostrando el tiempo, la dirección IP fuente, tipo de registro solicitado y el nombre solicitado.

# host -t A reydes.com 127.0.0.1

Interceptar todas las respuestas

Se ejecuta DNSChef para falsificar todas las respuestas apuntando a la dirección IP 192.168.0.12, utilizando el parámetro “--fakeip”.

# dnschef --fakeip 192.168.0.12 -q

Se procede a realizar la consulta nuevamente al dominio utilizado en el ejemplo anterior. En el resultado se observa que DNSChef proxea todas las solicitudes a la dirección IP 192.168.0.12. La primera línea cumple este criterio, sin embargo, otras solicitudes, como el registro MX son proxeados desde el servidor DNS real.

Para falsificar las respuestas de las solicitudes realizadas a los tipos de registro AAAA y MX, se utiliza la opción “--fakeipv6” y la opción “--fakemail”. Al realizar nuevamente la solicitud se pueden visualizar los cambios generados en la respuesta devuelta por DNSChef.

Para la siguiente práctica se utilizará un sistema victima”, en la cual se ha cambiado la información de sus servidores de nombres para apuntar al servidor ejecutando DNSChef.

En esta ocasión se ejecuta DNSChef con la opción “--interface=” la cual permite definir la interfaz a utilizar para la atención del DNS. Se utiliza la dirección IP interna asignada a Kali Linux, y de esta manera atender las solicitudes realizadas por otras máquinas de la misma subred.


# python dnschef.py --interface=192.168.0.12 --fakeip 200.200.200.200 --fakeipv6 ::1 --fakemail correo.dominioatacante.com -q

Se realiza una consulta DNS por cualquier dominio desde el sistema “victima”.

En los resultados se visualizan los datos “falsificados” que se ha indicado a DNSChef retornar.

Sugiero revisar la documentación de la herramienta, donde se expone la manera de realizar filtrado de dominios, filtrado inverso, utilizar un archivo externo con definiciones, y técnicas más avanzadas de filtrado.

Fuentes:

https://thesprawl.org/projects/dnschef/
http://tools.ietf.org/html/rfc1034

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1