Analizando capturas .pcap TCP con tcptrace. Generación de gráficas con Xplot. Parte 1

A lo largo de estos años, y referido al tráfico de red, hemos visto una gran variedad de utilidades, sniffers, herramientas de análisis de tráfico de red, análisis mediante distintos tipo de gráficas, etc, etc. Ya sabemos manejar, con bastante soltura windump, tcpdump, wireshark y tshark, filtrado .pcap avanzado, scapy, xplico, afterglow, TNV, etc. Todas estas herramientas, como os he comentado, referidas al tráfico de red.

En esta ocasión vamos a  estudiar, desde cero, una herramienta de análisis de tráfico de red distinta. Toma los datos a partir de un fichero de captura, en variados formatos, y realiza un análisis exahustivo, centrado sobre todo, en las conexiones TCP. Se trata de una herramienta por línea de comandos, tanto para UNIX/Linux como para sistemas Windows. Esta herramienta nos proporciona una cantidad impresionante de información. Información de rendimiento, tiempos transcurridos, bytes/segmentos tanto enviados como  recibidos, análisis de RTT, retransmisiones, tamaños de ventana, información de throughput, packet loss…. Además, con toda está información, puede elaborar una gran variedad de gráficas muy configurable. Podemos realizar gráficas de TCP Stream, TCP flow, etc. Esta herramienta es tcptrace. También veremos xplot para la generación de gráficas.

Como veis en la descripción, tenemos una serie de conceptos como RTT, Throughput, etc, que iremos viendo también.

En esta primera parte veremos el uso básico (formato corto y largo), estadísticas RTT y extración de  datos del Payload delsegmento TCP.

Ya está la segunda parte de esta serie dedidaca a Tcptrace:

Analizando capturas .pcap TCP con tcptrace. Generación de gráficas con Xplot. Parte 2

Instalación tcptrace.

En este primer artículo, usaremos tcptrace en windows. Más adelante lo veremos en Linux, su instalación, xplot, etc. Como siempre, desde los más sencillo y básico hasta lo más avanzado.

En un sistema Windows la instalación es sencilla. Tan solo tenemos que decargar desde:  http://www.tcptrace.org/windows.html la versión 6.6.0. Descomprimimos el archivo .zip y ya podemos comenzar a usarlo (tcptrace.exe). más adelante instalaremos xplot y XServer for Windows (necesario para las gráficas con xplot).

Debemos tener instalado Winpcap, que seguro ya tendreis si habeis usado wireshark, windump, etc.

Uso básico tcptrace. Los argumentos.

Ya hemos comentado en la entrada y breve descripción, que tcptrace es una herramienta de análisis centrado en el estudio de las conexiones TCP a partir de un fichero, préviamente salvado, del tipo .pcap. Previamente salvado mediante Wireshark, tcpdump, windump, etc.

Tcptrace analiza el tráfico identificando las conexiones y flujos y devolviendo información de rendimiento, tiempos transcurridos, bytes/segmentos tanto enviados como recibidos, análisis de RTT, retransmisiones, tamaños de ventana, información de throughput, packet loss, etc, tanto para todas las conexiones involucradas como para una en concreto que especifiquemos. La cantidad de información también es configurable tanto para la información extendida como para salida de información en versión «corta».

Lo vamos viendo…

La sintáxis más básica sería: tcptrace archivo.pcap

tcptrace uso básico

Tenemos la siguiente información:

  • 2310 paquetes TCP
  • 5 conexiones TCP identificadas en la captura. dos de ellas completadas. Las 5 conexiones se identifican como: a2b, c2d, e2f, g2h e i2j.
  • Por cada una de las conexiones se nos muestra lás máquinas involucradas así como los paquetes transmitidos en cada una de las direcciones del flujo.
  • Por ejemplo. en la conexión i2j tenemos un total de 30 paquetes transmitidos 16 en un sentido (i2j) y 14 en (j2i).
  • Tenemos también al principio la velocidad de análisis en paquetes/segundo.
  • la conexión fue completada (complete) en los dos últimos casos.

