Análisis de red con Wireshark. Interpretando Las graficas. (I Parte).

Ya vimos, en su momento, como interpretar los datos mostrados en las capturas de Wireshark. Hemos visto también otros aspectos de Wireshark como la detección de tráfico P2P, detección de archivos borrados y otros eventos, detección de Arp-poison, interpretación de captura de correo, etc.

Wireshark IO Graphs

Vamos ahora a iniciar una serie de capítulos dedicados a las gráficas.

En Wireshark tenemos varias formas de ver y tratar los paquetes capturados. Dependiendo, entonces, de la información que necesitemos extraer de nuestras capturas, Wireshark nos proporciona diferentes herramientas gráficas.

Vamos a estudiar estas gráficas, como siempre, desde lo más básico e iremos complicando en otros capítulos.

Empezamos con IO Graphs y Flow Graph.

IO Graphs

Gráfica personalizable y con diversas opciones que nos muestra el trafico de entrada y salida de una captura.

Accedemos a este tipo de gráfica mediante Statistics > IO Graphs.

En este tipo de gráficos tenemos, como vemos en la captura de arriba, una zona de edición de las gráficas y una zona de opciones. La zona de edición tiene dos ejes:

  • Eje X de tiempo. En este eje podemos ajustar el Tick Interval o intervalo de tiempo desde centésimas de segundo a 10 minutos. Tenemos también una especie de Zoom, el Pixel per Ticks, ajustable de 1 a 10. En este eje visualizaremos los tiempos de forma relativa o atendiendo a la hora de la captura View as time of day.
  • Eje Y de paquetes capturados. Podemos visualizar los datos por Paquetes, Bytes, Bits, o de forma avanzada realizando ciertas operaciones. Podemos también ajustar la escala del eje en Scale.

En la zona de datos podemos visualizar hasta 5 graficas, cada una de un color diferente que no se puede cambiar, podemos especificar también el tipo o Style, y a cada una de estas gráficas asociar un filtro.

Flow Graph

Permite la visualización gráfica del flujo de datos entre las diferentes conexiones realizadas entre hosts. Accedemos a esta opción desde Statistics > Flow Graphs.

Para ello debemos antes seleccionar una serie de opciones como qué paquetes que queremos tratar: todos o los visualizados. el tipo de flujo: todo el flujo de la captura con todos los protocolos involucrados o solo el flujo TCP.

Wireshark Flow Graph

Wireshark Flow Graph

En esta gráfica podemos ver:

  • Datos de tiempo.
  • Máquinas involucradas en el flujo de conexión representadas por las líneas verticales.
  • Sentido del flujo de los datos. Representado los las flechas que, además, nos indican entre que hosts o máquinas se establece conexión.
  • Puertos. Representado entre paréntesis.
  • Números de secuencia y acuses de recibo. Representados en la columna de la derecha (Comments). Vemos que los números de secuencia se representan de forma relativa, es decir, el primero 0 (para no mostrar números de secuencia demasiado altos y mejor compresión de los datos).
  • Vemos también los indicadores usados indicando el contenido y propósito del segmento TCP…. vamos a recordar esto último:

URG. El campo Puntero de urgencia contiene información válida.

ACK. El campo Número de acuse de recibo contiene información válida, es decir, el segmento actual lleva un ACK. Observemos que un mismo segmento puede transportar los datos de un sentido y las confirmaciones del otro sentido de la comunicación.

PSH. La aplicación ha solicitado una operación push(enviar los datos existentes en la memoria temporal sin esperar a completar el segmento).

RST. Interrupción de la conexión actual.

SYN. Sincronización de los números de secuencia. Se utiliza al crear una conexión para indicar al otro extremo cual va a ser el primer número de secuencia con el que va a comenzar a transmitir (veremos que no tiene porqué ser el cero).

FIN. Indica al otro extremo que la aplicación ya no tiene más datos para enviar. Se utiliza para solicitar el cierre de la conexión actual.

Para un mejor estudio de las conexiones, lo mejor es filtrar antes los paquetes capturados y luego usar Flow Graph.

Con este tipo de gráficos podemos estudiar, por ejemplo, los problemas que pudiesen surgir en un establecimiento de comnexión.

Como recordatorio:

Establecimiento de una conexión TCP.

Un ejercicio interesante puede ser analizar la salida en hexadecimal ttratando de comprender un establecimiento de conexión TCP. Para comprender como se realiza, a continuación una breve explicación.

En los ejemplos veremos los campos del segmento TCP que acabamos de estudias de una forma más práctica.

