hogar - Seguridad
Tráfico DNS. Ocultar el tráfico DNS

Usando nstx es posible crear un túnel IP dentro de DNS. El protocolo del mismo nombre que permite lograr esto se llama “” y significa “ Protocolo de transferencia de servidor de nombres».

Entonces, supongamos que el proveedor emite problemas y le permite usar su servidor DNS. Imaginemos una solicitud DNS normal: solicitamos información en el servidor de nombres del proveedor, el servidor del proveedor pasa la solicitud a otro servidor de nombres, que es responsable de la zona que necesitamos. Y el último servidor DNS de la cadena envía la respuesta recibida por la misma ruta.

Ahora imagine que puede formatear paquetes IP en consultas DNS de un servidor de nombres y "configurar" el tráfico entrante en los paquetes que necesitamos. Y ahora ya tenemos todo para construir una "IP sobre DNS" completa: la nuestra túnel escondido¡Para reenviar tráfico a través de casi cualquier firewall de terceros!

Ahora solo queda configurar el servidor de nombres y el cliente falsos, pero en la práctica esto no siempre es tan fácil.

El tamaño máximo de paquete que se puede transmitir es de 512 bytes como máximo a través de UDP. Por lo tanto, necesitaremos un mecanismo ensamblador/desensamblador que recopile y desensamble paquetes fragmentados y verifique su corrección. En este esquema, nuestro cliente DNS falso puede comunicarse con nuestro servidor DNS falso constantemente, pero nuestro servidor DNS solo puede responder. Por lo tanto, el cliente será responsable de la conciliación y de mantener la comunicación bidireccional.

La primera vez que intenté hacer esto fue en 2008. Durante dos semanas trabajé lentamente en este paquete, ajusté el código fuente a mis necesidades, releí los manuales y, como resultado, conseguí construir con éxito un túnel funcional a través de nuestro firewall ultraseguro. red corporativa. ¡Entonces fue simplemente increíble para mí!

En general, con un poco de ganas y tiempo, puedes iniciar de forma independiente un servidor de nombres de cliente falso para crear un túnel "IP sobre DNS".

Juega, prueba. Busque formas de protegerse de esto. Les advierto de antemano que aquí hay muchos matices técnicos.

4601 ,

Desde que se disipó el mito del anonimato en Internet, la cuestión de la privacidad de los usuarios se ha sumado a la lista de las más acuciantes. No solo se pueden rastrear sus actividades en línea los motores de búsqueda y los sitios web que visita, pero también sus propios proveedores de servicios de Internet. Técnicamente, esto no es tan difícil si DNS lo emite el proveedor, y esto sucede con mayor frecuencia, todo lo que pasa a través DNS el tráfico puede ser rastreado por él, especialmente porque DNS-las solicitudes se envían a través de una conexión no cifrada.

Está claro que reemplazar los paquetes interceptados no será difícil incluso si usa vpn-servicios.

La única forma de cerrar el agujero es mediante el cifrado. DNS-tráfico, pero para ello necesitarás un especial software, ya que ninguno de sistemas operativos no admite cifrado DNS de la caja. La herramienta de cifrado más sencilla DNS- el tráfico es - pequeño utilidad gratuita, que se distingue ventajosamente por el hecho de que no requiere ajustes adicionales, lo que significa que puede ser utilizado por principiantes. Hay una herramienta de consola: Proxy DNSCrypt, pero necesitas retocarlo: ejecuta una serie de comandos en Potencia Shell, cambiar dirección DNS manualmente y así sucesivamente. Cualquiera que tenga tiempo y ganas, por favor, puede familiarizarse con él en la página. github.com/jedisct1/dnscrypt-proxy .

Sugerimos utilizar la versión de escritorio más sencilla y cómoda. DNS- criptógrafo. Descargar desde el sitio web del desarrollador simplednscrypt.org La versión del programa que corresponde al nivel de bits de su sistema operativo e instálela.

