Peticiones DNS a la fuga (primera parte)

Uno de los recursos más utilizados a la hora de mantenerse anónimo en la red es la combinación de red privada virtual VPN + cadena de proxies + TOR . La red privada virtual (VPN) permite que los usuarios se conecten mediante una conexión punto-a-punto cifrada y que puedan enviar y recibir datos como si estuvieran directamente conectados a dicha red. La cadena de proxies nos permiten ocultar nuestra IP pública real en todo tipo de conexiones. La red TOR es una red de comunicaciones distribuida que cuyo objetivo es intentar lograr el anonimato de los usuarios evitando el rastreo de la información enviada. Estos tres procesos se reflejan de forma genérica en la siguiente imagen:

Pero todo este proceso para mantenernos anónimos puede venirse abajo simplemente por una configuración indebida del navegador, los plugins utilizados o porque nuestro servicio VPN de repente ha dejado de funcionar. Esto provocaría una fuga de peticiones DNS de forma que si nuestro tráfico está siendo monitorizado, se observaría que antes de establecer una conexión cifrada con una dirección IP desconocida, realizamos petición a los servidores DNS configurados que suelen ser los de nuestro ISP.

RECORDANDO LAS PETICIONES DNS

Primeramente vamos a recordar como funciona una petición DNS. El objetivo de las peticiones DNS es el de traducir un nombre de dominio en una direccion IP. Todo el proceso llevado a cabo, desde que abrimos un navegador e introducimos una dirección url hasta que se muestra el contenido, es totalmente transparente para nosotros. Mediante la imagen siguiente representaremos el proceso correspondiente a la navegación hacia la dirección url www.amazon.es :

A continuación se detallan cada uno de los puntos del gráfico (como observación: la Petición 8 en realidad es la Petición 6):

  1. DNS Local: el  navegador pregunta a la caché DNS local por la dirección ip asociada al dominio www.amazon.es que queremos visitar.
  2. Peticiones 1 y 2: como la caché DNS local de nuestro equipo no ha resuelto el nombre de dominio en una dirección IP, se deriva la consulta (a través del router) al servidor DNS configurado (suele ser el de nuestro ISP).
  3. Petición 3: el servidor DNS del ISP al no poder resolverla deriva la petición al servidor ROOT DNS para .es .
  4. Respuesta 1: el servidor ROOT DNS devuelve la dirección IP del servidor TLD DNS que puede resolver el dominio amazon.es .
  5. Petición 4: el servidor DNS del ISP realiza una petición a la dirección IP del servidor TLD DNS para resolver amazon.es .
  6. Respuesta 2: el servidor TLD DNS devuelve la dirección IP del servidor DNS que puede resolver el dominio www.amazon.es .
  7. Petición 5: el servidor DNS del ISP realiza una petición a la dirección IP del servidor DNS para resolver www.amazon.es .
  8. Respuesta 3: el servidor DNS devuelve la dirección del IP del dominio www.amazon.es que es 178.236.6.247.
  9. Respuestas 4 y 5: el servidor DNS del ISP devuelve a nuestro navegador la dirección IP del dominio www.amazon.es que queremos consultar 178.236.6.247.
  10. Peticiones 6 y 7: el navegador envía una petición de consulta a la dirección IP 178.236.6.247 perteneciente al dominio www.amazon.es .
  11. Respuestas 6 y 7: el servidor con dirección IP 178.236.6.247 devuelve el contenido de la página solicitada al navegador de nuestro equipo.

Para este escenario habría quedado monitorizada la conexión de nuestra ip pública, tanto en los servidores DNS de nuestro ISP como en los ficheros de log del servidor de www.amazon.es .

LA CONEXIÓN VPN