Veremos en este apéndice cómo se realiza una conexión TCP. Nos ayudará a interpretar logs, trazas y técnicas de escaneo. Veremos también algunos componentes de los paquetes TCP aparte de los puertos de la máquina origen y destino. Estos componentes importantes son los números de secuencia y de confirmación (SEQ y ACK) que se utilizan para asegurar la integridad de la conexión y los flags o banderas que son los encargados de indicar la finalidad del paquete (para iniciar o finalizar una conexión, para transmitir datos, etc).

Una conexión TCP se realiza en tres pasos. Es lo que técnicamente se llama three-way handshake:

  1. En el sistema / host que inicia la conexión o cliente (TCP A), envía un paquete de SYN con un número de secuencia inicial asociado a esta conexión al sistema / host destinatario o servidor (TCP B).

  2. Este responde con un paquete SYN-ACK (acuse de recibo) confirmando la recepción del SYN inicial enviado por (TCP A) y enviándole a su vez su propio número de secuencia.

  3. Para finalizar, el cliente (TCP A) reconoce la recepción del SYN del servidor (TCP B) mediante el envío de un ACK. Este es el momento en que queda establecida la conexión. Ya se puede iniciar la transferencia de datos entre (TCP A) y (TCP B).

Vamos a avanzar un poco más ya que ocurren algunas otras cosas. Lo vemos gráficamente:

Sean dos hosts pretenden inciciar una conexión TCP. TCP A y TCP B, siguiendo la analogía de la explicación anterior.

  1. TCP A _SYN( SEQ=x ) -> y TCP B

  2. TCP B _SYN( SEQ=y, ACK=x+1 ) -> TCP A,

  3. TCP A _SYN( SEQ=x+1, ACK=y+1 ) -> TCP B.

Vemos como TCP A envía un paquete SYN con un número de secuencia inicial x que además es aleatorio a TCP B. El resto es fácil deducir.

Las letras x e y son los números de secuencia (SEQ). Se utilizan números de secuencia distintos para cada sentido de la comunicación. El primer número para cada sentido se acuerda al establecer la comunicación. Cada extremo se inventa un número aleatorio y envía éste como inicio de secuencia.

Un paso más para terminar de comprender la conexión TCP totalmente imprescindible para entender muchas técnicas de escaneo.

Ejemplo:

Sean dos hosts (TCP A) y (TCP B) que pretenden iniciar una conexión. Veremos también que pasa con los números de secuencia (SEQ):

establecimento conexion tcp

Todo esto es lo que ocurre cuando realizamos un escaneado de puerto TCP conect ().

Si la opción elegida es TCP SYN no dejamos que se establezca totalmente la conexión, esto significaría el envío por parte de TCP A de un RST (reset) cerrando así la conexión.

Es facil, entonces, ver todo esto explicado en la gráfica:

Wireshark Flow Graph

Esta entrada fue publicada en Seguridad y redes, Wireshark . Tshark y etiquetada , , , . Guarda el enlace permanente.

6 respuestas a Análisis de red con Wireshark. Interpretando Las graficas. (I Parte).

  1. manuel hernadez dijo:

    muy buen material, gracias por apoyar a los principiantes. ahorita necesito informacion acerca de servidores de alta disponibilidad, si me pudieran ayudar se los agradeceria. he leido que hay un programa llamado heartbeart para crear cluster de alta disponibilidad, pero necesito ayuda.

  2. Guillermo Gomez dijo:

    Hola esta muy buena la informacion, pero estoy empezando a utilizar este programa y eh notado que en la red de mi empresa hay una cantidad de trafico ARP excesivo. Este programa puede sacarme algun porcentaje que me indique que tanta esta saturada mi red de trafico de broadcast? me colaboras Muchas gracias

  3. Alfon dijo:

    Estimado Guillermo, gracias por tus comentarios. Para estudiar el trafico arp, podemos, para ver porcentajes, realizar un Protocol Hierachy Statistics, también filtrar por arp y hacer un flow Graph. El IO Graph puedes verlo en este mismo post. con flow Graph puede estudiar com ose relizan los dialogos arp broadcast. Si tienes un trçafico arp excesivo, ten en cuenta que esto puede ser porovocado, com bien sabes, por un virus / troyano … también podría deberse a fallos de configuración o fallos en dispositivos. si no se trata de virus, podrías limitar el tamaño de dominio de broadcast segmentando la red, configuración se switch, VLANs, etc.
    Saludos,

  4. jaime dijo:

    Excelente herramienta y excelente la explicación, en nombre de muchos que estamos comenzando en este tema les agradezco por este tipo de material.

  5. eric dijo:

    Tengo un grave problema, he probado hartos sniffer en distintas plataformas (OS X, Windows, Linunx) y con distintos softwares en los cuales tengo distintos resultados, en wireshark, tcpdump, obtengo resultados iguales, pero en tcp test tool v2.3 y smartsnif obtengo los datos deseados. cual seria el problema?

  6. felipe corso dijo:

    buen material
    Gracias por su aporte

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s