Equipado con fácil, intuitivo interfaz clara y además, está en ruso, por lo que puedes descubrir fácilmente qué es qué. Los ajustes básicos se realizan en la sección "Menú". Para comenzar a utilizar el programa, inmediatamente después de la instalación, haga clic en el botón "Aplicar" y luego selecciona el tuyo a continuación tarjeta de red, debe estar marcado como se muestra en la captura de pantalla. Cambiar "Servicio DNSCrypt" debe estar activo.

Es fácil comprobar si todo funciona. Ejecutar en la ventana Correr equipo ncpa.cpl, abra las propiedades de su conexión, seleccione de la lista IP versión 4 (TCPIPv4) y abre sus propiedades. Boton de radio "Utilice las siguientes direcciones de servidor DNS" debe estar activo y el campo debe indicar la opción preferida. DNS-servidor. Lo tenemos 127.0.0.1 , su dirección puede ser diferente.

De forma predeterminada, el programa selecciona automáticamente los más servidor rápido, pero puedes cambiar tus preferencias seleccionándolo tú mismo en la sección.

No es necesario cambiar los parámetros de la sección si no está utilizando el protocolo. IPv4. EN Configuración general puedes habilitar pestañas adicionales "Lista negra de dominios", "Registro de bloqueo de dominio", pero esto de nuevo, si vas a trabajar con las funciones que ofrecen, en particular, componer "negro" listas de dominios.

Protegiendo conexiones DNS para los paranoicos

Usando una VPN, ¿crees que nadie te está espiando y que los datos transmitidos están protegidos? Te equivocas. Ahora intentaré explicar por qué.

ACERCA DE DNSCRYPT EN BREVE

Cuando utiliza HTTPS o SSL, su tráfico HTTP está cifrado, lo que significa que está protegido. Cuando usas una VPN, todo tu tráfico ya está encriptado (por supuesto, todo depende de Configuración de VPN, pero, por regla general, este es el caso). Pero a veces, incluso cuando usas una VPN, tus consultas DNS no están cifradas, sino que se envían tal cual, lo que abre mucho espacio para la creatividad, incluidos ataques MITM, redirección de tráfico y mucho más.

Aquí es donde viene al rescate la utilidad DNSCrypt de código abierto, desarrollada por los conocidos creadores de OpenDNS, un programa que le permite cifrar solicitudes DNS. Tras instalarlo en tu ordenador, tus conexiones también estarán protegidas y podrás navegar por Internet de forma más segura y consultar diseño de publicidad exterior. Por supuesto, DNSCrypt no es una panacea para todos los problemas, sino sólo una de las herramientas de seguridad. Aún necesitarás usar una conexión VPN para cifrar todo el tráfico, pero vincularla con DNSCrypt será más seguro. Si está satisfecho con una explicación tan breve, puede pasar inmediatamente a la sección donde describiré la instalación y el uso del programa.

PARA LOS VERDADEROS PARANOICOS

Intentemos comprenderlo más profundamente. Esta sección es para los verdaderamente paranoicos. Si valora su tiempo, puede proceder inmediatamente a instalar el programa.

Entonces, como dicen, es mejor ver una vez que oír cien veces. Digamos que un cliente intenta ponerse en contacto con dkws.org.ua. Lo primero que debe hacer es resolver el nombre de host simbólico en una dirección IP. Si la configuración de la red es tal que se utiliza el servidor DNS del proveedor (una conexión no cifrada, línea roja en la figura), entonces la resolución del nombre simbólico a la dirección IP se produce a través de una conexión no cifrada.

Sí, nadie sabrá qué datos transmitirá a dkws.org.ua. Pero hay momentos muy desagradables. En primer lugar, el proveedor, al observar los registros DNS, podrá averiguar qué sitios visitó. ¿Lo necesitas? En segundo lugar, es probable que se produzcan ataques de suplantación de DNS y de espionaje de DNS. No los describiré en detalle; ya se han escrito muchos artículos sobre esto. En pocas palabras, la situación podría ser la siguiente: alguien entre usted y el proveedor puede interceptar la solicitud DNS (y como las solicitudes no están cifradas, no será difícil interceptar la solicitud y leer su contenido) y enviarle un " respuesta falsa”. Como resultado, en lugar de visitar dkws.org.ua, irá al sitio web del atacante, que es exactamente igual al que necesita, ingresará su contraseña del foro y luego, creo, el desarrollo de los eventos es claro.

