Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores


Esta lección describe las tecnologías de piratería de redes basadas en la intercepción. paquetes de red. Los piratas informáticos utilizan dichas tecnologías para rastrear el tráfico de la red con el fin de robar información valiosa, interceptar datos con el propósito de un ataque de intermediario, interceptar conexiones TCP, lo que permite, por ejemplo, falsificar datos y realizar otras acciones igualmente acciones interesantes. Desafortunadamente, la mayoría de estos ataques en la práctica se implementan solo para redes Unix, para las cuales los piratas informáticos pueden usar ambos utilidades especiales y herramientas del sistema Unix. Los piratas informáticos parecen eludir las redes de Windows y nos vemos obligados a limitar nuestra descripción de las herramientas de interceptación de datos a los programas rastreadores diseñados para rastrear paquetes de red triviales. Sin embargo, no se debe descuidar al menos una descripción teórica de tales ataques, especialmente para los anti-hackers, ya que el conocimiento de las tecnologías de piratería utilizadas ayudará a prevenir muchos problemas.

Rastreo de red

La detección de redes Ethernet generalmente usa NIC configuradas en modo de escucha. Escuchar una red Ethernet requiere conectar una computadora que ejecuta un programa rastreador a un segmento de la red, después de lo cual todo el tráfico de la red enviado y recibido por las computadoras en este segmento de la red queda disponible para un pirata informático. Es aún más fácil interceptar el tráfico de redes de radio utilizando intermediarios de redes inalámbricas; en este caso, ni siquiera necesita buscar un lugar para conectarse al cable. O un atacante puede conectarse a la línea telefónica que conecta la computadora al servidor de Internet, encontrando un lugar conveniente para esto (las líneas telefónicas generalmente se colocan en sótanos y otros lugares desprotegidos).

Para demostrar la tecnología de sniffing, utilizaremos un programa sniffer muy popular SpyNet que se puede encontrar en muchos sitios web. Web oficial del programa SpyNet situado en http://members.xoom.com/layrentiu2/, donde puede descargar una versión de demostración del programa.

Programa SpyNet consta de dos componentes - capturanet Y PipeNet. Programa capturanet le permite interceptar paquetes transmitidos a través de una red Ethernet a nivel de red, es decir, como tramas Ethernet. Programa PipeNet le permite recopilar tramas de Ethernet en paquetes de capa de aplicación, recuperando, por ejemplo, mensajes Correo electrónico, mensajes de protocolo HTTP (intercambio de información con un servidor Web), y realizar otras funciones.

Desafortunadamente la demostración SpyNet posibilidades PipeNet se limitan a la demostración de compilación del paquete HTTP, por lo que no podemos demostrar el trabajo SpyNet en su totalidad. Sin embargo, demostraremos las posibilidades del rastreo de redes SpyNet en el ejemplo de nuestra red experimental, pasando Archivo de texto del anfitrión Espada-2000 por host alex-z usando lo habitual Explorador de Windows. Simultáneamente en la computadora A1ex-1 ejecutaremos el programa capturanet, que interceptará los paquetes transmitidos y le permitirá leer el contenido del archivo transmitido en tramas de Ethernet. en la fig. 1 muestra el texto del mensaje secreto en el archivo secreto.txt; intentaremos encontrar este texto en las tramas de Ethernet interceptadas.

Arroz. 1. El texto del mensaje secreto en la ventana del Bloc de notas

Siga estos pasos para capturar tramas de Ethernet.

En la computadora alex-z ejecuta el programa capturanet. En la ventana de trabajo que se muestra del programa, seleccione el comando de menú Capturar *Iniciar(Capture * Start) e inicie el proceso de captura de tramas de red.

Use el Explorador de Windows para copiar el archivo security.txt de su computadora Espada-2000 en A1ex-3.

Después de transferir el archivo secret.txt, seleccione el comando de menú Capturar*Parar(Capture * Stop) y detener el proceso de captura.

Los marcos de Ethernet capturados se mostrarán en la parte derecha de la ventana del programa capturanet(Figura 2), con cada fila en la lista superior representando un marco de Ethernet, y debajo de la lista mostrando el contenido del marco seleccionado.

Arroz. 2. La trama Ethernet contiene el texto del mensaje secreto

Mirando a través de la lista de marcos interceptados, podemos encontrar fácilmente el que contiene el texto que transmitimos This is a very big secret (Este es un secreto muy grande).

Hacemos hincapié en que este es el ejemplo más simple, cuando se registró todo el tráfico de red interceptado. Programa capturanet le permite interceptar paquetes enviados a través de ciertos protocolos y a ciertos puertos de hosts, seleccionar mensajes con cierto contenido y acumular los datos capturados en un archivo. La técnica para realizar tales acciones es simple y se puede dominar utilizando el sistema de ayuda del programa. SpyNet.

Además de la escucha primitiva en la red, los piratas informáticos disponen de medios más sofisticados para interceptar datos. A continuación se muestra una breve descripción de tales métodos, sin embargo, en un aspecto teórico. La razón es que para las redes de Windows, la implementación práctica de los ataques de espionaje de datos es extremadamente limitada, y el conjunto de herramientas confiables para los ataques de espionaje es bastante pobre.

Métodos para interceptar el tráfico de red

