Intoxicación de caché de DNS en LAN sin MITM

4

Ya se han hecho muchas preguntas sobre el envenenamiento de la memoria caché del DNS (también conocido como ataque de Kaminsky), sin embargo, no pude encontrar una respuesta clara a mi pregunta:

¿Es posible el envenenamiento de la memoria caché de DNS en una LAN, sin ejecutar un ataque MITM?

Clarification:

Es normal que el envenenamiento de la memoria caché del DNS sea posible durante un ataque MITM.

Sin embargo, no veo muchos temas que giren en torno a una técnica para almacenar en la memoria caché una LAN, sin ejecutar un ataque MITM (como el ataque Kaminsky). Creo que debería ser posible, ya que todas las solicitudes / respuestas de DNS son http sin formato, sin cifrar. Por lo tanto, deberíamos poder ver la solicitud (incluidos el ID de transacción y el puerto exacto) y preparar una respuesta falsa antes de que un servidor DNS "bueno" pueda responder a la solicitud. El atacante está en la misma LAN que el objetivo y, por lo tanto, tendrá una respuesta mucho más rápida que otro servidor DNS fuera de la LAN.

¿Es posible tal ataque? Entiendo que es más fácil realizar la falsificación de DNS durante un ataque MITM, solo quiero saber si sería prácticamente posible almacenar en caché clientes envenenados en una LAN ganando la carrera de respuesta del DNS sin haber ejecutado un ataque MITM.

Nota: esto no es una pregunta sobre cómo se evitó el ataque de Kaminsky (ID de transacción y asignación aleatoria de puertos)

    
pregunta Michael 12.02.2014 - 22:17
fuente

2 respuestas

2

Sí esto es posible, aunque también hay mejores ataques disponibles.

El envenenamiento de la memoria caché del DNS es posible a través de varios métodos, el ataque Kaminsky es solo uno de ellos. La razón por la que el ataque de Kaminsky tuvo tanto interés es porque no necesitas estar en la misma LAN. Podrías atacar un servidor DNS a mitad de camino alrededor del planeta.

Está bien establecido que puede manipular el tráfico en la misma LAN que usted, a menos que el tráfico esté protegido por cifrado. La mayoría de las herramientas (por ejemplo, Spoofer de red de Android ) utilizan el envenenamiento ARP en combinación con el envenenamiento de DNS, porque es el método más confiable. En principio, podría realizar el envenenamiento de DNS sin MITM, tal como lo propuso, pero sería menos confiable porque confía en una condición de carrera.

Y es por eso que no ves mucha discusión sobre el ataque propuesto. En cualquier situación práctica tienes mejores opciones.

    
respondido por el paj28 12.02.2014 - 22:32
fuente
4

Las solicitudes y respuestas de DNS son no HTTP; son ... DNS. Consulte el estándar . La mayoría de las veces, las solicitudes y respuestas de DNS utilizan UDP : la solicitud es un paquete de IP único , y así es la respuesta.

Con UDP, cada paquete se identifica mediante:

  • la dirección IP de origen
  • la dirección IP de destino
  • el puerto de origen
  • el puerto de destino

Una solicitud de DNS del cliente C al servidor DNS S usará la dirección IP de C como fuente, S como destino, un valor de puerto aleatorio p como puerto de origen y 53 como puerto de destino (el valor de puerto estándar para el servidor DNS). La respuesta DNS usará la dirección IP de C como destino, la dirección IP de S como fuente, 53 como puerto de origen y p como puerto de destino. El cliente aceptará la respuesta como "correcta" porque utiliza p como puerto de destino, el mismo p que el utilizado por el cliente como fuente para su solicitud.

Un atacante que desee enviar información falsa de DNS al cliente C puede conocer la dirección IP de C y la dirección IP de S , y puede hacer una buena suposición sobre el momento en que el cliente enviará su solicitud. El objetivo del atacante es enviar una respuesta de DNS falsa, afirmando que proviene del servidor DNS S , pero que contiene. Sin acceso completo a las escuchas, el atacante no puede saber el valor de p , porque no puede ver paquetes. Sin embargo, los números de puerto están en un rango limitado (los números de puerto van de 0 a 65535, pero el rango real para los números asignados al azar es más pequeño y depende del sistema operativo involucrado). Por lo tanto, el atacante solo puede enviar algunos miles de paquetes IP falsificados, cada uno de los cuales contiene la información falsa, para todos los posibles valores de puerto p . El cliente los eliminará todos, excepto el que usa el valor correcto p .

El mismo concepto puede extenderse a las comunicaciones entre servidores DNS, porque se comunican entre sí y las respuestas de la caché. A menudo, es más fácil lograrlo para el atacante, ya que puede activarse el intercambio de DNS a DNS, lo que permite una sincronización precisa para el lanzamiento de sus miles de respuestas falsificadas. Cuando logra suministrar información falsa a un servidor DNS, se dice que ese servidor DNS está envenenado .

Este tipo de cosas es relativamente fácil, incluso para los atacantes de baja tecnología que no tienen habilidades de espionaje, por no hablar del poder de intercepción que se requeriría para un verdadero MitM entre el cliente y su servidor DNS, o entre servidores DNS. La razón que lo hace fácil es el uso de UDP, lo que implica que el atacante sabe todo, excepto el puerto de origen aleatorio, que vive en un rango pequeño. Si los dos servidores DNS se comunican entre sí a través de TCP , entonces el ataque es más difícil, porque inyectar datos falsos en un TCP el flujo implica adivinar los números de secuencia de conexión , que se eligen aleatoriamente en un rango de 32 bits: los "miles de paquetes" se han convertido en "miles de millones de paquetes".

    
respondido por el Tom Leek 12.02.2014 - 22:39
fuente

Lea otras preguntas en las etiquetas