La situación descrita se llama fuga de DNS. La fuga de DNS ocurre cuando su sistema, incluso después de conectarse al servidor VPN o Tor, continúa consultando los servidores DNS del ISP para resolver nombres de dominio. Cada vez que visita un nuevo sitio web, se conecta a un nuevo servidor o inicia una aplicación de red, su sistema se comunica con el DNS de su ISP para resolver el nombre de la IP. Como resultado, su proveedor o cualquier persona ubicada en la “última milla”, es decir, entre usted y el proveedor, puede recibir todos los nombres de los nodos a los que accede. La opción anterior con sustitución de dirección IP es bastante cruel, pero en cualquier caso es posible rastrear los nodos que has visitado y utilizar esta información para tus propios fines.

Si tienes “miedo” de tu proveedor o simplemente no quieres que vea qué sitios visitas, puedes (por supuesto, además de usar una VPN y otras medidas de seguridad) configurar adicionalmente tu computadora para usar los servidores DNS de el proyecto OpenDNS (www.opendns.com). En este momento estos son los siguientes servidores:

208.67.222.222;

208.67.220.220.

No necesitas ningún otro software adicional. Simplemente configure su sistema para usar estos servidores DNS.

Pero el problema de interceptar las conexiones DNS aún persiste. Sí, ya no accede al DNS del proveedor, sino a OpenDNS, pero aún puede interceptar paquetes y ver qué hay en ellos. Es decir, si lo deseas, puedes saber a qué nodos accediste.

Ahora llegamos a DNSCrypt. Este programa le permite cifrar su conexión DNS. ¡Ahora su ISP (y todos los que están entre usted y ellos) no sabrán exactamente qué sitios visita! Lo repetiré de nuevo. Este programa no reemplaza a Tor o VPN. Como antes, el resto de los datos que transmites se transmiten sin cifrado si no utilizas ni una VPN ni Tor. El programa sólo cifra el tráfico DNS.

El sitio https://www.dnsleaktest.com le permite identificar una fuga de DNS y explica cómo deshacerse de ella. Simplemente vaya a este sitio. Al hacer clic en el botón Buscar fugas de DNS ahora, recibirá una lista de servidores DNS a través de los cuales pueden pasar sus consultas. Por lo tanto, verá exactamente quién puede saber qué sitios visita.

En mi caso, los propietarios de 12 servidores DNS tienen la capacidad de registrar todos los sitios que visito. Pero como trabajo a través de Tog, este tema me preocupa poco.

La página bit.lv/1ctmaaJ describe cómo solucionar esta vulnerabilidad (es decir, qué hacer para que después de conectarse a una VPN, su sistema utilice los servidores DNS del proveedor de VPN y no su proveedor de Internet). No veo ningún sentido en repetir todo esto, ya que cualquiera puede hacer frente a la secuencia de acciones paso a paso.

INSTALACIONES USANDO DNSCRYPT

La forma más sencilla de proteger su conexión DNS es utilizar DNSCrypt. Por supuesto, puedes seguir las recomendaciones de www. dnsleaktest.com, o puede tomar el camino de menor resistencia y simplemente instalar DNSCrypt.