Escuchar una red usando programas analizadores de red como el de arriba capturanet, es el primero, el más de una manera sencilla interceptación de datos. Excepto SpyNet Para la detección de redes, se utilizan muchas herramientas, desarrolladas originalmente con el fin de analizar la actividad de la red, diagnosticar redes, seleccionar el tráfico de acuerdo con criterios específicos y otras tareas de administración de redes. Un ejemplo de tal programa es volcado tcp (http://www.tcpdump.org), que le permite registrar el tráfico de red en un registro especial para su posterior análisis.

Para protegerse contra el espionaje de la red, aplique programas especiales, Por ejemplo, Antiolfateo (http://www.securitysoftwaretech.com/antisniff) que pueden detectar equipos en la red que están escuchando el tráfico de la red. Para resolver sus problemas, los programas anti-sniffer utilizan una señal especial de la presencia de dispositivos de escucha en la red: la tarjeta de red de la computadora rastreadora debe estar en un modo de escucha especial. Mientras está en el modo de escucha, computadoras en red responder de manera especial a los datagramas IP enviados a la dirección del host bajo prueba. Por ejemplo, los hosts de escucha normalmente procesan todo el tráfico entrante, no solo los datagramas enviados a la dirección del host. Hay otros signos que indican un comportamiento sospechoso del host que el programa puede reconocer. Antiolfateo.

Sin duda, escuchar es muy útil desde el punto de vista de un atacante, ya que le permite obtener mucha información útil: contraseñas transmitidas a través de la red, direcciones de computadoras en la red, datos confidenciales, cartas, etc. Sin embargo, el simple espionaje evita que un pirata informático interfiera con la comunicación de red entre dos hosts para modificar y corromper los datos. Para resolver este problema, se requiere una tecnología más sofisticada.

Solicitudes ARP falsas

Para interceptar y recorrer el proceso de comunicación de red entre dos hosts A y B, un atacante puede reemplazar las direcciones IP de los hosts que interactúan con su propia dirección IP mediante el envío de mensajes ARP (Protocolo de resolución de direcciones) falsos a los hosts A y B. . El protocolo ARP se puede encontrar en el Apéndice D, que describe cómo resolver (traducir) la dirección IP de un host en una dirección de máquina (dirección MAC) cableada en la NIC del host. Veamos cómo un pirata informático puede usar el protocolo ARP para interceptar la comunicación de red entre los hosts A y B.

Para interceptar el tráfico de red entre los hosts A y B, un pirata informático fuerza su dirección IP en estos hosts para que A y B usen esta dirección IP falsa cuando intercambian mensajes. Para imponer su dirección IP, un hacker realiza las siguientes operaciones.

Un atacante determina las direcciones MAC de los hosts A y B, por ejemplo, mediante el comando nbtstat del paquete W2RK.

El atacante envía mensajes a las direcciones MAC identificadas de los hosts A y B, que son respuestas ARP falsificadas a las solicitudes para resolver las direcciones IP de los hosts en las direcciones MAC de las computadoras. Al Host A se le dice que la dirección IP del Host B coincide con la dirección MAC de la computadora del atacante; al host B se le dice que la dirección IP del host A también coincide con la dirección MAC de la computadora del atacante.

Los hosts A y B ingresan las direcciones MAC recibidas en sus cachés ARP y luego las usan para enviarse mensajes entre sí. Dado que las direcciones IP A y B corresponden a la dirección MAC de la computadora del atacante, los hosts A y B, sin saber nada, se comunican a través de un intermediario capaz de hacer lo que quieran con sus mensajes.

Para protegerse contra tales ataques, los administradores de red deben mantener una base de datos con una tabla de mapeo entre las direcciones MAC y las direcciones IP de las computadoras de su red. Además, con la ayuda de un software especial, por ejemplo, la utilidad arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz) puede inspeccionar periódicamente la red e identificar inconsistencias.

En las redes UNIX, este tipo de ataque de suplantación de ARP se puede implementar utilizando las utilidades del sistema para monitorear y administrar el tráfico de la red, por ejemplo, arpredirecto. Desafortunadamente, en Redes de Windows 2000/XP, estas utilidades confiables no parecen estar implementadas. Por ejemplo, en el sitio web de NTsecurity ( http://www.ntsecurity.nu) puede descargar la utilidad Grabit IA presentado como un medio para redirigir el tráfico entre los hosts de la red. Sin embargo, una comprobación elemental del rendimiento de la empresa de servicios públicos Grabit IA muestra que el pleno éxito en la implementación de sus funciones está aún lejos.

Enrutamiento falso

Para interceptar el tráfico de la red, un atacante puede reemplazar la dirección IP real de un enrutador de red con su propia dirección IP, por ejemplo, utilizando mensajes de redirección ICMP falsificados. De acuerdo con RFC-1122, el host A debe interpretar el mensaje de redirección recibido como una respuesta a un datagrama enviado a otro host, por ejemplo, B. El host A determina sus acciones en el mensaje de redirección en función del contenido del mensaje de redirección recibido, y si Redirigir está configurado para redirigir datagramas de A a B en una nueva ruta, eso es exactamente lo que hará el host A.

Para realizar un enrutamiento falso, un atacante necesita conocer algunos detalles sobre la organización. red local, donde se encuentra el host A, en particular, la dirección IP del enrutador a través del cual se envía el tráfico del host A al B. Sabiendo esto, el atacante formará un datagrama IP en el que la dirección IP de origen se define como la dirección IP de el enrutador y el destinatario es el host A especificado. También se incluye en el datagrama un mensaje de redirección ICMP con el campo de dirección del nuevo enrutador establecido en la dirección IP de la computadora del atacante. Habiendo recibido dicho mensaje, el host A enviará todos los mensajes a la dirección IP de la computadora del atacante.

Para protegerse contra un ataque de este tipo, debe deshabilitar (por ejemplo, usando un firewall) en el host A el procesamiento de mensajes de redirección ICMP y el comando rastrear(en Unix este es el comando tracerout). Estas utilidades pueden encontrar una ruta adicional que apareció en la red local, no proporcionada durante la instalación, si, por supuesto, el administrador de la red está atento.

Los ejemplos anteriores de intercepciones (que están lejos de limitarse a los atacantes) convencen de la necesidad de proteger los datos transmitidos a través de la red si los datos contienen información confidencial. El único método de protección contra las intercepciones del tráfico de red es el uso de programas que implementan algoritmos criptográficos y protocolos de encriptación y evitan la divulgación y sustitución de información secreta. Para resolver tales problemas, la criptografía proporciona medios para cifrar, firmar y autenticar mensajes transmitidos a través de protocolos seguros.

La implementación práctica de todos los métodos criptográficos de protección de intercambio de información descritos en el Capítulo 4 es proporcionada por redes VPN(Red Privada Virtual - Redes Privadas Virtuales). Breve reseña principios y métodos de protección criptográfica se pueden encontrar en el Apéndice E, y en Descripción detallada protección criptográfica proporcionada por la aplicación Seguridad de escritorio de PGP (http://www.pgp.com).

Intercepción de conexión TCP

El ataque de intercepción de tráfico de red más sofisticado debe considerarse secuestro de conexión TCP (secuestro de TCP), cuando un pirata informático, al generar y enviar paquetes TCP al host atacado, interrumpe la sesión de comunicación actual con el host. Además, utilizando las capacidades del protocolo TCP para restaurar una conexión TCP interrumpida, el hacker intercepta la sesión de comunicación interrumpida y la continúa en lugar del cliente desconectado.

Se han creado varias utilidades efectivas para realizar ataques de secuestro de TCP, pero todas están implementadas para la plataforma Unix, y estas utilidades están disponibles en sitios web solo en forma de código fuente. Por lo tanto, nosotros, como practicantes convencidos de la noble causa de la piratería, tenemos poca utilidad para los ataques mediante la interceptación de una conexión TCP. (Los fanáticos de comprender el código del programa de otra persona pueden consultar el sitio http://www.cri.cz/~kra/index.html donde puedes descargar fuente reconocida utilidad de interceptación de conexiones TCP Caza de Pavel Krauz.

A pesar de la falta de herramientas prácticas, no podemos ignorar tales tema interesante, como la interceptación de conexiones TCP, y nos detenemos en algunos aspectos de este tipo de ataques. En el Apéndice D de este libro se proporciona información sobre la estructura de un paquete TCP y cómo se establecen las conexiones TCP, pero aquí nos centraremos en la pregunta: ¿qué es exactamente lo que permite a los hackers realizar ataques de interceptación de conexiones TCP? Consideremos este tema con más detalle, basándonos principalmente en la discusión en y.

TCP (Transmission Control Protocol) es uno de los protocolos de transporte básicos. capa OSI, que le permite establecer conexiones lógicas sobre un canal de comunicación virtual. Los paquetes se transmiten y reciben por este canal con registro de su secuencia, se controla el flujo de paquetes, se organiza la retransmisión de paquetes distorsionados y al final de la sesión se interrumpe el canal de comunicación. El protocolo TCP es el único protocolo central de la familia TCP/IP que tiene un sistema avanzado de identificación de mensajes y conexiones.

Para identificar un paquete TCP, hay dos identificadores de 32 bits en el encabezado TCP, que también desempeñan el papel de un contador de paquetes, llamados número de secuencia y número de reconocimiento. También nos interesará otro campo del paquete TCP, llamado bits de control. Este campo de 6 bits incluye los siguientes bits de control (en orden de izquierda a derecha):

URG - bandera urgente;

ACK - bandera de confirmación;

PSH - llevar bandera;

RST - indicador de restablecimiento de conexión;

SYN - indicador de sincronización;

FIN - bandera de terminación de conexión.

Considere el procedimiento para crear una conexión TCP.

1. Si el host A necesita establecer una conexión TCP con el host B, entonces el host A envía el siguiente mensaje al host B:

A -> B: SYN, ISSa

Esto significa que el mensaje enviado por el host A tiene establecido el indicador SYN (Sincronizar número de secuencia), y el campo de número de secuencia está establecido en el ISSa inicial de 32 bits (Número de secuencia inicial).

2. En respuesta a una solicitud recibida del host A, el host B responde con un mensaje con el bit SYN establecido y el bit ACK establecido. En el campo de número de secuencia, el host B establece su valor de contador inicial, ISSb; el campo del número de acuse de recibo contendrá el valor ISSa recibido en el primer paquete del host A más uno. Entonces el host B responde con este mensaje:

B -> A: SYN, ACK, ISSb, ACK (ISSa+1)

3. Finalmente, el host A envía un mensaje al host B en el que: se establece el bit ASC; campo ordinal contiene valor EEI + 1; el campo del número de acuse de recibo contiene el valor ISSb+1. Después de esa conexión TCP entre hosts A Y EN se considera establecido:

A -> B: ACK, ISSa+1, ACK(ISSb+1)

4. Ahora el anfitrión A puede enviar paquetes de datos al host EN sobre el canal virtual TCP recién creado:

A -> B: ACK, ISSa+1, ACK(ISSb+1); DATOS

Aquí DATOS significa datos.

Del algoritmo para crear una conexión TCP discutido anteriormente, se puede ver que los únicos identificadores de suscriptores TCP y una conexión TCP son dos parámetros de 32 bits de un número de secuencia y un número de reconocimiento: AISSa Y ISSb. Por lo tanto, si el hacker logra averiguar los valores actuales de los campos AISSa Y ISSb, entonces nada le impedirá formar un paquete TCP falsificado. Esto significa que basta con que un pirata informático recoja los valores actuales de los parámetros. AISSa Y ISSb Paquete TCP para esta conexión TCP, enviar un paquete desde cualquier host de Internet en nombre de un cliente de esta conexión TCP, y El paquete actual será aceptado como verdadero!

El peligro de tal falsificación de paquetes TCP también es importante porque los protocolos FTP y TELNET de alto nivel se implementan sobre la base del protocolo TCP, y la identificación de clientes FTP y paquetes TELNET se basa completamente en el protocolo TCP.

Además, dado que los protocolos FTP y TELNET no verifican las direcciones IP de los remitentes de mensajes, al recibir un paquete falsificado, los servidores FTP o TELNET enviarán un mensaje de respuesta a la dirección IP del host del hacker especificado en el paquete falsificado. Después de eso, el host del hacker comenzará a trabajar con el servidor FTP o TELNET desde su dirección IP, pero con los derechos de un usuario conectado legalmente, quien, a su vez, perderá la conexión con el servidor debido a la falta de coincidencia del contador.

Así, para llevar a cabo el ataque descrito anteriormente, una condición necesaria y suficiente es el conocimiento de los dos parámetros actuales de 32 bits AISSa Y ISSb, identificando la conexión TCP. Considerar formas posibles recibiéndolos. En el caso de que el host del hacker esté conectado al segmento de red atacado, la tarea de obtener valores AISSa Y ISSb es trivial y se resuelve analizando el tráfico de red. Por lo tanto, debe entenderse claramente que el protocolo TCP permite, en principio, proteger la conexión solo si es imposible que el atacante intercepte los mensajes transmitidos a través de esta conexión, es decir, solo si el host del hacker está conectado a un segmento de red que no sea el segmento de suscriptor de la conexión TCP.

Por lo tanto, los ataques entre segmentos son de mayor interés para un pirata informático, cuando el atacante y su objetivo se encuentran en diferentes segmentos de la red. En este caso, la tarea de obtener valores AISSa Y ISSb no es trivial. Para resolver este problema, hasta ahora solo se han inventado dos métodos.

Predicción matemática del valor inicial de los parámetros de conexión TCP por extrapolación de valores anteriores AISSa Y ISSb.

Explotación de vulnerabilidades en la identificación de suscriptores de conexión TCP en servidores Unix rsh.

La primera tarea se resuelve mediante estudios en profundidad de la implementación del protocolo TCP en varios sistemas operativos y ahora tiene un valor puramente teórico. El segundo problema se resuelve mediante el uso de vulnerabilidades en el sistema Unix para identificar hosts confiables. (De confianza con respecto a este anfitrión A llamado host de red EN, cuyo usuario puede conectarse al host A sin autenticación con host r-service A). Al manipular los parámetros de los paquetes TCP, un pirata informático puede intentar hacerse pasar por un host confiable e interceptar una conexión TCP con el host atacado.

Todo esto es muy interesante, pero los resultados prácticos de este tipo de investigación aún no son visibles. Por lo tanto, recomendamos a todos los que quieran profundizar en este tema que consulten el libro, de donde, en general, se tomó la información anterior.

Conclusión

El espionaje de red es la técnica de piratería de red más eficaz, ya que permite a un pirata informático obtener prácticamente toda la información que circula por una red. Las herramientas de olfato han recibido el mayor desarrollo práctico, es decir, escuchando redes; sin embargo, las técnicas de espionaje de la red realizadas al interferir con el funcionamiento normal de la red para redirigir el tráfico a un host de piratas informáticos no pueden ignorarse, especialmente las técnicas de espionaje de la conexión TCP. Sin embargo, en la práctica, los últimos métodos mencionados aún no han recibido suficiente desarrollo y necesitan ser mejorados.

Un antihacker debe saber que la única forma de evitar la interceptación de datos es cifrarlos, es decir, Métodos criptográficos de protección. Al enviar un mensaje a través de la red, se debe suponer de antemano que el sistema de cable de la red es absolutamente vulnerable, y cualquier pirata informático que se conecte a la red podrá capturar todos los mensajes secretos transmitidos desde ella. Existen dos tecnologías para resolver este problema: crear una red VPN y cifrar los mensajes. Todas estas tareas son muy fáciles de resolver con la ayuda del paquete de software. Seguridad de escritorio de PGP(su descripción se puede encontrar, por ejemplo, en).

La idea de escribir este material nació, como sucedió en la mayoría de los casos, gracias a las preguntas de los lectores y otros conocidos sobre tecnologías para interceptar y analizar el tráfico de la red. Estas preguntas se dividen condicionalmente en 3 categorías: ¿es posible, en principio, interceptar y decodificar datos que se mueven a través de la red, cómo y con qué software se puede hacer esto? El tercer grupo de preguntas refleja cierta confusión en la terminología, en particular, las siguientes opciones son posibles: una persona conoce la esencia de la tecnología, pero no sabe cómo se llama. Por lo tanto, cuando se trata de, digamos, un rastreador, él, mirando hacia abajo, responde que no sabe qué es. ¿No es hora de puntear las i en este tema extremadamente importante tanto para principiantes como para usuarios avanzados de redes? Empecemos...

teoría

Comencemos con un poco de terminología.

La palabra sniffer (literalmente del inglés se puede traducir como "sniffer" o "sniffer") en el sentido más general es un tipo de dispositivo de escucha integrado en la red para interceptar los datos transmitidos a través de ella. En un sentido más estricto, un sniffer es un software que interactúa con (a menudo se dice que "siéntate" proviene de una marca registrada de Network Associates, en referencia al producto "Sniffer (r) Network Analyzer", pero posteriormente la palabra corrió la misma suerte como la PC, xerox, kleenex - el sniffer se está convirtiendo en un término familiar, que denota toda la clase de productos similares.

En alguna literatura y documentación, así como en diccionarios electrónicos como Lingvo, el término sniffer (rastreador de red) se identifica con conceptos tales como "analizador de tráfico de red", "analizador de paquetes", "analizador de protocolo", "analizador de red". Sin embargo, permítanme discrepar un poco con este enfoque.

Aún así, sería más lógico decir que el sniffing es un conjunto de medidas para interceptar el tráfico. En el marco de un producto en particular, se pueden implementar las siguientes cosas: captura de paquetes. En esta etapa, obtenemos una especie de volcado de datos sin procesar (legible por máquina), generalmente dividido en partes a lo largo de los límites del marco (paquete). Y lo que vamos a hacer con él es problema nuestro. Pero por lo general, dado que iniciamos el sniffer por alguna razón, estamos interesados ​​en obtener algún resultado en un formato legible por humanos, para lo cual se utiliza la decodificación de paquetes o el análisis de protocolos;

En realidad, este es el proceso de "rastrillar" nuestro vertedero. Aquí, por ejemplo, teníamos esa materia prima.

Como puede ver, este archivo consta de tres columnas: el desplazamiento de cada línea, los datos en formato hexadecimal y su equivalente ASCII. Este paquete contiene un encabezado Ethernet de 14 bytes, un encabezado IP de 20 bytes, un encabezado TCP de 20 bytes, un encabezado HTTP que termina en dos CRLF consecutivos (0D 0A 0D 0A), y luego los datos reales de la capa de aplicación, en nuestro caso , el tráfico web.

A veces, tal representación es suficiente para obtener la información necesaria, pero aún es más conveniente para que el paquete sea decodificado y analizado en todos los niveles de la pila de protocolos. Después de todo, ¿es realmente más agradable obtener una imagen así?

ETHER: Dirección de destino: 0000BA5EBA11 ETHER: Dirección de origen: 00A0C9B05EBD ETHER: Longitud de trama: 1514 (0x05EA) ETHER: Tipo de Ethernet: 0x0800 (IP) IP: Versión = 4 (0x4) IP: Longitud de encabezado = 20 (0x14) IP: Servicio Tipo = 0 (0x0) IP: Precedencia = Rutina IP:...0.... = Retardo normal IP:....0... = Rendimiento normal IP:.....0.. = Fiabilidad normal IP: Longitud total = 1500 (0x5DC) IP: Identificación = 7652 (0x1DE4) IP: Resumen de banderas = 2 (0x2) IP:.......0 = Último fragmento en datagrama IP:......1 . = No se puede fragmentar el datagrama IP: Fragment Offset = 0 (0x0) bytes IP: Tiempo de vida = 127 (0x7F) IP: Protocolo = TCP - Control de transmisión IP: Suma de comprobación = 0xC26D IP: Dirección de origen = 10.0.0.2 IP: Dirección de destino = 10.0.1.201 TCP: Puerto de origen = Protocolo de transferencia de hipertexto TCP: Puerto de destino = 0x0775 TCP: Número de secuencia = 97517760 (0x5D000C0) TCP: Número de reconocimiento = 78544373 (0x4AE7DF5) TCP: Compensación de datos = 20 (0x14) TCP: Reservado = 0 ( 0x0000) TCP: Flags = 0x10:.A.... TCP:..0..... = Sin datos urgentes TCP:...1.... = Campo de reconocimiento significativo TCP:....0. .. = Sin función Push TCP:.....0.. = Sin reinicio TCP:......0. = No Sincronizar TCP:......0 = No Fin TCP: Ventana = 28793 (0x7079) TCP: Checksum = 0x8F27 TCP: Puntero Urgente = 0 (0x0) HTTP: Respuesta (al cliente usando el puerto 1909) HTTP: Protocolo Versión = HTTP/1.1 HTTP: Código de estado = OK HTTP: Motivo = OK ....

Además de lo anterior, se pueden implementar otras "características", como la visualización de paquetes en ejecución en tiempo real, el filtrado según un escenario determinado, varios tipos de estadísticas de tráfico: la cantidad de errores, la intensidad, etc.

Tipos de sniffers y sniffing

Todo lo que se describirá en este párrafo, por supuesto, tiene cierto matiz de convencionalismo, ya que nadie ha descrito aún completamente la "Teoría del olfateo" oficial. Tendremos que idear una clasificación "sobre la marcha" ;)

Entonces, según la "ubicación" (si este término es aplicable aquí), el sniffer puede funcionar:

En el enrutador (puerta de enlace)

En este escenario, puede interceptar el tráfico que pasa a través de las interfaces de esta puerta de enlace. Por ejemplo, de su red local a otra red y viceversa. Así, si instalamos un sniffer en el router de un proveedor de Internet, podremos rastrear el tráfico de sus usuarios, y así sucesivamente...

En el nodo final de la red

Con respecto a Ethernet, tendremos dos opciones posibles principales para las escuchas telefónicas. La Ethernet clásica no conmutada asume que cada interfaz de red, en principio, "escucha" todo el tráfico de su segmento. Sin embargo, en el funcionamiento normal de la tarjeta de red, después de leer los primeros 48 bits del encabezado de la trama, la estación compara su dirección MAC con la dirección de destino especificada en la trama. Si la dirección es de otra persona, la emisora ​​"vergonzosamente cierra los oídos", es decir, deja de leer el marco de otra persona. Por lo tanto, en modo normal, puede interceptar y analizar solo su propio tráfico. Para interceptar paquetes de todas las estaciones en el segmento, necesita traducir su tarjeta de red en un modo llamado modo promiscuo para que "descaradamente" continúe leyendo paquetes que no están destinados a ella. Casi todas las implementaciones de sniffer permiten que la tarjeta cambie al modo promiscuo.

Nota: el uso de Ethernet conmutada crea una situación en la que incluso cambiar la tarjeta al modo promiscuo hace que sea casi imposible escuchar el tráfico que no está destinado a su estación. Sin embargo, existe una tecnología para organizar dicha escucha a través de la llamada suplantación de identidad ARP. La conclusión es la siguiente: el conmutador crea el llamado "dominio de transmisión", y un host con un sniffer instalado puede pretender ser, por ejemplo, un enrutador de borde que utiliza la falsificación de mensajes ARP (enviar mensajes ARP constantemente, donde la dirección de red del enrutador corresponde a la dirección MAC de la estación de escucha). Por lo tanto, el tráfico de vecinos girará a la fuerza en la dirección del "espía".

De lo contrario, los sniffers pueden diferir entre sí principalmente en la funcionalidad, como por ejemplo:

Soportado interfaces físicas y protocolos de capa de enlace;

La calidad de la decodificación y el número de protocolos "reconocibles";

Interfaz de usuario y comodidad de visualización;

Funciones adicionales: estadísticas, visualización en tiempo real, generación o modificación de paquetes y más...

Al elegir un sniffer (así como cualquier otro software, por cierto), tiene sentido guiarse por las siguientes consideraciones: de lo que existe en su sistema operativo, elegimos lo que coincide exactamente con sus tareas (tiene sentido si está planeando un evento único o la ejecución constante de la misma operación) o la solución más sofisticada, en caso de que sienta que el sniffer le será útil, pero aún no sabe en qué situación :) Pero las situaciones son diferente ...

¿Por qué necesitamos un rastreador?

Tradicionalmente, la idea de olfatear se vivió como si fuera de dos formas: uso legal e ilegal. De manera reveladora, la palabra "sniffer" se usa con más frecuencia en la esfera ilegal y "analizador de red" en la legal. Comencemos con la aplicación legal;)

Troubleshooting (detección de problemas y cuellos de botella en la red). En modo avanzado, cuando el sniffer opera en un segmento no conmutado o en una puerta de enlace, podemos obtener una imagen casi completa de los eventos que ocurren en nuestra red: intensidad de tráfico por tiempo, por estaciones de trabajo, por protocolos, número de errores diferentes tipos. Además, en ambos modos, podemos "rastrillar" problemas más específicos, cuando, digamos, una estación en particular no puede organizar alguna interacción en la red, y esto a pesar de que la red parece bastante funcional desde el exterior. Un sniffer es especialmente útil en los casos en que el software de red está mal documentado o utiliza sus propias tecnologías (protocolos) cerradas (no documentadas), a menudo sospechosas.

Por ejemplo: ICQ, Europa en Línea. Las tecnologías/software sospechosos deben entenderse como situaciones en las que sospecha que un programa contiene una pestaña u otra funcionalidad no documentada. Por ejemplo, hubo rumores de que la parte del cliente del famoso cDc Back Orifice también es un caballo de Troya y envía cierta información a los propietarios, los autores del software. Configurar el Cliente BO "para escuchar" mostró que los rumores no eran ciertos.

No menos útil es un sniffer para depurar su propio software. Nunca olvidaré el momento en que el servidor proxy se negó a establecer una conexión si la solicitud GET terminaba con \n\n en lugar del \r\n\r\n requerido. Solo examinar los paquetes enviados por el navegador "legítimo" y compararlos con los paquetes enviados por mi script "advenedizo" me señaló un desafortunado error. Muy, muy a menudo, en mi práctica administrativa diaria, también tengo que lidiar con el análisis a nivel de TCP/UDP.

Educación. Puede desmayarse al memorizar varios formatos de encabezado de paquete de protocolo y métodos de interacción (por ejemplo, protocolo de enlace TCP de 3 vías, DNS, métodos de aplicación del plan de trazado de ruta), pero este conocimiento está muerto hasta que intente "tocarlo con sus manos" - tener programa escrito una vez o... buscando en el sniffer! Después de leer la documentación de un protocolo desconocido o mal entendido, intente simular la interacción, interceptar paquetes y analizarlos. Le aseguro que todo se volverá extremadamente claro y, además, este conocimiento es más realista y se depositará en su cabeza durante mucho tiempo. tiempo. En el caso de tecnologías cerradas, un sniffer puede ser casi el único medio para estudiarlas.

Registro de tráfico de red. Puede haber mucha discusión sobre la legalidad y la ética de registrar el tráfico de usuarios por parte de un administrador para su posterior revisión, pero el hecho es que muchas organizaciones incluyen esta tecnología en su política de seguridad. Mi opinión personal es que el patrón es el propietario, es decir, si la empresa proporciona a sus empleados equipos, conexión a locales y redes globales, tiene derecho a exigir el buen uso de estos recursos. Segundo razón importante para el registro de tráfico: detección de intentos de acceso no autorizado y otras actividades maliciosas, por ejemplo, ataques DoS. Teniendo tales registros, el administrador puede saber con 100% de precisión lo que está sucediendo en sus posesiones de red.

Ahora hablemos del lado ilegal de olfatear. Bueno, en primer lugar, es banal.

escuchar a escondidas Habiendo instalado correctamente un sniffer, puede espiar a sus vecinos y distantes: enemigos, amigos, cónyuges;) Puede que le interesen estas preguntas: por qué una persona usa la red, qué recursos web visita, qué datos tiene. transmite, con quién y sobre qué se comunica? Perdónenme las autoridades de seguridad del estado, pero el notorio SORM, cuya legitimidad en forma de registro de tráfico total es una gran duda, todavía me refiero a esta sección, aunque también podría estar en el último párrafo de "olfateo legal"; )

