¿Cómo sabe un sitio web el servidor DNS que usa un cliente?

24

Hay sitios web que afirman hacer "pruebas de fugas de DNS". No me importan las fugas de DNS, pero tengo curiosidad, ¿cómo sabe el sitio web qué servidor DNS estoy usando? Supuse que sería un encabezado enviado en la solicitud HTTP pero no pude encontrarlo.

Ejemplo de sitio web: enlace

EDITAR: hay muchos otros ejemplos encontrados a través de una búsqueda en Google.

    
pregunta Craigxyz 13.07.2016 - 04:54
fuente

2 respuestas

31

Este es un truco de resolución de DNS que también se puede realizar con protocolos no http, pero en este caso se realiza con nombres de host aleatorios e imágenes de cero píxeles a través de http.

Mire el código fuente en la página y verá una serie de subdominios aleatorios de 10 caracteres solicitados para varias URL. Estos son nombres de host muy únicos que ni su computadora ni su ISP, o lo que es más importante, su proveedor de DNS, se almacenarán en caché en el DNS local.

Cuando los nombres de host de estas URL únicas llegan a su proveedor de DNS, tienen que solicitarlos al sitio web de las compañías de prueba, quienes luego correlacionan la dirección IP de los propietarios que realizan la solicitud de DNS única y luego le notifican el nombre de la compañía que realizó la solicitud a través de un rápido búsqueda

Lista de nombres de host aleatorios para el mismo dominio

ixc9a5snm4.dnsleaktest.com
rhl50vm36o.dnsleaktest.com
4xov3y3uvc.dnsleaktest.com
2n5t99gbzp.dnsleaktest.com
6mzklkved4.dnsleaktest.com
d6z20e9c2x.dnsleaktest.com

se puede encontrar en el siguiente html (sus nombres de host serán diferentes)

<img width=0 height=0 src="https://ixc9a5snm4.dnsleaktest.com">.<imgwidth=0height=0src="https://rhl50vm36o.dnsleaktest.com">.
<img width=0 height=0 src="https://4xov3y3uvc.dnsleaktest.com">.<imgwidth=0height=0src="https://2n5t99gbzp.dnsleaktest.com">.
<img width=0 height=0 src="https://6mzklkved4.dnsleaktest.com">.<imgwidth=0height=0src="https://d6z20e9c2x.dnsleaktest.com">.
    
respondido por el Trey Blalock 13.07.2016 - 05:23
fuente
13

No sabía sobre esto. Extremadamente interesante. Parece funcionar intentando generar conexiones a subdominios aleatorios largos que controla, y probablemente pueda recopilar las solicitudes de resolución de dominio del servidor DNS que llama.

Fig.1:Listadesolicitudesiniciadasporelnavegadorquefalló

Bajoelcapóeselseguimientoestándarqueutilizaungeneradordeimágenesdetamañocero:

<preclass="progress">Query round Progress... Servers found
        <br/>&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <img width=0 height=0 src="https://1k9oraud8h.dnsleaktest.com">.<imgwidth=0height=0src="https://dajo0hwg9c.dnsleaktest.com">.
        <img width=0 height=0 src="https://6crg9z68gj.dnsleaktest.com">.<imgwidth=0height=0src="https://nwitgnyo7r.dnsleaktest.com">.
        <img width=0 height=0 src="https://z3yine4a7p.dnsleaktest.com">.<imgwidth=0height=0src="https://2tvxmp2yd5.dnsleaktest.com">.
    </pre>

Curiosamente, ya que tengo piwik (el motor de análisis utilizado) bloqueado de forma predeterminada, todas las solicitudes fallaron, pero mis servidores DNS aún estaban identificados, lo que significa que dependen de algo más que el rastreador HTTP.

Agregando aclaraciones para abordar la pregunta de @ Falco.

Es probable que las imágenes no se carguen para todos, ya que los subdominios no existen. Por lo tanto, las solicitudes nunca se generan (búsqueda de DNS no válida) como se puede ver en los siguientes mensajes de pantalla. La única diferencia en mi caso es que no reciben una identificación de seguimiento.

Fig2:elnombrededominionuncaseresuelveparaningunodelossubdominios

Fig3:Porlotanto,lassolicitudesHTTPnuncasonrealizadasporelnavegador

Comonopuedoaccederalbackend,soloestoyadivinandosobreloquesucededetrásdelaescena.ProbablementetienenunenlaceensuservidorDNSqueescribelaIPdeorigenparacada Pregunta de DNS recibida en su DB (quizás este hilo también hace el nombre de host y la búsqueda del ISP antes de guardar los datos). Note que esta es una pregunta de DNS y nunca una búsqueda HTTP materializada. Lo único que tiene que hacer el servidor web central es devolver la fila correspondiente a los dominios asociados con mi navegador.

La forma más sencilla sería una correspondencia uno a uno con el ID de seguimiento. Normalmente, envía una cookie de seguimiento piwik con un nombre como pk_id y hay una solicitud adicional al final para piwik.php con muchos detalles de seguimiento. En mi caso, esta cookie nunca se establece y el salto adicional no tiene lugar. No veo ninguna otra identificación de sesión, lo veré más de cerca el fin de semana si la comunidad no lo ha investigado.

    
respondido por el Jedi 13.07.2016 - 05:23
fuente

Lea otras preguntas en las etiquetas