Exiten otrros estados a parte de complete:

  • unidirectional
  • vacio o no completado
  • reset 
  • complete
  • complete reset

Esta salida del ejemplo es la salida en formato corto. Lo podemos forzar añadiendo (-b): tcptrace -b archivodecaptura.pcap

Si tenemos un formato corto, lógicamente habrá también un formato largo o extendido. La opción para forzar este formato de salida es (-l). Este formato es muy interesante puesto que nos devuelve una gran catidad de información. cuando invocamos esta opción y dependiendo de la cantidad de conexiones TCP analizadas, la salida puede ser bastante extensa. Así que la mejor forma es usar es; primero el formato corto y luego, una vez identificada la conexión que nos interese analizar, entonces usamos el formato de salida extendido. Para ello usaremos la opción:

  • -onúmeroconexión

Por ejemplo. Del ejemplo nos interesa la conexión 5, entonces:

  • tcptrace -o5 -l captura3.pcap

tcptrace acptura pcap formato salida larga -l

Efectivamente, podéis comprobar, que tal como hemos indicado a la herramienta, se nos muestra la información relativa a la conexión número 5 identificada como (i2j).

Tenemos además información en resumen de los host involucrados junto a los puertos usados, si la conexión se completó, timestamp del primer y último paquete de la conexión, total de paquetes, etc…. que iremos viendo en siguientes capítulos.

Imprimiendo cabeceras de los paquetes.

Con la opción -p podemos visualizar el conetenido de los campos de las cabeceras IP/TCP. Con esta opción veremos información de todos los paquetes, pero si queremos información solo de los paquetes que pertenezcan a una conexión determinada, entonces usaremos (-P):

  • tcptrace -onúmeroconexión -P ficherodecaptura.pcap

Ejemplo. vamos a ver el contenido de los campos de las cabeceras de los paquetes que forman parte de la conexión 3 (e2f). Para ellos usaremos:

  • tcptrace -o3 -P captura3.pcap

Voy a mostrar el contenido del último paquete:

tcptrace imprimir infiormación cabecera paquetes -P

Como ya hemos visto en otros artículos, es facil identificar la información mostrada para el datagrama IP:

  • Versión. IPv4
  • IP origen / destino. 192.168.1.2XX (SERVIDOR-1) / 192.168.1.5 (HOST01)
  • Type o Protocolo. TCP (0x6)
  • HLEN o Headder LEN. 20
  • TTL o tiempo de vida. 128
  • LEN o longitud total del datagrama. 40
  • ID o número identificación único. 5382
  • CKSUM o headder cheksum. 0x0000

La interpretación de ldatagrama IP lo estudiamos aquí: https://seguridadyredes.wordpress.com/post/2009/11/05/wireshark-windump-analisis-capturas-trafico-red-interpretacian-datagrama-ip-actualizacian

Repecto al segmento TCP:

  • Puertos origen y destino TCP SPRT / DPRT. 3108 / 139
  • FLAGS activados. A (0x10)
  • Número secuencia. 0x7088d4f4
  • ACK. 0x192ce96f
  • Tamaño Ventana o WIN. 64383

La interpretación del segmento TCP lo estudiamos aquí: https://seguridadyredes.wordpress.com/post/2008/01/29/analisis-capturas-trafico-de-red-interpretacion-segmento-tcp-ii-establecimento-conexian-tcp

Abajo del todo tenemos la identificación de la conexión:

TCP connection info:
3: SERVIDOR-1:3108 – HOST01:139 (e2f)   14>    8<

Estadísticas RTT.

Vamos ahora a comenzar a usar trptrace para extraer información interesante. Por ejemplo una estádistica RTT (Retardo Promedio de Red).  básicamente se trata de una estadística del tiempo que toma en enviar un paquete desde un host cliente a un host servidor y viceversa.