Más escuchas mercantiles. Sin embargo, una parte importante de la comunidad de "hackers" no intercambia sus talentos para espiar a los cónyuges infieles y otras cosas de la vida cotidiana. La mayoría de las veces, un atacante está interesado en algún material con el que pueda avanzar en la difícil tarea de entrar en los sistemas y redes de otras personas. como pudiste adivinar estamos hablando de, principalmente sobre la interceptación de nombres de usuario y contraseñas que pasan por la red en forma no cifrada (texto sin formato). En particular, esto se aplica a las contraseñas para telnet, POP, IMAP, NNTP, IRC, aplicaciones web que no utilizan cifrado, cadenas comunitarias SNMP v1, etc.

Implementaciones

Ahora, habiendo tratado más o menos con la parte teórica, volvamos a la tierra pecaminosa: hablemos de implementaciones específicas de sniffers para varias plataformas. De hecho, hay mucho de este tipo de software, la diferencia en funcionalidad y el precio de etiqueta (especialmente en el último) es colosal. El compilador de las "Preguntas Frecuentes de Sniffing (intervención telefónica de red, sniffer)" Robert Graham recomienda probar los siguientes productos:

Servidor WinNT
El servidor WinNT de Microsoft viene con un programa incorporado llamado "Monitor de red". Vaya al panel de control de red, seleccione "Servicios", haga clic en "Agregar..." y seleccione "Herramientas y agente de Monitor de red". Después de la instalación, el programa estará disponible en el menú de inicio en la sección "Herramientas administrativas".

