Conociendo DNSchef: Capturando tráfico de una red

DNSchef es una herramienta escrita en Python que nos permite de manera sencilla crear un proxy DNS (Fake DNS) con múltiples posibilidades de configuración. Muy útil en esos casos en los que utilizar un servidor proxy (como HoneyProxy por ejemplo) no es posible, ya sea porque el aplicativo o dispositivo objetivo ignoran el proxy HTTP o porque ya utilizan uno para su correcto funcionamiento… muchas situaciones posibles.

Esta herramienta soporta IPv6 y demás características que se recomienda ver en el sitio oficial. Al ser hecha en Python corre en múltiples plataformas pero cuenta con una versión para Windows empaquetada con py2exe.

¿Cómo funciona DNSchef?

Para entender el funcionamiento de DNSchef primero deberemos conocer lo qué es un servidor DNS, que en términos muy simples es quien se encarga de traducir un dominio, como por ejemplo www.redinfocol.org en una dirección IP en la que está alojada el sitio web. En este caso DNSchef se convierte en dicho servidor DNS registrando la actividad que pasa por él y además con posibilidades como de traducir cualquier dominio, por ejemplo www.facebook.com a la IP que queramos. Ya vas viendo por donde va esto 😉

DNSchef usa los servidores DNS de Google para que los sitios web a los que no se les haya especificado reglas carguen correctamente.

Iniciando nuestra aventura con DNSchef

Lo primero será descargar la herramienta (no me digas):

curl -O https://thesprawl.org/media/projects/dnschef-0.3.zip

Al ejecutarlo sin parámetros (./dnschef.py) nos mostrará que ha creado el servidor DNS y estaremos listo para usarlo:

dnschefAhora para probar configuraremos en nuestro propio equipo la IP 127.0.0.1 como servidor DNS. En Linux se puede editar el archivo /etc/resolv.conf, usando Network Manager o similares para establecer las DNS. En Windows cambiando las propiedades del adaptador:

DNS Windows

Lo bonito y peligroso de esto es configurar las DNS en el router directamente y así se registraría la actividad de todos los dispositivos conectados: PCs, móviles, consolas… 😉

Al acceder a una web podemos ir viendo como se registra la petición:

[13:53:23] 127.0.0.1: proxying the response of type 'A' for redinfocol.org

Parámetros DNSchef

  • fakeip: IP «fake» a la que se redirigirá los dominios especificados. Ejemplo:
    --fakeip 192.168.0.3
  • fakedomains: Dominios que serán ‘redirigidos’ a la fakeip, deben ir separados por coma.
    --fakedomains *.redinfocol.org,www.chicasmalas.com
  • interface: IP donde se pondrá a la escucha el servidor DNS. Por defecto es 127.0.0.1. Para un ataque remoto (usando la IP publica del equipo) o de red local es necesario especificar este parámetro.
    --interface 192.168.0.3
  • Existen más parámetros como –p para especificar un puerto en especifico, por defecto es 5353 o nameservers puede ser usado para especificar un servidor DNS que se encargue de las peticiones, por defecto usa los de Google, -q para no mostrar cabeceras. Se recomienda ver el sitio oficial para conocer todos los parámetros.

Es importante que para un ataque remoto se configure correctamente las reglas necesarias para permitir conexiones al puerto 5353.

DNSchef y sus amiguitos

Hasta aquí todo muy bien, conocemos lo que puede hacer esta herramienta, pero necesita de sus amiguitos para poder lograr más cosas. Uno de ellos es Social-Engineer Toolkitcon él se podría suplantar un sitio web en especifico (phishing) y capturar los datos enviados por la victima, también se podría comprometer el equipo con un backdoor, entre otras cosas que nos ofrece SET. Otro aliado para esta caso es Wireshark, se puede capturar el tráfico generado por la victima, que junto a SSLstrip forman una historia de amor mucho mejor que Crepúsculo.

Estudiante de Psicología, interesado por el desarrollo web y las nuevas tecnologías. Editor y co-fundador de RedInfoCol.

2 Comentarios

  1. Responder

    Muchas Gracias Urban77 fenomenal artículo ánimo y por más

  2. Responder

    Buenas. ¿Sigue el blog en pie?

Deja un comentario

Your email address will not be published. Required fields are marked *

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>