ANÁLISIS DE CAPTURAS TRÁFICO RED. Interpretación Datagrama IP (I)

por alfon

ANÁLISIS DE CAPTURAS DE TRÁFICO DE RED.

Interpretación Datagrama IP (I)

Una de las tareas habituales de un administrador de red es el análisis de los logs de tráfico de la red. Análisis que puede ser de rendimiento o seguridad. Tráfico de la LAN, entrante y saliente a través de cortafuegos, análisis de Sistemas de Detección de Intrusos, etc.

Para ello contamos con variadas herramientas. Entre ellas Snort, TCPDump/Windump, Ethereal (ahora WireShark), etc. Destaco estas tres últimas por estar basadas en la librería libpcap.

Libpcap es una librería de código abierto que ofrece al programador una interfaz desde la que capturar paquetes en la capa de red. La implementación para windows es Winpcap. Entre las utilidades más importantes de los analizadores de tráfico de red está la que nos proporciona la salida en hexadecimal de las capturas.

 

En este artículo vamos a analizar dichas capturas en hexadecimal para obtener todos los datos posibles de las cabeceras IP y segmentos TCP, además de comprender de forma más visual los conceptos TCP/IP.

Para ello usaremos TCPDump (Linux/Unix) / Windump (Windows).

Funcionamiento de TCPDump / Windump

Conceptos TCP/IP

Para las salidas en hexadecimal usaremos la opción -x de tcpdump/windump que captura por defecto 68 bytes.

Para capturar toda la información usamos el snaplen (-s0). A cero estamos cogiendo los paquetes completos.

Si hubiéramos puesto -s 512 se capturarían sólo los primeros 512 bytes de un determinado paquete.

 

Interpretación de un Datagrama IP

Datagrama IP

 

Esta es una salida en hexadecimal de cualquiera de los analizadores
de red mencionados más arriba, en este caso tcpdump:

Salida hexadecimal en tcpdump

En la primera línea tenemos ya algunos datos (esto ya lo hemos visto en el artículo de tcpdump). Si embargo vamos a descifrar la cabecera para obtener los mismos y otros datos importantes.

 

DATAGRAMA IP

4  ipv4. tiene una longitud de 4 bits. En este caso 4 (0100)

5  IHL o longitud de la cabecera en palabras de 32 bits. En este caso: 5*32=160 bits

00  (TOS) Tipo de servicio respecto a la fiabilidad, velocidad, retardo, seguridad… Tiene un tamaño de 8 bits, en este caso 00000000.

Tabla de valores para TOS

  • Bits 0-2  Prioridad.

  • Bit    3  0 = Demora Normal, 1 = Baja Demora.

  • Bit    4  0 = Rendimiento Normal, 1 = Alto rendimiento.

  • Bit    5  0 = Fiabilidad Normal, 1 = Alta fiabilidad.

  • Bits 6-7  Reservado para uso futuro.

    En este caso:

       prioridad 0

       demora, rendimiento y fiabilidad: normal

0064  Longitud total. Se incluyen los datos encapsulados.

La longitud del campo es de 16 bits. De esta manera la longitud máxima es (1111111111111111) = 65535 bytes. En este caso 100 bytes.

8a01  (ID) Número de identificación único por cada datagrama que permitirá el reensamblaje posterior al ser dividido en fragmentos más pequeños. Longitud 16 bits. En este caso Id=35329.

Bandera (Flag) Campo de 3 bits.

  • El primer bit esta reservado y es siempre 0.
  • El segundo es el el bit de indicación de no fragmentación (DF). (010)
  • El tercero (MF) es de verificación que el datagrama llega a su destino (001) completo, está activo en todos los datagramas enviados excepto en el último para informar que ya no hay más fragmentos.

000  Fragment offset o Posición. Longitud de 13 bits. Posición del fragmento dentro del datagrama.

80  (TTL) Tiempo de vida. Longitud 8 bits. Impide que un paquete esté indefinidamente viajando por la red. En este caso 128 indica que cada vez que un datagrama atraviese un router este numero se decrementa en 1. cuando el TTL llege a 0 el datagrama se descarta y se informa de ello al origen con un mensaje de tiempo excedido.

06  Protocolo. Longitud 8 bits. En este caso hex(06) (00000110) = TCP en decimal sería 6.

Valores para los protocolos

1 ICMP, 2 IGMP, 6 TCP, 9 IGRP, 17 UDP, 47 GRE, 50 ESP, 51 AH, 88 EIGRP, 89 OSPF, 115 L2TP.

ec4e    Header Cheksum(CRC) o Suma de Control de la Cabecera. Longitud 16 bits. Es la suma de comprobación de errores de la cabecera del datagrama. Este número se calcula nuevamente en cada salto del datagrama a través de los routers.

c0.a8  01.f0  dirección origen: 192.168.1.240  longitud 32 bits.

c0.a8  01.03  dirección destino: 192.168.1.3  longitud 32 bits.

 

Tenemos otro campo que es Options (Opciones) de longitud variable con información opcional para el datagrama. Puede tener 0 o más opciones.  Y Padding (Relleno) también de longitud variable. Asegura que la cabecera IP termine en múltiplo de 32 bits.

Según el RFC0791 Las opciones Options pueden o no aparecer en los datagramas. Deben ser implementadas por todos los módulos IP (host y pasarelas). Lo que es opcional es su transmisión en cualquier datagrama en particular, no su implementación.

 

El último campo es Data, de longitud variable, conteniendo los datos a enviar. La longitud máxima es 64 Kbytes y comienza con el contenido de la cabecera del protocolo de siguiente nivel, es decir TCP o UDP. Los datos y encabezamiento del segmento TCP van dentro del campo Data del datagrama IP, es lo que llamamos encapsulación.

En este caso el campo Data comienza con con los campos de la cabecera del segmento TCP puerto origen y puerto destino:

008b  Puerto origen 139

044a  Puerto Destino 1098

 

Formato de la cabecera TCP (encapsulado en el Data del segmento IP)

Formato de la cabecera TCP

 

El segmento TCP los estudiaremos en otra entrega.

 


 

Enlaces de interés, añadidos por maty

Anuncios

Acerca de maty
Nauscopio Scipiorum

"Age quod agis et bene agis" - Hagas lo que hagas, hazlo bien

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

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