BlackICE es en realidad un sistema de detección de intrusos (IDS), pero una de sus funciones es escribir volcados de paquetes sin formato en una forma aceptable para el descifrado por parte de los analizadores de protocolo. Una cosa: el programa solo mira el tráfico que pasa por las interfaces locales del host en el que trabaja, es decir, no es promiscuo. Puede descargar el programa en el sitio.

Este programa, por el contrario, solo puede analizar paquetes registrados por un sniffer como BlackICE Pro.

Analizador de protocolo gratuito.

Naturalmente, esta lista está lejos de ser completa, puedes escalar cualquier buscador o en la colección de software para descargar y encontrar algo adecuado en el menú del lado izquierdo. Además, la revisión no menciona lo más, en mi opinión, el producto más destacado de este tipo para Win32: NetXRay, ahora rebautizado como Sniffer Basic. Hablaremos de ello un poco más tarde.

Bufido
Un sniffer basado en libpcap con capacidades de filtrado avanzadas.

Nuevamente, la lista está lejos de ser perfecta, puede buscar otra cosa. Otra cosa es que en la comunidad *NIX no es particularmente habitual "dispersarse": hay productos líderes probados en el tiempo y en constante mejora, y la mayoría los prefiere exactamente, sin siquiera intentar buscar una alternativa. Los líderes absolutos aquí son tcpdump y sniffit.

volcado tcp y volcado de viento