En primer lugar, descargue DNSCrypt (https://github.com/QDendns/dnscrypt-win-client). Inmediatamente proporcioné un enlace a GitHub, donde puedes descargar el programa. Para descargar el programa desde GitHub, haga clic en el botón Descargar ZIP. Se descargará un archivo con fuentes DNSCrypt. La versión ya compilada se encuentra en el directorio DNSCrypt del archivo. Desempaquete los archivos. Básicamente, sólo necesitas un archivo: dnscrypt-proxy.exe. Se encuentra en el mismo directorio. Todo lo demás (fuentes) se puede eliminar.

Pero eso no es todo. Si ya lo buscó en Google, entonces habrá visto capturas de pantalla de DNSCrypt. Después de iniciar dnscrypt-proxy.exe, te diste cuenta de que algo andaba mal. El programa se inició en la ventana. línea de comando. Todo está correcto, descargaste el proxy y ahora aún necesitas descargar el shell. Hay otro proyecto en GitHub: el shell que necesitamos.

Del mismo modo, descargue el archivo ZIP y descomprímalo en algún lugar. En el directorio binarios/Release/ habrá un programa llamado dnscrypt-winclient.exe. Copie este archivo al directorio donde se encuentra el archivo dnscrypt-proxy.exe.

Todo lo que queda es ejecutar dnscrypt-proxy. Eh. En la ventana que aparece, seleccione adaptadores de red que desea proteger y haga clic en el botón Inicio. Si todo está bien, el mensaje DNSCrypt se está ejecutando aparecerá cerca del botón Detener (el botón Inicio se convertirá en él). Por cierto, tenga en cuenta que la interfaz de OS X se ve ligeramente diferente.

COMO CONCLUSIÓN

El artículo no fue muy largo, ya que el programa en sí es muy fácil de usar. Pero no estaría completo si no mencionara VPN. Si lee este artículo y está interesado en él, pero aún no ha utilizado los servicios de un proveedor de VPN para cifrar sus datos, entonces es hora de hacerlo. El proveedor de VPN le proporcionará un túnel seguro para transferir sus datos y DNSCrypt protegerá sus conexiones DNS. Por supuesto, SecurityKISS es de pago (gratis plan tarifario sólo se puede utilizar con fines informativos), pero hay que pagar por la seguridad?

Por supuesto, puedes usar Tor, pero Tor funciona relativamente lento y, digan lo que digan, no es una VPN; no será posible "tarificar" todo el tráfico. En cualquier caso (cualquiera que sea la opción que elijas), tus conexiones DNS ahora son seguras. Todo lo que queda es decidir un medio para cifrar el tráfico (si aún no lo ha hecho).

¡Hola a todos! Es hora de observar el tráfico DNS a través de la lupa de WireShark.

Permítanme recordarles que el protocolo DNS sirve para convertir un nombre simbólico comprensible para las personas, como, por ejemplo, un sitio web, en la dirección IP a la que se realiza la solicitud.

Descargue el archivo de tráfico. Ábrelo en WireShark y mira:

Como puede ver, el protocolo DNS (en la zona seleccionada es el sistema de nombres de dominio más bajo) es un complemento del protocolo UDP, que se encuentra en el cuarto nivel. Es decir, sin establecer una conexión permanente, sino simplemente enviando paquetes (datagramas). Al igual que TCP, UDP tiene puertos. Para DNS, este es el puerto número 53, que se puede ver fácilmente en el árbol de protocolos.

bajemos aún más protocolo UDP Se basa en el protocolo IP para la transferencia entre redes. Actualmente, es el principal protocolo para la transferencia de datos en Internet. En este nivel tenemos información sobre las direcciones IP de origen y destino. Bueno, también información sobre el paquete UDP encapsulado.

La dirección de origen será nuestra máquina (que solicitó información vía DNS), y la dirección IP de destino será la misma. servidor DNS, que (por implicación) debe tener una base de datos de dichas coincidencias.

Esta base de datos almacena registros de varios tipos:

  • A (host): conecta el nombre del host y su dirección IP;
  • AAAA (host): conecta el nombre del host y su dirección IPv6;
  • CNAME (alias): conecta el nombre del nodo y su alias para redirigir a otro nombre de nodo;
  • MX (intercambio de correo): apunta a una dirección IP servidor de correo procesar este dominio;
  • NS (servidor de nombres): apunta al servidor DNS que presta servicio a este dominio;
  • SOA (inicio de autoridad): indica la zona de inicio de este dominio, contiene la IP del servidor DNS principal, dirección e información de contacto de la persona, propietario del dominio, marcas de tiempo, etc.;
  • PTR (puntero): puntero a comentario, que convierte la dirección IP en un nombre canónico;
  • SRV (servidor): puntero a varios servicios;
  • La lista completa de entradas se puede ver en http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

Entonces, volvamos a nuestra petición. Veamos el primer paquete:


Como podemos ver, si ampliamos el árbol de información en el análisis de paquetes, podemos ver que se ha recibido una solicitud (Queries) para obtener un registro de host estándar (Tipo: A) por nombre (Nombre: www.iana.org) . Es decir, traducido de DNS al ruso será así:

"Ey, 68.87.76.178 ! Hágamelo saber que propiedad intelectual un chico llamado www.iana.org, Quiero decirle algo ".

Así van sus conversaciones. A lo que responderá el servidor (paquete No. 2):


Aquí vemos la respuesta a la pregunta. En otras palabras, el servidor DNS responde al host que envió la solicitud:

"Ey, 71.198.243.158 , preguntaste cuál es la dirección www.iana.org, así que aquí está su dirección. 192.0.34.162 !, ahora escríbele directamente”

En detalle, también debes prestar atención a los campos Flags, que muestran las características de las solicitudes y respuestas:


Aquí volví a recurrir al primer paquete, en el que se produce la solicitud al servidor.

Preste atención al ID de transacción: este valor numérico debe repetirse en la respuesta, lo que significará que la respuesta es específica para esta solicitud.

Un campo estándar de dos bytes cuyos valores son la suma de bits:

  • el primer bit (1) indica que se trata de una solicitud;
  • 2-5 bits (4): que se trata de una solicitud estándar;
  • 7 bits (1): que no se trata de una solicitud truncada;
  • 8 bits (1) – consulta recursiva (es decir, si nuestro servidor DNS no conoce la IP del host que solicitamos, consultará otros servidores DNS hasta encontrar una respuesta;
  • 10 bits (1) – reservado;
  • 12 bits (1): acepta respuestas no autorizadas. Una respuesta de un servidor se denomina autorizada si indica que presta servicio a la zona determinada. Si el servidor recibió una respuesta de otros servidores, dicha respuesta no tiene autoridad para nosotros.

Ahora veamos las banderas de respuesta:


Preste atención al ID de la transacción. Coincide con el ID del paquete anterior.

  • El primer bit (1) es que se trata de una respuesta;
  • 2-5 bits (4) – respuesta estándar;
  • 6 bits (1) - la autoridad de la respuesta, si el propio servidor da servicio a esta zona - devolverá "1", si recibió una respuesta de otro lugar - será "0";
  • 7 bits (1) – paquete acortado. En caso de que la respuesta no se ajuste al tamaño del datagrama UDP (512 bytes);
  • 8 bits (1): es recomendable utilizar consultas recursivas. Si la bandera está configurada en "0", en la respuesta el cliente recibirá una lista de otros servidores desde los cuales puede intentar encontrar la información necesaria.
  • 9 bits (1): el servidor realiza solicitudes recursivas;
  • 10 bits (1) – reservado;
  • 11 bits (1): se recibió una respuesta autorizada, es decir, el propio servidor da servicio a esta zona;
  • 12 bits (1): ¿acepta respuestas no autorizadas?
  • 13-16 bits (4) – código de error. Si es 0, entonces todo está bien.

Bueno, en general, descubrimos las preguntas y respuestas estándar sobre DNS.

Por cierto, había un troyano que robaba datos de una computadora y los enviaba en forma de solicitudes DNS al servidor. ¿Te imaginas cómo es? La mayoría de los firewalls permiten DNS, esto es operación normal computadora cliente. Y el gusano, bajo la apariencia de solicitudes DNS, envió datos privados al servidor DNS "izquierdo". Como, "oye, servidor host, dime la IP del nodo llamado" correo " [correo electrónico protegido], contraseña yyyyy”?” Y el servidor registraba solicitudes y podía enviar respuestas sin sentido, registrando así todas las solicitudes en algún archivo. La cantidad de solicitudes de DNS era grande y, bajo su apariencia, era posible transferir megabytes de datos sin que el usuario se diera cuenta. A menos que escuche específicamente el tráfico, es imposible detectar una fuga de datos.

El programa escanea las respuestas DNS de los servidores (esto es suficiente, hay consultas dentro de las respuestas) y, si el nombre de dominio coincide con una expresión regular, imprime la dirección del registro A (lo que se obtuvo como resultado de la resolución).

Con esta utilidad, puede recopilar casi todas las estadísticas: qué nombre de dominio se resolvió en una dirección IP y cuándo sucedió. Un usuario capacitado, por supuesto, puede ocultar esta información (escribiendo el nodo en el archivo hosts o usando otro canal para consultas DNS, por ejemplo), pero para la mayoría de los nodos obtendremos una imagen satisfactoria.

Cómo funciona:

$ sudo ./sidmat eth0 "." yo
Vemos nombres de dominio y a qué resuelven (eth0 es la interfaz por la que pasa el tráfico DNS).

$ sudo ./sidmat eth0 "." UI | mientras que IFS= leer -r línea; do printf "%s\t%s\n" "$(fecha "+%Y-%m-%d %H:%M:%S")" "$línea"; hecho
Arreglamos el tiempo. Todo lo que queda es redirigir el resultado a un archivo y podrá utilizar la tabla de correspondencia. La utilidad puede capturar respuestas DNS usando pcap (en Linux/BSD) o usando el mecanismo nflog en Linux.

La misma técnica se puede utilizar para controlar el tráfico. Filtre por dominio, obtenga direcciones de dominio con palabras clave en los nombres, etc.

Debe tener en cuenta que el control puede no ser muy preciso. Si para cuando la respuesta DNS llega al usuario y este comienza a transmitir tráfico a este nodo, no tenemos tiempo de agregar la dirección a ipset/iptables/tabla de enrutamiento/en algún otro lugar, entonces el tráfico irá por el camino "normal". .

Además, un usuario calificado puede generar respuestas DNS falsas, por lo que es mejor utilizar esto con precaución para tomar represalias.

Algunos ejemplos:

¿Cómo obtener una lista de direcciones IP a las que se resuelve vk.com y sus subdominios? (Sin la opción "u", solo se imprimirán direcciones IP únicas)

$ sudo ./sidmat eth0 "^vk.com$|\.vk.com$" d
Con las opciones "d" o "i" puede ver qué dominio se resuelve en la dirección IP, "d" imprime el nombre de dominio en stderr.

¿Cómo bloquear direcciones que permiten vk.com, sus subdominios y todos los dominios con la palabra odnoklassniki? (Dominios como avk.com no estarán sujetos a la regla, odnoklassnikii.com sí).

$ sudo sh -c "/sidmat eth0 "^vk\.com$|\.vk\.com$|odnoklassniki" | /usr/bin/xargs -I () /sbin/iptables -A ENTRADA -s () - j CAER"
Además de pequeñas expresiones regulares, puedes usar listas en un archivo (opción "f", el segundo argumento se interpreta como el nombre del archivo, su contenido como un gran expresión regular). Las listas pueden ser bastante grandes, observamos el rendimiento en la lista de dominios RKN (el tráfico a dominios prohibidos se redirigió a VPN), un enrutador de PC normal se enfrentó a esto con bastante calma.

Puedes ayudar y transferir algunos fondos para el desarrollo del sitio.



 


Leer:



Super zero MTS: descripción de la tarifa

Super zero MTS: descripción de la tarifa

El número de suscriptores crece cada día en miles por día. Atrás quedaron los días en los que en un minuto de conversación incluso con nuestro operador...

Casos (situaciones de interacción entre un niño y un adulto) Situaciones pedagógicas, métodos de enseñanza de la conducción de casos.

Casos (situaciones de interacción entre un niño y un adulto) Situaciones pedagógicas, métodos de enseñanza de la conducción de casos.

Hoy es el mecanismo más importante para el desarrollo de cada persona. En este sentido, la tarea principal es proporcionar las condiciones para...

¿Qué hacer si un virus ingresa a su dispositivo?

¿Qué hacer si un virus ingresa a su dispositivo?

Desafortunadamente, a veces sucede que el antivirus instalado en el sistema con las últimas actualizaciones no es capaz de detectar un nuevo virus...

Programas para teléfonos inteligentes Samsung Galaxy Programas para teléfonos inteligentes Samsung

Programas para teléfonos inteligentes Samsung Galaxy Programas para teléfonos inteligentes Samsung

La plataforma Samsung DeX permite a los propietarios de dispositivos Galaxy conectarlos a monitores externos y utilizarlos como computadora personal....

imagen-feed RSS