Para ello usaremos la opción -r junto a la opción -l. Por ejemplo. tomando como base el ejemplo que usamos para ilustrar la salida larga (conexión número 5), más arriba, si añadimos -r, nos quedará así:

  • tcptrace -o5 -r -l captura3.pcap

Tcptrace nos devolverá la misma información que el ejemplo reseñado mas:

estadisticas RTT tcptrace -r -l

Como veis, a parte de la estadística RTT, tenemos información, si existe, de ACKs duplicados, ACKs lost packets, etc. cosas que ya vimos aquí: https://seguridadyredes.wordpress.com/post/2009/02/20/wireshark-tshark-usando-io-graph-para-relacionar-acks-duplicados-lost-segment-y-retransmisiones

En el próximo captítulo veremos los aparados más importantes de esta información, como por ejemplo: post-loss acks, triple dupacks, duplicate acks, min retr time, etc.

Extracción del contenido o Payload del campo DATA TCP.

Con tcptrace podemos extraer los datos contenidos en el Payload del segmento TCP. Esto se hace con la opción -e.

Veámolo con un ejemplo. Tenemos una derminada captura, y una serie de conexiónes. Identificamos la conexión que nos interesa y queremos extraer los datos del Payload contenidos en esa cponexión.

Cuando añadimos la opción -e para realizar esta tarea, tcptrace vuelca la información en un archivo, por cada sentido de la conexión, que si identifica de la siguiente manera:

  • identificacióndelaconexión_contens.dat que se ubica en la misma carpeta donde está el archivo tcptrace.exe.

Es decir que si queremos ver los datos de la conexión (g2h) número 4:

  • tcptrace -o4 -e captura3.pcap

Se crearán dos archivos:

extraccion datos payload tcptrace segmento tcp -e

Como veis tenemos los datos para ambos sentidos: (g2h) y (h2g). Si abrimos uno de ellos:

tcptrc_01_06.png

Se trata de la captura de la impresión de un archivo .pdf. Lo vemos de forma clara en la imagen.

—————-

Ya está la segunda parte de esta serie dedidaca a Tcptrace:

Analizando capturas .pcap TCP con tcptrace. Generación de gráficas con Xplot. Parte 2

Esta entrada fue publicada en Interpretación capturas tráfico red. pcap, tcptrace, Visualización Gráfica Tráfico red., Windump. TCPDump, Wireshark . Tshark. Guarda el enlace permanente.

11 respuestas a Analizando capturas .pcap TCP con tcptrace. Generación de gráficas con Xplot. Parte 1

  1. alex dijo:

    interesantísimo, gracias por compartirlo. Te lelvo leyendo coosa de un año. Y desde entonces conozco mucho mejor los sniffers.
    Saludos

  2. Alfon dijo:

    Gracias por leerme alex. En este caso (tcptrace) no se trataría exactamente de un sniffer, aunque mediante pipes… podría ser.

  3. rmallof dijo:

    no me gustaria tenerte en mi lan x)
    cmom siempre interesante y de provecho, gracias crack!

  4. Alfon dijo:

    rmallof, grcias por leerme. Estoy preparando ya la segunda parte. A ver si para la semana que viene lo tengo todo listo.

  5. renafacci dijo:

    Sigue con la parte gráfica por favor!
    he tenido algunos problemas con eso!
    (te mandé un correo al respecto)

  6. Alfon dijo:

    renafacci, es mi intención seguir con la parte gráfica. El motivo del retraso es mucha trabajo que tengo. Gracias por tu comentario.

  7. renafacci dijo:

    gracias! te lo agradecería!

  8. Alfon dijo:

    Ya tenéis la segunda parte de tcptrace que corrsponde con kla primera de la parte gráfica.

  9. juan lopez dijo:

    publique la grafica de tpc

  10. Jaro Maeztu dijo:

    Muy intersanta como dicen más arriba. Enhorabuena.
    ¿ Qué gráfica juan lopez ?.

  11. Jaro Maeztu dijo:

    Muy intersanta como dicen más arriba. Enhorabuena.
    ¿ Qué gráfica juan lopez ?.

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