(por Fantasma//Necrosoft)

Como se mencionó anteriormente, TcpDump es el sniffer más utilizado en los sistemas *nix. Puedes encontrarlo en cualquiera de las últimas distribuciones del sistema operativo que estés usando. La mejor manera de describir tcpdump es simplemente enumerar todas sus opciones. línea de comando- para que obtenga una lista de sus capacidades y una guía directa para la acción - "en una botella".

WinDump es un puerto de TcpDump de los sistemas *nix, realiza las mismas funciones y tiene la misma sintaxis que TcpDump, pero tiene un par de opciones de línea de comandos adicionales, que se analizarán a continuación.

Una pequeña anotación para usar TcpDump debajo varios sistemas. En SunOS con dispositivos nit o bpf: Para ejecutar tcpdump, debe tener acceso de lectura a /dev/nit o /dev/bpf*. En Solaris con dlpi, debería poder acceder a pseudoadaptadores de red como /dev/le. Bajo HP-UX con dlpi: debe ser root o tcpdump debe tener uid configurado como root Bajo IRIX con snoop y Linux: requisitos similares a HP-UX Bajo Ultrix y Digital UNIX: solo el superusuario puede acceder a operaciones en modo promiscuo usando pfconfig (8) puede obtener permiso para ejecutar tcpdump Bajo BSD: debe tener acceso a /dev/bpf* Bajo Win32: debe instalar el controlador de captura de paquetes NDIS.

Ahora echemos un vistazo más de cerca a las opciones de la línea de comandos.

TcpDump [-adeflnNOpqSvx] [-c recuento] [-F archivo] [-i interfaz] [-r archivo] [-s snaplen] [-T tipo] [-w archivo] [expresión]. Opciones específicas de Windump [-D] [-B tamaño].

-a le permite convertir direcciones de red y de transmisión en nombres.

-c sale después de procesar los paquetes de conteo.

-d imprime el contenido del paquete en forma legible por humanos.

-dd genera el contenido del paquete como un fragmento de un programa C.

-ddd muestra el contenido del paquete en formato decimal.

-e imprime los encabezados de la capa de enlace en cada línea nueva.

-f imprime las direcciones de los hosts locales y remotos sin conversión a nombres.

-F use un archivo con una descripción de las opciones de filtrado (se ignoran las expresiones adicionales en la línea de comando).

-Utilizo la interfaz de interfaz para el seguimiento. Si no se especifica, tcpdump encuentra la interfaz de red activa con el número más bajo (excluyendo loopback). En la interfaz de Windows - nombre adaptador de red o su número (se puede encontrar ejecutando WinDump -D).

-l usa salida almacenada en búfer para stdout. Una construcción como "tcpdump -l | tee dat"" o "tcpdump -l > dat & tail -f dat"" puede ser útil.

-n No convierta direcciones (es decir, dirección de host, número de puerto, etc.) en nombres.

-N no imprimir Nombre de dominio en el nombre de host. Aquellos. si se usa este indicador, tcpdump imprimirá "nic"" en lugar de "nic.ddn.mil"".

-O No ejecutar el optimizador de paquetes. Esta opción es útil si usted mismo está manejando paquetes.

-p no establezca la interfaz de red en "modo promiscuo".

-q salida abreviada. Muestra información en forma abreviada.

-r lee paquetes del archivo (que se crean con la opción -w). Si desea utilizar la consola como entrada, entonces el archivo es "-"".

-s imprime un byte snaplen de cada paquete (en el NIT de SunOS el número mínimo es 96), 68 bytes son suficientes para los protocolos IP, ICMP, TCP y UDP, pero corta la información de los niveles superiores, digamos los paquetes DNS y NFS.

-T forzar interpretación de paquetes por tipo haciendo coincidir la máscara de "expresión". En este momento los tipos conocidos son rpc (llamada a procedimiento remoto), rtp (protocolo de aplicaciones en tiempo real), rtcp (protocolo de control de aplicaciones en tiempo real), vat (herramienta de audio visual) y wb (pizarra blanca distribuida).

-S imprime el número de paquete TCP absoluto.

-t no imprime la hora en cada línea.

-tt imprime la hora sin formato en cada línea.

-v salida detallada. Por ejemplo, la duración del paquete y el tipo de servicio.

-vv salida detallada. Por ejemplo, mostrar paquetes de respuesta NFS de campos adicionales.

-w escribe paquetes sin procesar en el archivo, que luego puede descifrar usando la opción -r. Si desea utilizar la consola como salida, entonces el archivo es "-"".

-x imprime cada paquete en hexadecimal (sin encabezado). Los bytes Snaplen se enviarán a la salida.

Opciones adicionales viento:

-B establece el tamaño del búfer del controlador en kilobytes. El tamaño de búfer predeterminado es de 1 megabyte. Si algunos paquetes no se muestran durante la operación, intente aumentar el tamaño del búfer. Si tiene una conexión PPP o Ethernet de 10 Mbit, el tamaño del búfer puede reducirse a la mitad o triplicarse.

-D enumera los dispositivos de red que están presentes en su sistema. La lista se ve así: número - número dispositivo de red en el sistema, nombre es su nombre, seguido de una descripción del dispositivo. Posteriormente, podrá utilizar estos datos para trabajar con todas las interfaces de red disponibles de su sistema que están disponibles actualmente. Y puede seleccionar un dispositivo usando la opción -I - "WinDump -i nombre" o "WinDump -i número".

expresión: de hecho, una expresión que establece el criterio de filtrado de paquetes. Si el campo de expresión está ausente, se muestran todos los paquetes. De lo contrario, solo se muestran los paquetes que coinciden con la máscara de expresión.

expresión puede constar de una o más primitivas. Las primitivas a menudo consisten en el id (nombre o número) del calificador. Hay tres tipos clave de calificadores:

type es un calificador que especifica la política general. Los tipos posibles son host, red y puerto. Aquellos. "host foo", "net 128.3", "puerto 20". Si no se especifica el tipo, el valor predeterminado es host.

dir es un calificador que indica la dirección en la que se envían los paquetes. Posibles opciones src, dst, src o dst y src y dst. Es decir, "src foo", "dst net 128.3", "src o dst port ftp-data". Si no se especifica dir, entonces se usa src o dst de forma predeterminada. Para conexiones "nulas" (es decir, ppp o slip), use el especificador de entrada y salida para indicar la dirección deseada.

proto: el calificador le permite filtrar paquetes por un protocolo específico. Los protocolos posibles son ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp y udp. Aquellos. "ether src foo", "arp net 128.3", "puerto tcp 21". Si el calificador está ausente, no se filtra ningún paquete. ("fddi" es en realidad un alias de "ether", porque en la mayoría de los casos los paquetes FDDI contienen la dirección Ethernet del remitente y el destino, y a menudo contienen los tipos de Ethernet de los paquetes. Los encabezados FDDI también contienen otros campos que no están en el lista de filtros).

Además de lo anterior, algunas primitivas especiales no tienen plantillas, estas son: puerta de enlace, transmisión, menos, mayor y expresiones aritméticas. Sobre esto un poco más.

Muchas expresiones de filtro compuestas utilizan las palabras and, or y not para combinar primitivas. Por ejemplo, "host foo y no puerto ftp y no puerto ftp-data". Se pueden omitir algunos calificadores para simplificar la entrada. Por ejemplo, "tcp dst puerto ftp o ftp-data o dominio" es lo mismo que "tcp dst puerto ftp o tcp dst puerto ftp-data o tcp dst puerto dominio".

Se permiten las siguientes expresiones:

dst host host es verdadero si el campo de destino IP del paquete es host, que puede ser una dirección o un nombre de host.

src host host es verdadero si el campo de origen IP del paquete es host.

host host es verdadero si el origen o el destino del paquete es host. Los prefijos: ip, arp o rarp también se pueden usar como: ip host host que es equivalente a ether proto \ip y hosthost. Si el host es un nombre con varias direcciones IP, cada dirección se comprueba en busca de una coincidencia.

ether dst ehost Verdadero si la dirección Ethernet de destino es ehost. Ehost - cualquiera de los nombres en /etc/ethers o un número (ver ethers(3N).

ether src ehost es verdadero si la dirección ethernet de origen es ehost.

ether host ehost es verdadero si las direcciones Ethernet de destino o de origen son ehost.

el host de la puerta de enlace es verdadero si el host es la puerta de enlace. Aquellos. La dirección Ethernet del origen o destino es host, pero ni la IP de origen ni la IP de destino son host. Host puede ser un nombre y también se puede encontrar en /etc/hosts y /etc/ethers. (Lo que equivale a ether host ehost y no a host host, que se puede usar con cualquier nombre o número para host/ehost).

dst net net es verdadero si la dirección IP de destino es net. Red: cualquier entrada de /etc/networks o dirección de red.

src net net es verdadero si la dirección IP del remitente es net.

net net Verdadero si la dirección IP de destino o de origen es net.

net máscara de red máscara Verdadero si la dirección IP coincide con la red c de la máscara de red correspondiente. Puede especificarse con src o dst.

net net/len es verdadero si la IP es net y la máscara de subred es len bit a bit (formato CIDR). Puede especificarse con src o dst.

dst port port es verdadero si el paquete es ip/tcp o ip/udp y tiene un puerto de destino de port. puerto puede ser un número o estar presente en /etc/services (ver tcp(4P) y udp(4P)). Si el nombre se utiliza para dos o más puertos, se comprueban tanto los números de puerto como los protocolos. Si se utiliza un nombre o número de puerto no válido, solo se comprueban los números de puerto (es decir, el puerto dst 513 genera tráfico tcp/login y udp/who, y el dominio de puerto genera tcp/domain y udp/domain).

src port port es verdadero si el puerto del remitente es port.

puerto puerto es verdadero si el puerto de origen o de destino es puerto. Algunas expresiones se pueden combinar, por ejemplo: tcp src puerto puerto - solo paquetes tcp con puerto -puerto.

menos longitud es verdadera si la longitud del paquete es menor o igual que la longitud, que es lo mismo que len<= length.

mayor longitud es verdadera si la longitud del paquete es mayor o igual que la longitud, que es lo mismo que len >= longitud.

ip proto protocol es verdadero si el paquete es un paquete IP con protocolo. El protocolo puede estar numerado o tener uno de los nombres icmp, igrp, udp, nd o tcp.

ether broadcast es verdadero si el paquete es un paquete de transmisión Ethernet. La expresión de éter es opcional.

ip broadcast es verdadero si el paquete es un paquete de difusión IP.

ether multicast es verdadero si el paquete es un paquete de multidifusión Ethernet. La expresión de éter es opcional. Esta es la abreviatura de "éter & 1! = 0".

ip multicast es verdadero si el paquete es un paquete de multidifusión IP.

ether proto protocol es verdadero si el paquete es de tipo Ethernet. El protocolo puede ser un número o un nombre: ip, arp o rarp.

decnet src host es verdadero si la dirección DECNET de destino es host, que puede ser una dirección como "10.123" o un nombre de host DECNET (el nombre de host DECNET solo es compatible con los sistemas Ultrix).

decnet dst host Verdadero si la dirección DECNET de destino es host.

decnet host host Verdadero si la dirección DECNET del destino o el origen es host.

proto[expr: tamaño]

Proto es uno de los siguientes protocolos ether, fddi, ip, arp, rarp, tcp, udp o icmp e indica el nivel de protocolo para esta operación. Compensación de bytes para nivel dado El protocolo se toma de expr. Tamaño: opcional, muestra la cantidad de bytes de interés en un desplazamiento dado, puede ser 1, 2 o 4, el valor predeterminado es 1.

Ejemplos de uso de tcpdump

Enumere todos los paquetes entrantes y salientes desde la puesta del sol: tcpdump host sundown

Emisión de tráfico entre helios y uno de dos hot o ace: tcpdump host helios y \(hot or ace \)

Enumere todos los prakets entre ace y otros hosts, excluyendo helios: tcpdump ip host ace y no helios

Descarga de tráfico entre la máquina local y la máquina de Berkeley: tcpdump net ucb-ether

Descarga de tráfico ftp a través de la puerta de enlace snup: tcpdump "puerta de enlace snup y (puerto ftp o ftp-data)"

Emitir tráfico que no pertenece a máquinas en la red local (si su máquina es una puerta de enlace a otra red, tcpdump no podrá emitir tráfico en su red local). tcpdump ip y no net localnet

Emisión de paquetes antiguos y detenidos (paquetes SYN y FIN) que no pertenecen a la red local. tcpdump "tcp & 3!= 0 y no src y dst net localnet"

Volcado de paquetes IP de más de 576 bytes transmitidos a través de snup gateway: tcpdump "gateway snup and ip > 576"

Emisión de paquetes de difusión o multidifusión de IP que no se envían a través de difusión o multidifusión de Ethernet: tcpdump "ether & 1 = 0 and ip >= 224"

Vuelca todos los paquetes ICMP que no sean de solicitud/respuesta de eco (es decir, que no sean paquetes de ping): tcpdump "icmp!= 8 and icmp!= 0"

NetXRay

Por Alice D. Saemon

El que amo...

Hace mucho, mucho tiempo... NetXRay fue el primer sniffer que me llamó la atención. Luego, en 1997, este programa en inglés causó sensación en los círculos de usuarios de redes orientados a Windows. Han pasado años, pero la versión antigua de NetXRay (3.0.1) sigue en servicio, en el trabajo diario en mi puesto de trabajo. Hasta la fecha, el producto ha cambiado de nombre a Sniffer Basic, se han agregado algunas funciones nuevas, pero, desde un punto de vista más amplio, la funcionalidad principal se ha mantenido sin cambios desde 3.0.1. Esta es la primera razón por la que se describirá NetXRay 3.0.1 en el documento. La segunda razón... (mirando a la policía antipiratería) es que el producto es muy caro (1643 libras, que es la libra esterlina), y las restricciones de prueba son muy serias.

El paquete consta de un conjunto de funciones diferentes y realmente se puede llamar un analizador de red en lugar de un sniffer. Todas las funciones (módulos) se agrupan en el menú "Herramientas", y allí también se encuentran varias configuraciones. Comencemos con ellos. Puede seleccionar el adaptador para el que se está realizando la prueba actual (sonda). El adaptador debe ser compatible con el estándar NDIS 3.0/3.1.

¡Atención, bicho! Si "configura" NetXRay en el adaptador "incorrecto" en su opinión o captura paquetes que no puede decodificar en el nivel de red de enlace (por ejemplo, explota el tráfico que envía paquetes fragmentados torcidos), en la etapa de decodificación (análisis de protocolo), el programa se congela herméticamente.

Simultáneamente, puede realizar pruebas en varias interfaces, para las cuales se crean múltiples encarnaciones de programas (sondeos). En una nueva sonda, puede copiar todas las configuraciones de cualquiera de las existentes.

En las opciones, puede configurar las siguientes cosas: apariencia escritorio, números de puerto estándar para varios protocolos (3 opciones, muy útil en los casos en que las aplicaciones de red funcionan en puertos no estándar), respuesta a un evento, umbrales para varios tipos de estadísticas, etc.

Bueno, ahora pasemos a los módulos funcionales del paquete.

captura (captura de paquetes)

El corazón de NetXRay, de hecho, es que en el entendimiento popular hay un sniffer. Por lo tanto, permítanme describirlo con el mayor detalle posible.

Cuando este módulo está activado, aparece una pequeña ventana frente a nosotros con " panel y un par de botones. Todas las acciones que podemos realizar en esta ventana se duplican en el menú Capturar. Y podemos hacer esto: comenzar a capturar paquetes, detener, detener + ver el contenido del búfer y simplemente ver el contenido del búfer, siempre que se haya detenido la captura. Allí podemos realizar sintonia FINA filtros:

La dirección del remitente y del destinatario. Para facilitar esta tarea, hay una libreta de direcciones y un conjunto de direcciones preestablecidas, como "Cualquiera".

Por plantillas. Si necesita capturar paquetes que contienen algunos datos específicos en cualquier parte del paquete, puede escribir un patrón elegante. Además, lo que es especialmente agradable, puede diseñar plantillas en cualquier representación conveniente para usted: binaria, hexadecimal, ASCII y EBCDIC.

Según protocolos conocidos por el programa. Este:

Red: AppleTalk, AppleTalk ARP, APOLLO, DECNET, IP, IP ARP, IPX, LAT, NetBEUI, OSI, SNA, VINES, VINES Loopback, VINES Echo, XNS

Más alto en la pila IP: transporte, servicio y enrutamiento: ICMP, IGMP, GGP, EGP, IGP, ISO-TP4, HELLO, IP-VINES, IGRP, OSPF, TCP, UDP; capa de aplicación: FTP, REXEC, RLOGIN, RSH, IMPRESORA, SMTP, TELNET, DNS(TCP), GOPHER, HTTP, POP, SUNRPC(TCP), NNTP, NETBIOS, X-WINDOW, DNS(UDP), BOOTP, TFTP, SUNRPC (UDP), SNMP, SNMPTRAP, BIFF, OMS, SYSLOG, RIP, PIB, NFS.

Más arriba en la pila IPX: NCP, SAP, NRIP, NBIOS, DIAGNOSTIC, SERIALIZATION, NMPI, NLSP, NSNMP, NSNMPTRAP, SPX.

Como puede ver, no tan poco, diría yo, incluso redundante para la vida real.

¡Atención! El filtro de protocolo tiene una interfaz un poco extraña: se supone que si todas las casillas de verificación dentro de los límites de un nivel no están marcadas, todos los paquetes de protocolo de este nivel y todo lo anterior (abajo, si observa interfaz de usuario;). Por lo tanto, si no ha configurado un solo "pájaro", absolutamente todo está atrapado. Naturalmente, los protocolos de capa de aplicación desconocidos también se capturan en este caso, pero no se decodifican en una forma legible por humanos, lo cual es natural, ya que son desconocidos :))