La red privada virtual o VPN permite establecer una conexión punto-a-punto cifrada a través de la cual se realiza tanto el envío como la recepción de los datos. Es como si estuviéramos conectados físicamente a dicha red. Al igual que el ejemplo anterior, utilizaremos la siguiente imagen para detallar su funcionamiento, en el que nos conectaremos a nuestro servicio de VPN para posteriormente navegar hasta www.amazon.es :

  1. DNS Local: el  navegador pregunta a la caché DNS local por la dirección ip asociada a nuestra VPN a la que nos queremos conectar.
  2. Peticiones 1 y 2: como la caché de DNS local de nuestro equipo no ha resuelto el dominio de la VPN en una dirección IP, se deriva la consulta al servidor DNS que tengamos configurado (que suele ser el de nuestro ISP).
  3. Respuestas 1 y 2: el servidor DNS del ISP resuelve la consulta y devuelve al navegador la dirección IP del dominio de nuestra VPN que es 185.86.151.48 .
  4. Peticiones 3 y 4: el navegador envía la petición de conexión a la dirección IP de nuestro servicio VPN. Una vez conectados es como si nuestro equipo se encontrase físicamente conectado en esta red. Se creará en nuestro equipo una nueva interfaz tun0 (que veremos más adelante) y se importan (o no, depende de la VPN) las direcciones IP de los servidores DNS utilizados por la VPN. Las peticiones realizadas a partir de aquí se encuentran cifradas.
  5. Petición 5: abrimos un navegador e introducimos la dirección url de www.amazon.es .
  6. Petición 6: el servidor DNS de la VPN al no poder resolver la petición, la deriva al servidor ROOT DNS.
  7. Respuesta 3: el servidor ROOT DNS devuelve la dirección IP del servidor TLD DNS que puede resolver el dominio .es .
  8. Petición 7: el servidor DNS de la VPN deriva la petición al servidor TLD DNS.
  9. Respuesta 4: el servidor TLD DNS devuelve la dirección del IP del servidor DNS que puede resolver el dominio amazon.es .
  10. Petición 8: el servidor DNS de la VPN deriva la petición al servidor DNS que resuelve el nombre de dominio www.amazon.es en 178.236.6.247 .
  11. Respuestas 5 y 6: el servidor DNS devuelve a nuestro navegador la dirección IP del dominio www.amazon.es que es 178.236.6.247 .
  12. Petición 9: el navegador envía una petición de consulta a la dirección IP 178.236.6.247 (www.amazon.es).
  13. Respuestas 7, 8 y 9: el servidor con dirección IP 178.236.6.247 devuelve el contenido de la página solicitada al navegador de nuestro equipo.

Para este escenario habría quedado monitorizada únicamente la conexión desde nuestra IP pública, tanto en los servidores DNS de nuestro ISP como en los ficheros de log del servidor de la VPN. A partir de la conexión con la VPN, quedaría registrada la dirección IP de la VPN 185.86.151.48 tanto en el servidor DNS como en el fichero de log del servidor de www.amazon.es .

UN POCO MÁS DE DETALLE

Ahora vamos a ver como funciona a nivel de fichero e interfaces la conexión con la VPN y la posterior navegación a una dirección url. Primero haremos un ejemplo sin estar conectados a la VPN y posteriormente un ejemplo conectados a la VPN.

SIN CONEXIÓN VPN

Sin estar conectados a la VPN, comprobamos en el fichero /etc/resolv.conf los servidores DNS que tenemos configurados, que como en la mayoría de los casos, son los facilitados por nuestro ISP:

Arrancamos la herramienta tcpdump para escuchar el tráfico en nuestra interfaz inalámbrica wlan0 (aunque puede ser eth0 o la que utilices) en el puerto 53 con el comando tcpdump -s 0 -l -n port 53 -i <interfaz> :

Con la herramienta escuchando el tráfico de red, abrimos un navegador y solicitamos una página cualquiera. Se observa como a través de nuestra interfaz wlan0 se empieza a generar tráfico UDP correspondiente a las peticiones DNS, realizadas desde la ip de nuestro ordenador 192.168.0.20 hacia la dirección IP de los servidores DNS de nuestro ISP xxx.xxx.16.213 :

 

CON CONEXION VPN

Ahora vamos a realizar el mismo ejemplo pero conectándonos al servicio VPN. Al establecer la conexión, se crea una nueva interfaz tun0 y se nos asigna una dirección IP. A través de esta interfaz viajará todo el tráfico cifrado:

Si comprobamos el fichero /etc/resolv.conf observamos que la conexión con la VPN ha añadido una línea con la dirección IP de los servidores DNS que utiliza el propio servicio, que en este caso se corresponde con uno de los DNS públicos de Google :

Al igual que en el punto anterior, arrancamos la herramienta tcpdump para escuchar el tráfico, pero esta vez, en nuestra nueva interfaz tun0 en el puerto 53 con el comando tcpdump -s 0 -l -n port 53 -i <interfaz>:

Con la herramienta escuchando el tráfico de red, abrimos un navegador y solicitamos una página cualquiera. Se observa como a través de nuestra interfaz tun0 se empieza a generar tráfico UDP correspondiente a las peticiones DNS, realizadas desde la ip que nos ha proporcionado el servicio VPN 192.168.30.13 hacia la dirección IP 8.8.8.8 del servidor DNS asignado por la VPN :

Continúa en la https://thehackingfactory.com/peticiones-dns-a-la-fuga-segunda-parte .

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *