Analizando capturas .pcap TCP con tcptrace. Filtrado y análisis de Conexiones.

Ya hemos visto, respecto a tcptrace, su instalación, uso básico, estádisticas, extracción de datos del contenido o payload, gráficas con Jplot / Xplot,..

tcptrace filtros avanzados syn count

En esta ocasión vamos a estudiar el filtrado de conexiones con tcptrace.

Sobre el filtrado Tcptrace.

Como ya he explicado en anteriores capítulos, tcptrace se orienta a identificar las conexiones tcp establecidas en un fichero pcap, analiza su estado, rendimiento, etc, etc, y cuyo objetivo más importante es la generación de gráficas a partir de las información que de el se obtiene. Por tanto, el verdadero filtrado ha de establecerse a partir de la fuente de la captura (tcpdump, wireshark, etc  ). El filtrado  tcptrace , pues, es un filtro centrado en las características de la conexión TCP, valores de rendimiento, etc…

Tcptrace. Filtrado básico.

Ya hemos visto algo sobre filtrado básico de conexiones cuando hablamos de la opción -onúmeroconexión, con esto ya estamos realizando un primer y básico filtrado ya que solo visualizaremos la conexión indicada. Podemos mostrar varias conexiones, por ejemplo:

  • tcptrace -o1,4,8 fichercaptura.pcap

que generará una salida tal como esta:

tcptrace filtrado básico -o

La opción -n es para que no resuelva nombres de host, con lo que irá mucho más rápido cuando se trata de ficheros de captura muy grandes.

Vemos de forma clara que indicamos las conexiones 1,4 y 8 que son las que se visualizan.

Podemos también establecer un rango de conexiones. De la 5 a la 9 por ejemplo. Además queremos incluir la primera:

  • tcptrace -o1,5-9 fichercaptura.pcap

Hablamos también en la Parte 2, de limitar en la visualizaciones, el número de segmentos a mostrar, rangos, etc con las opciones -E y –B. Algunos ejemplos de estas opciones:

  • tcptrace -zxy -E30000 -o1 -S fichercaptura.pcap con -E30000 limitamos hasta 30000 segmentos.
  • tcptrace -zxy -B10000 -E20000 -o1 -S fichercaptura.pcap con B10000 -E20000 desde 10000 a 20000 segmentos

Las opciones -E y -B están, sobre todo, orientadas a las gráficas y gráficas time sequence graph, de ahí la opción -S para invocarlas y las opciones -zxy que ya hemos visto.

Tenemos otras opciones:

  • -c  para ignorar las conexiones no completadas.
  • i númeroconexión para ignorar la conexión númeroconexión

Por ejemplo:

  • tcptrace -n -i1-2224 fichercaptura.pcap que solo mostrará desde la conexión 2225 hasta el final

Hasta aquí el filtrado básico.

Tcptrace. Filtrado avanzado.

No termina con el filtrado básico las capacidades de filtrado de tcptrace. Tenemos un filtrado algo más avanzado aunque, a su vez, bastante más básico que BPF usado hasta ahora con Tcpdump / Windump / Tshark / Wireshark, etc..

Se trata de un filtrado basado en unas primitivas. La mayoría centrado en las conexiones TCP.

Por ejemplo podemos filtrar por:

  • segs
  • rtt_min
  • rtt_max
  • ack_segs
  • data_bytes
  • data_segs
  • mss
  • packets
  • syn_count
  • ….

y además por otros filtros algo más generales como:

  • hostname
  • portname
  • port

Más abajo tenéis una lista.

La sintaxis básica sería:

  • -f”filtro”

Como siempre lo vamos viendo con ejemplo:

Ejemplo 1.

Queremos filtrar, apartir de un fichero de captura de red, de la siguiente forma. De las conexiones completadas (-c), ver solo las que corresponden al puerto de origen o destino = 80.

  • tcptrace -n -f”port==80″ -c 050608.pcap

tcptrace filtros avanzados -f

Vemos

Ejemplo 2.

De todas las conexiones, queremos visualizar solo las que incluyan hostname=eleconomista.es.

Para ello tendremos que eliminar -n para que pueda resolver los nombres de hosts.

  • tcptrace  -f’hostname==”eleconomista.es”‘ 050608.pcap

tcptrace filtrado hostname -f

Aunque en la captura añadí las opciones -c y -o como prueba, no son necesarias. Las ignora.

Ejemplo 3.

Queremos ver las conexiones en las que está involucrado el protocolo https, ssh y también las que tiene como puerto origen o destino el puerto=81. Para la primitiva portname también necesitamos no indicar -n.

  • tcptrace -f’portname==”https” or portname==”ssh” or port==81′ 050608.pcap

Hay que decir que el filtro portname solo funcionará si en la captura se identifica el puerto usado con portname, es decir, en vez de aparecer el puerto 22, aparece como ssh. Por ejemplo: en el ejemplo 1, el puerto http patrece como 80 y no como http.

Otros filtros.

Podemos filtrar por número segmentos de la conexión, tanto en una dirección como en la otra otra:

  • tcptrace -n -f“segs >= 150” 050608.pcap

podemos combinar:

  • tcptrace -n -f“segs>75 && port==80” 050608.pcap 

tcptrace filtros avanzados y combinados

No paremos aquí un poco para explicar los modificadores de flujo para los filtros.

En el caso que indiquemos el prefijo b_ indicamos el flujo de la conexión en dos sentidos (por defecto). Si indicamos c_ o s_, indicamos un sentido o el otro.

Por ejemplo:

tcptrace -n -fs_segs>75 && c_port==80″ 050608.pcap

Vamos ahora con filtros que forman parte de una conexión TCP, sus características, campos, etc.

Por ejemplo, las conexiones con peticiones SYN enviadas:

  • tcptrace -n -f”syn_count==2” captura4.pcap

tcptrace filtros avanzados syn count

Vamos a ver las conexiones que tengan más de 15 segmentos fuera de orden:

  • tcptrace -n -f”out_order_segs>15″ 050608.pcap 

también los ACKs duplicados (rtt_dupack):

  • tcptrace -n -f"rtt_dupack>15" 050608.pcap


Retransmisiones en una conexión.

Vamos a realizar un pequeño y muy sencillo estudio sobre retransmisiones.

Lo primero ver si existen alguna conexión que contenga retansmisiones, despúes analizaremos de forma más profunda alguna de las conexiones que aparezcan:

  • tcptrace -n -f”rexmit_segs>20” 050608.pcap

tcptrace retransmisiones

Podemos calcular, para hacernos una idea, la tasa de retransmisión de la forma:

rexmt data pkts / actual data pkts * 100

23                   /  9806                  * 100 = 0,2345% tasa retrans.

Rendimiento de las conexiones.

Vamos crear un filtro para averiguar que conexiones tienen un Throughput, en bits/segundo, mayor que una determinada cantidad que indiquemos. En este caso 100000 bps.

El Throughput, explicado de forma sencilla,  es la cantidad de datos real (depende de varios factores) que pueden transmitirse/unidad de tiempo por un determinado canal o dispositivo.

  • tcptrace -n -f”thruput>300000” 050608.pcap

tcptrace rendimiento Throughput

Listado de primitivas para filtros.

tcptrace primitivas para filtros

=================================

Hasta aquí por hoy. En la próxima veremos los módulos de tcptrace.

Esta entrada fue publicada en Seguridad y redes, tcptrace. Guarda el enlace permanente.

Responder

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s