Además, puede ajustar el tamaño del búfer o especificar el archivo donde soltar el resultado de la captura de paquetes.

La configuración del filtro puede escribirse en un perfil, recibir un nombre y, posteriormente, seleccionarse de la lista.

Después de resolver la captura de la cantidad requerida de paquetes, cuando se activa la visualización, caemos en la llamada "ventana de resultados", que por defecto tiene los nombres XRay1, XRay2 y así sucesivamente según la cantidad de búferes actuales. Puede ver una ventana de este tipo en la captura de pantalla: arriba, una lista de paquetes con una breve "anotación", en el medio, datos decodificados (bueno, podría decodificarlos;) y debajo, un paquete sin formato. Es curioso que cuando hace clic en el campo de interés en la sección decodificada, se resalta el lugar correspondiente en el paquete sin procesar; puede verificar la calidad del analizador de protocolo;)

La interfaz de usuario de la "ventana de resultados" tiene, junto con las ventajas (la capacidad de aplicar cualquiera de los filtros discutidos anteriormente al búfer mostrado, la capacidad de enviar cualquier paquete o búfer a la red con un clic del mouse o copiar una cantidad de paquetes a un búfer separado, una visualización muy hermosa de datos decodificados, incluso con algunos anidamientos de campos de poco interés para el usuario promedio), así como desventajas obvias (no puede eliminar un par de paquetes del búfer, no hay portapapeles). operatividad, es decir, los resultados no pueden, por ejemplo, copiarse y guardarse en formato de texto).

Además de acumular paquetes en un búfer o archivo para su posterior decodificación, también existe la posibilidad de visualizar el tráfico en tiempo real.

Cierto a) visualmente se ve terrible b) esta opción está habilitada en un lugar tan ilógico que incluso un viejo usuario de NetXRay como yo olvida dónde está este "pájaro". El pájaro se instala en el menú Herramientas | Opciones... Pestaña General, checkbox Visualización en tiempo real, y no en los ajustes de Captura, donde sería lógico buscarlo ;-/

Además, la "ventana de resultados" contiene marcadores para datos estadísticos sobre la sesión de captura, pero no nos detendremos en ellos.

generador de paquetes

Esto es realmente maravilloso: puede "dibujar" desde cero y enviar absolutamente cualquier paquete a la red. La interfaz consta de la ventana principal y el llamado diseñador de paquetes, divididos en dos secciones: Configurar y Decodificar.

En el primero, tenemos un retrato de un volcado estándar (ver la parte teórica del artículo), lleno de ceros. Comenzamos a ingresar números hexadecimales allí: en la sección de decodificación, que se ve exactamente como el paquete descifrado en la "ventana de resultados" de Capture, aparece un análisis de nuestro paquete.

Pero en este caso, no solo podemos mirar el paquete decodificado, sino también hacer cambios haciendo clic en el campo deseado con el mouse. Sin embargo, cambiar los valores en cualquier caso se lleva a cabo solo en forma hexadecimal, y los campos de entrada sorprenden por su inconveniente: (Hay varias opciones para generar y enviar paquetes: enviar el paquete actual, enviar el búfer actual, escribir un paquete desde cero, o envíe un paquete editado de lo que ha recopilado.

Nota sobre la interfaz: si se llama a la opción "enviar paquete actual" desde la "ventana de resultados" de Capture, el paquete se envía inmediatamente sin llamar al constructor del paquete, sin embargo, permanece en el "búfer de envío" actual y se puede corregir allí más tarde.

Si se llama "enviar el paquete actual" desde la ventana del Generador de paquetes, se llama automáticamente al constructor del paquete.

En el constructor del paquete, en la sección Decodificación, el programa le dará algunos consejos, en particular, calculará una nueva suma de verificación al modificar el paquete (todavía haría los cambios apropiados por sí mismo, creación perezosa;). Sin embargo, la IA se diferencia de la mente humana en que no sabe cómo pensar correctamente. Entonces, cuando, por ejemplo, cambie la dirección IP del destinatario, considere si debe cambiar su dirección MAC al mismo tiempo;)

Los paquetes se pueden enviar a diferentes modos: un clic - un paquete, número especificado de paquetes o en bucle. De esta manera usted puede generar tráfico. En general, puede encontrar muchas aplicaciones para el generador de paquetes, depende de su imaginación e ingenio.

Todo tipo de cosas

Además de lo anterior, el programa contiene muchas otras campanas y silbatos útiles y no muy (como cualquiera;). Brevemente sobre ellos:

Panel. estadísticas de carga de red, más precisamente eso partes de ella que usted puede ver. Número de paquetes, bytes, errores de todo tipo, cálculo de utilización. Siempre me ha confundido esta característica, porque nunca he visto mensajes de error en mi vida - bueno, ¡no puede ser que no haya ninguno!;)

mesa de acogida. Captura diversa información sobre los hosts visibles para el sniffer y sus actividades (sin captura y análisis completos de paquetes)

matriz. Casi igual que la Host Table, pero presentada en un formato ligeramente diferente.

historia. Dibuja gráficos y diagramas sobre el comportamiento de la red en un determinado período de tiempo.

distribución de protocolos. Como sugiere su nombre, mantiene estadísticas sobre el uso de varios protocolos.

Estadísticas. Estadísticas sobre utilización y tamaño del personal.

Registro de alarmas. Un registro de eventos definido por usted.

Bueno, eso es todo en pocas palabras. (wow, "resultó brevemente % -()) Descargue y pruebe la salud, para su propia alegría y para fastidiar a sus enemigos :)

Conclusión

Bueno, la historia de los rastreadores ha terminado por hoy. Quién escuchó (leer hasta el final): bien hecho, espero que hayas obtenido respuestas a la mayoría de tus preguntas. En aras de la equidad, observo: no TODOS los temas se consideraron en el marco de este artículo. Se omitieron al menos dos grandes temas: la estructura interna de los rastreadores, incluidos los métodos y enfoques para escribir dicho software, así como las formas de contrarrestar el rastreo.

En cuanto a lo primero, esto es lo que pienso: el tema es interesante, requiere material por separado, pero estará destinado principalmente a programadores. Vamos a averiguar algo sobre esto. En cuanto a la segunda pregunta, la respuesta es, en general, la misma: encriptación, encriptación y nuevamente encriptación, lo cual es obvio. Existen, por supuesto, métodos para reconocer la presencia de un sniffer en la red e incluso resistirlo, pero son bastante privados y no dolorosamente efectivos.

Interceptador es una herramienta de red multifuncional que le permite obtener datos del tráfico (contraseñas, mensajes en mensajería instantánea, correspondencia, etc.) e implementar varios ataques MiTM.


Interfaz de interceptor
Funcionalidad principal

  • Interceptación de mensajes de messenger.
  • Interceptación de cookies y contraseñas.
  • Interceptación de actividad (páginas, archivos, datos).
  • Posibilidad de reemplazar la descarga de archivos agregando archivos maliciosos. Se puede utilizar junto con otras utilidades.
  • Sustitución de certificados Https por Http.
Modos de funcionamiento
Modo mensajero- le permite verificar la correspondencia que se envió sin cifrar. Se utilizó para interceptar mensajes en mensajeros como mensajes ICQ, AIM, JABBER.

Modo de recuperación– recuperación de datos útiles del tráfico, de protocolos que transmiten tráfico en claro. Cuando la víctima ve archivos, páginas, datos, es posible interceptarlos parcial o totalmente. Además, puede especificar el tamaño de los archivos para no descargar el programa en partes pequeñas. Esta información se puede utilizar para el análisis.

Modo de contraseña– modo para trabajar con cookies. Por lo tanto, es posible acceder a los archivos visitados de la víctima.

modo de escaneo– el modo principal para la prueba. Haga clic derecho en Smart Scan para comenzar a escanear. Después de escanear, la ventana mostrará todos los miembros de la red, sus Sistema operativo y otras opciones.

Además, en este modo, puede escanear puertos. Debe utilizar la función Escanear puertos. Por supuesto, hay utilidades mucho más funcionales para esto, pero la presencia de esta función es un punto importante.

Si estamos interesados ​​en un ataque dirigido a la red, luego de escanear, debemos agregar la IP de destino a Nat usando el comando (Add to Nat). En otra ventana será posible realizar otros ataques.

Modo natural. El modo principal, que le permite realizar una serie de ataques ARP. Esta es la ventana principal que permite ataques dirigidos.

Modo DHCP. Este es un modo que le permite elevar su Servidor DHCP para implementar ataques DHCP en el medio.

Algunos tipos de ataques que se pueden realizar
suplantación de identidad del sitio web

Para falsificar el sitio de la víctima, debe ir a Target, luego debe especificar el sitio y su sustitución. Por lo tanto, puede reemplazar muchos sitios. Todo depende de lo buena que sea la falsificación.

suplantación de identidad del sitio web

Ejemplo para VK.com

Elegir un ataque MiTM

Cambiar la regla de inyección
Como resultado, la víctima abre un sitio falso cuando se le solicita vk.com. Y en el modo de contraseña, debe haber el nombre de usuario y la contraseña de la víctima:


Para realizar un ataque dirigido, debe seleccionar una víctima de la lista y agregarla al objetivo. Esto se puede hacer con el botón derecho del ratón.


Adiciones de ataque MiTm
Ahora puede recuperar varios datos del tráfico en el modo Ressurection.


Archivos e información de la víctima a través de un ataque MiTm
Suplantación de tráfico



Especificación de la configuración
Después de eso, la víctima cambiará la solicitud "confianza" a "perdedor".

Además, puede eliminar las cookies para que la víctima cierre sesión en todas las cuentas y vuelva a autorizarlas. Esto interceptará los inicios de sesión y las contraseñas.


Destrucción de cookies

¿Cómo ver un sniferr potencial en la red usando Intercepter?

Con la opción Detección de Promisc, puede detectar un dispositivo que esté escaneando en la red local. Después de escanear, la columna de estado será "Sniffer". Esta es la primera forma que le permite definir el escaneo en la red local.


Detección de rastreadores
Dispositivo SDR HackRF


Hack RF
SDR es un tipo de receptor de radio que le permite trabajar con diferentes parámetros de radiofrecuencia. Así, es posible interceptar la señal de Wi-Fi, GSM, LTE, etc.

HackRF es un dispositivo SDR completo de $ 300. El autor del proyecto, Michael Ossman, está desarrollando dispositivos exitosos en esta dirección. Anteriormente, el sniffer Bluetooth de Ubertooth se desarrolló e implementó con éxito. HackRF es un proyecto exitoso que ha recaudado más de 600k en Kickstarter. Ya se han implementado 500 dispositivos de este tipo para la prueba beta.

HackRF opera en el rango de frecuencia de 30 MHz a 6 GHz. La frecuencia de muestreo es de 20 MHz, lo que le permite interceptar señales wifi y redes LTE.

¿Cómo protegerse a nivel local?

Primero, usemos el software SoftPerfect WiFi Guard. Existe una versión portátil que no ocupa más de 4 MB. Le permite escanear su red y mostrar qué dispositivos se muestran en ella. Tiene configuraciones que le permiten seleccionar una tarjeta de red y la cantidad máxima de dispositivos escaneados. Además, puede configurar el intervalo de escaneo.


Posibilidad de agregar comentarios para los usuarios.


Ventana de notificación para dispositivos desconocidos después de cada intervalo de escaneo especificado

Conclusión
Así, hemos visto en la práctica cómo utilizar software para interceptar datos dentro de la red. Consideramos varios ataques específicos que le permiten obtener datos de inicio de sesión, así como otra información. Además, consideramos SoftPerfect WiFi Guard, que le permite proteger la red local para que no escuche el tráfico en un nivel primitivo.

Muchos usuarios ni siquiera se dan cuenta de que al ingresar el nombre de usuario y la contraseña cuando se registran o autorizan en un recurso cerrado de Internet y presionan ENTER, estos datos pueden interceptarse fácilmente. Muy a menudo se transmiten a través de la red de forma no segura. Por lo tanto, si el sitio en el que intenta iniciar sesión utiliza el protocolo HTTP, entonces es muy fácil capturar este tráfico, analizarlo con Wireshark y luego usar filtros y programas especiales para encontrar y descifrar la contraseña.

El mejor lugar para interceptar contraseñas es el núcleo de la red, donde el tráfico de todos los usuarios se dirige a recursos cerrados (por ejemplo, correo) o frente al enrutador para acceder a Internet al registrarse en recursos externos. Instalamos un espejo y estamos listos para sentirnos como un hacker.

Paso 1. Instale y ejecute Wireshark para capturar tráfico

En ocasiones para ello basta con seleccionar únicamente la interfaz a través de la cual pretendemos captar tráfico, y hacer clic en el botón Inicio. En nuestro caso, capturamos de forma inalámbrica.

La captura de tráfico ha comenzado.

Paso 2. Filtrado del tráfico POST capturado

Abrimos el navegador e intentamos iniciar sesión en cualquier recurso utilizando el nombre de usuario y la contraseña. Al finalizar el proceso de autorización y la apertura del sitio, dejamos de capturar tráfico en Wireshark. A continuación, abra el analizador de protocolos y vea un gran número de paquetes Esta es la etapa en la que la mayoría de los profesionales de TI se dan por vencidos porque no saben qué hacer a continuación. Pero sabemos y estamos interesados ​​en paquetes específicos que contienen datos POST que se generan en nuestra máquina local al completar un formulario en la pantalla y se envían a un servidor remoto cuando hace clic en el botón "Iniciar sesión" o "Autorización" en el navegador. .

Ingrese un filtro especial en la ventana para mostrar los paquetes capturados: http.pedido.método == "CORREO"

Y en lugar de mil paquetes, vemos solo uno con los datos que buscamos.

Paso 3. Encuentra el nombre de usuario y la contraseña

clic rápido botón derecho ratón y seleccione del menú Seguir a TCP Steam


Después de eso, aparecerá el texto en una nueva ventana, que en el código restaura el contenido de la página. Busquemos los campos "contraseña" y "usuario", que corresponden a la contraseña y el nombre de usuario. En algunos casos, ambos campos serán fáciles de leer y ni siquiera encriptados, pero si estamos tratando de capturar tráfico al acceder a recursos muy conocidos como: Mail.ru, Facebook, Vkontakte, etc., entonces la contraseña será codificado:

HTTP/1.1 302 encontrado

Servidor: Apache/2.2.15 (CentOS)

Desarrollado por X: PHP/5.3.3

P3P: CP="NOI ADM DEV PSAi COM NAV NUESTRO OTRo STP IND DEM"

Establecer-Cookie:contraseña= ; expira = Jue, 07-Nov-2024 23:52:21 GMT; camino=/

Ubicación: login.php

Longitud del contenido: 0

Conexión: cerrar

Tipo de contenido: texto/html; conjunto de caracteres = UTF-8

Así que en nuestro caso:

Nombre de usuario: networkguru

Contraseña:

Paso 4Determinar el tipo de codificación para descifrar la contraseña

Vamos, por ejemplo, al sitio http://www.onlinehashcrack.com/hash-identification.php#res e ingresamos nuestra contraseña en la ventana de identificación. Me dieron una lista de protocolos de codificación en orden de prioridad:

Paso 5: descifrar la contraseña de usuario

En esta etapa, podemos usar la utilidad hashcat:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

A la salida, recibimos una contraseña descifrada: simplepassword

Así, con la ayuda de Wireshark, no solo podemos resolver problemas en el funcionamiento de aplicaciones y servicios, sino también probarnos como piratas informáticos al interceptar las contraseñas que los usuarios ingresan en los formularios web. También puede encontrar contraseñas para buzones usuarios que usan filtros simples para mostrar:

  • El protocolo POP y el filtro tienen este aspecto: pop.request.command == "USER" || pop.solicitud.comando == "PASAR"
  • protocolo IMAP y el filtro sera: imap.request contiene "iniciar sesión"
  • protocolo SMTP y necesitarás ingresar el siguiente filtro: smtp.req.command == "AUTENTICACIÓN"

y utilidades más serias para descifrar el protocolo de codificación.

Paso 6. ¿Qué pasa si el tráfico está encriptado y usa HTTPS?

Hay varias opciones para responder a esta pregunta.

Opción 1. Conectarse a la desconexión entre el usuario y el servidor y capturar el tráfico en el momento en que se establece la conexión (SSL Handshake). En el momento del establecimiento de la conexión, la clave de sesión puede ser interceptada.

Opción 2: puede descifrar el tráfico HTTPS utilizando un archivo de registro de clave de sesión escrito por Firefox o Chrome. Para hacer esto, el navegador debe estar configurado para escribir estas claves de cifrado en un archivo de registro (ejemplo basado en Firefox) y debe recibir este archivo de registro. Esencialmente, necesita robar el archivo de clave de sesión con disco duro otro usuario (lo cual es ilegal). Bueno, luego capture el tráfico y aplique la clave recibida para descifrarlo.

Aclaración. Estamos hablando del navegador web de una persona cuya contraseña está siendo robada. Si nos referimos a descifrar nuestro propio tráfico HTTPS y queremos practicar, entonces esta estrategia funcionará. Si está tratando de descifrar el tráfico HTTPS de otros usuarios sin acceso a sus computadoras, no funcionará, para eso están el cifrado y la privacidad.

Después de recibir las claves según la opción 1 o 2, debe registrarlas en WireShark:

  1. Vaya al menú Editar - Preferencias - Protocolos - SSL.
  2. Establezca la marca "Reensamblar registros SSL que abarquen varios segmentos TCP".
  3. "Lista de claves RSA" y haga clic en Editar.
  4. Ingrese datos en todos los campos y escriba la ruta en el archivo con la clave

WireShark puede descifrar paquetes que están encriptados usando el algoritmo RSA. Si se utilizan los algoritmos DHE/ECDHE, FS, ECC, el sniffer no nos será de ayuda.

Opción 3. Obtenga acceso al servidor web que el usuario está usando y obtenga la clave. Pero esta es una tarea aún más difícil. EN redes corporativas con el propósito de depurar aplicaciones o filtrar contenido, esta opción se implementa legalmente, pero no con el propósito de interceptar las contraseñas de los usuarios.

PRIMA

VIDEO: Wireshark Packet Sniffing nombres de usuario, contraseñas y páginas web

Métodos para interceptar el tráfico de red

Escuchar la red usando programas analizadores de red es la primera forma más fácil de interceptar datos.

Para protegerse contra las escuchas de la red, se utilizan programas especiales, por ejemplo, AntiSniff, que pueden detectar computadoras en la red que están escuchando el tráfico de la red.

Para resolver sus problemas, los programas anti-sniffer utilizan una señal especial de la presencia de dispositivos de escucha en la red: la tarjeta de red de la computadora rastreadora debe estar en un modo de escucha especial. Cuando están en modo de escucha, las computadoras en red responden de una manera especial a los datagramas IP enviados al host bajo prueba. Por ejemplo, los hosts de escucha normalmente procesan todo el tráfico entrante, no solo los datagramas enviados a la dirección del host. Hay otros signos de comportamiento sospechoso del host que AntiSniff puede reconocer.

Sin duda, escuchar es muy útil desde el punto de vista de un atacante, ya que le permite obtener mucha información útil: contraseñas transmitidas a través de la red, direcciones de computadoras en la red, datos confidenciales, cartas, etc. Sin embargo, el simple espionaje evita que un pirata informático interfiera con la comunicación de red entre dos hosts para modificar y corromper los datos. Para resolver este problema, se requiere una tecnología más sofisticada.

Para interceptar y recorrer el proceso de comunicación de red entre dos hosts A y B, un atacante puede reemplazar las direcciones IP de los hosts que interactúan con su propia dirección IP mediante el envío de mensajes ARP (Protocolo de resolución de direcciones) falsos a los hosts A y B. .

Arroz. 1 Solicitudes ARP falsas

Veamos cómo un pirata informático puede usar el protocolo ARP para interceptar la comunicación de red entre los hosts A y B.

Para interceptar el tráfico de red entre los hosts A y B, un pirata informático fuerza su dirección IP en estos hosts para que A y B usen esta dirección IP falsa cuando intercambian mensajes. Para imponer su dirección IP, un hacker realiza las siguientes operaciones.

  • Un atacante determina las direcciones MAC de los hosts A y B, por ejemplo, utilizando el comando nbtstat del paquete W2RK.
  • El atacante envía mensajes a las direcciones MAC identificadas de los hosts A y B, que son respuestas ARP falsificadas a las solicitudes para resolver las direcciones IP de los hosts en las direcciones MAC de las computadoras. Al Host A se le dice que la dirección IP del Host B coincide con la dirección MAC de la computadora del atacante; al host B se le dice que la dirección IP del host A también coincide con la dirección MAC de la computadora del atacante.
  • Los hosts A y B ingresan las direcciones MAC recibidas en sus cachés ARP y luego las usan para enviarse mensajes entre sí. Dado que las direcciones IP A y B corresponden a la dirección MAC de la computadora del atacante, los hosts A y B, sin saber nada, se comunican a través de un intermediario capaz de hacer lo que quieran con sus mensajes.

Para protegerse contra tales ataques, los administradores de red deben mantener una base de datos con una tabla de mapeo entre las direcciones MAC y las direcciones IP de las computadoras de su red.

En las redes UNIX, este tipo de ataque ARP de suplantación de identidad se puede implementar utilizando las utilidades de control y supervisión del tráfico de red del sistema, como arpredirect. Desafortunadamente, estas utilidades confiables no parecen estar implementadas en redes de Windows. Por ejemplo, en el sitio de NTsecurity, puede descargar la utilidad GrabitAII, que se presenta como una herramienta para redirigir el tráfico entre los hosts de la red. Sin embargo, una verificación de rendimiento elemental de la utilidad GrabitAII muestra que aún está lejos de tener un éxito completo en la implementación de sus funciones.

Para interceptar el tráfico de la red, un atacante puede reemplazar la dirección IP real de un enrutador de red con su propia dirección IP, por ejemplo, utilizando mensajes de redirección ICMP falsificados. De acuerdo con RFC-1122, el host A debe interpretar el mensaje de redirección recibido como una respuesta a un datagrama enviado a otro host, por ejemplo, B. El host A determina sus acciones en el mensaje de redirección en función del contenido del mensaje de redirección recibido, y si Redirigir está configurado para redirigir datagramas de A a B en una nueva ruta, eso es exactamente lo que hará el host A.

Arroz. 2 enrutamiento falso

Para realizar el enrutamiento señuelo, el atacante debe conocer algunos detalles sobre la organización de la red local en la que se encuentra el host A, en particular, la dirección IP del enrutador a través del cual se envía el tráfico del host A al B. Sabiendo esto, el atacante formará un datagrama IP en el que IP: la dirección de origen se especifica como la dirección IP del enrutador y el destino es el host A. También se incluye en el datagrama un mensaje de redirección ICMP con el campo de dirección del nuevo enrutador establecido en la dirección IP del ordenador del atacante. Habiendo recibido dicho mensaje, el host A enviará todos los mensajes a la dirección IP de la computadora del atacante.

Para protegerse contra tal ataque, debe deshabilitar (por ejemplo, usando un firewall) en el host A el procesamiento de mensajes ICMP Redirect, y el comando tracert (en Unix este es el comando tracerout) puede revelar la dirección IP de la computadora del atacante. . Estas utilidades pueden encontrar una ruta adicional que apareció en la red local, no proporcionada durante la instalación, si, por supuesto, el administrador de la red está atento.

Los ejemplos anteriores de intercepciones (que están lejos de limitarse a los atacantes) convencen de la necesidad de proteger los datos transmitidos a través de la red si los datos contienen información confidencial. El único método de protección contra las intercepciones del tráfico de red es el uso de programas que implementan algoritmos criptográficos y protocolos de encriptación y evitan la divulgación y sustitución de información secreta. Para resolver tales problemas, la criptografía proporciona medios para cifrar, firmar y autenticar mensajes transmitidos a través de protocolos seguros.

La implementación práctica de todos los métodos criptográficos para proteger el intercambio de información la proporcionan las redes VPN (Red Privada Virtual - Redes Privadas Virtuales).

Intercepción de conexión TCP

El ataque de intercepción de tráfico de red más sofisticado debe considerarse secuestro de conexión TCP (secuestro de TCP), cuando un pirata informático, al generar y enviar paquetes TCP al host atacado, interrumpe la sesión de comunicación actual con el host. Además, utilizando las capacidades del protocolo TCP para restaurar una conexión TCP interrumpida, el hacker intercepta la sesión de comunicación interrumpida y la continúa en lugar del cliente desconectado.

Se han creado varias utilidades efectivas para realizar ataques de secuestro de TCP, pero todas están implementadas para la plataforma Unix, y estas utilidades están disponibles en sitios web solo en forma de código fuente. Por lo tanto, no sirven de mucho los ataques interceptando una conexión TCP.

El protocolo TCP (Protocolo de control de transmisión) es uno de los protocolos básicos de la capa de transporte OSI que le permite establecer conexiones lógicas a través de un canal de comunicación virtual. Los paquetes se transmiten y reciben por este canal con registro de su secuencia, se controla el flujo de paquetes, se organiza la retransmisión de paquetes distorsionados y al final de la sesión se interrumpe el canal de comunicación. El protocolo TCP es el único protocolo central de la familia TCP/IP que tiene un sistema avanzado de identificación de mensajes y conexiones.

Descripción general de los rastreadores de paquetes de software

Todos los sniffers de software se pueden dividir aproximadamente en dos categorías: sniffers que admiten el lanzamiento desde la línea de comandos y sniffers que tienen una interfaz gráfica. Al mismo tiempo, notamos que hay sniffers que combinan ambas características. Además, los sniffers se diferencian entre sí por los protocolos que admiten, la profundidad de análisis de los paquetes interceptados, la capacidad de configurar filtros y la posibilidad de compatibilidad con otros programas.

Normalmente, la ventana de cualquier sniffer con interfaz gráfica consta de tres áreas. El primero muestra un resumen de los paquetes capturados. Normalmente, esta área muestra un mínimo de campos, a saber: tiempo de captura del paquete; Direcciones IP del remitente y destinatario del paquete; Direcciones MAC de origen y destino de paquetes, direcciones de puertos de origen y destino; tipo de protocolo (capa de red, transporte o aplicación); alguna información resumida sobre los datos interceptados. La segunda área muestra información estadística sobre el paquete individual seleccionado y, finalmente, la tercera área presenta el paquete en formato hexadecimal o de caracteres: ASCII.

Casi todos los sniffers de paquetes permiten el análisis de paquetes decodificados (razón por la cual los sniffers de paquetes también se denominan analizadores de paquetes o analizadores de protocolos). El sniffer distribuye los paquetes interceptados por capas y protocolos. Algunos analizadores de paquetes pueden reconocer el protocolo y mostrar la información capturada. Este tipo de información suele mostrarse en la segunda zona de la ventana del sniffer. Por ejemplo, cualquier rastreador puede reconocer el protocolo TCP y los rastreadores avanzados pueden determinar qué aplicación generó este tráfico. La mayoría de los analizadores de protocolos reconocen más de 500 protocolos diferentes y pueden describirlos y decodificarlos por su nombre. Cuanta más información pueda decodificar y presentar el sniffer en la pantalla, menos tendrá que decodificar manualmente.

Un problema con el que se pueden encontrar los rastreadores de paquetes es no poder identificar correctamente un protocolo utilizando un puerto que no sea el puerto predeterminado. Por ejemplo, para mejorar la seguridad, algunas aplicaciones conocidas pueden configurarse para usar puertos distintos a los puertos predeterminados. Entonces, en lugar del tradicional puerto 80 reservado para el servidor web, servidor dado se puede forzar a reconfigurar en el puerto 8088 o en cualquier otro. Algunos analizadores de paquetes en esta situación no pueden determinar correctamente el protocolo y solo muestran información sobre el protocolo de nivel inferior (TCP o UDP).

Hay rastreadores de software que vienen con módulos analíticos de software como complementos o módulos integrados que le permiten crear informes con información analítica útil sobre el tráfico interceptado.

Otro rasgo característico de la mayoría de los rastreadores de paquetes de software es la capacidad de configurar filtros antes y después de capturar el tráfico. Los filtros separan ciertos paquetes del tráfico general según un criterio determinado, lo que le permite deshacerse de información innecesaria al analizar el tráfico.

Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
COMPARTIR: