Analizando la Red Con WinDump / TCPDump. (V Parte). Avanzando en los Filtros II

Seguimos, al igual que en los anteriores capítulos avanzando con los filtros de Windump / TCPDump. Este cápitulo forma parte de nuevos contenidos relacionado con los artículos refereridos a Análisis de Red con WinDump / TCPDump.

Otra manera de establecer filtros avanzados es el siguiente:

Teniendo el siguiente datagrama IP.

IP 192.168.1.240.139 > 192.168.1.3.1098: tcp 60 (DF)
0x0000 4500 0064 8a01 4000 8006 ec4e c0a8 01f0 E..d..@….N….
0x0010 c0a8 0103 008b 044a fcea 6aaf 60e5 ea5b …….J..j.`..[
0x0020 5018 fd34 8917 0000 0000 0038 ff53 4d42 P..4…….8.SMB
0x0030 7500 0000 0098 07c8 0000 0000 0000 0000 u……………<
0x0040 0000 0000 04b0 fffe 01a8 c000 07ff 0038 ……………8
0x0050 0001 00ff 0100 00ff 0100 0007 0049 5043 ………….IPC
0x0060 0000 0000

Otra manera de establecer filtros avanzados es el siguiente:

Teniendo el siguiente datagrama IP.

IP 192.168.1.240.139 > 192.168.1.3.1098: tcp 60 (DF)
0x0000 4500 0064 8a01 4000 8006 ec4e c0a8 01f0 E..d..@….N….
0x0010 c0a8 0103 008b 044a fcea 6aaf 60e5 ea5b …….J..j.`..[
0x0020 5018 fd34 8917 0000 0000 0038 ff53 4d42 P..4…….8.SMB
0x0030 7500 0000 0098 07c8 0000 0000 0000 0000 u……………<
0x0040 0000 0000 04b0 fffe 01a8 c000 07ff 0038 ……………8
0x0050 0001 00ff 0100 00ff 0100 0007 0049 5043 ………….IPC
0x0060 0000 0000

Observamos que en la posición del byte 9 y con longitud de 1 byte tenemos la identificación del protocolo, en este caso 06 (tcp). De esta manera el filtro quedaría:

c:windump -qtn -X -s 0 ip[9:1] = 6 
ó
c:windump -qtn -X -s 0 ip[9] = 6 
(NOTA: se elimina el :1 al ser de longitud 1 byte)
De esta forma y siguiendo la misma técnica, para filtrar por el protocolo UDP:
c:windump -qtn -X -s 0 ip[9:1] = 17
también:
c:windump -qtn -X -s 0 ip[9:1] & 0x11 != 0 

Esta última notacion de debe al uso de máscaras que ya hemos estudiado en capítulos anteriores. Veámoslo:

0x11 es la notación hexadecimal del binario 00010001 y decimal 17. Sabemos que la longitud del campo protocolo es de 1 byte, es decir 8 bites. Así pues la notación quiere decir:

Filtrar según si en la posición ip[9:1] con mascara 00010001 es distinto de 0 ó no activo.

Si quisieramos filtrar por el protocolo tcp, la mascara sería 00000110 al ser el tipo 6 o hexadecimal 0x06. El tipo de protocolo nos lo dice las RFCs.

Otro ejemplo.

Según el mismo datagrama la dirección IP de destino se situa
en el byte 16 y tiene una longitud de 32 bits ó 4 bytes. Si queremos
filtrar por dirección de destino 192.168.1.3 el filtro quedaría:

c:\windump -qtn -X -s 0 ip[16:4] = 0xc0a80103

NOTA: ponemos 0x antes para indicar que es una notación hexadecimal.
el dato de IP destino lo sacamos de (0x0010 c0a8 0103) del datagrama.

Seguimos. Para filtrar por número de secuencia en un segmento TCP vemos que:

CAbecera TCP

El número se secuencia se situa en el octeto o byte 4 y tiene una longitud
de 4 bytes. El filtro quedaría:

tcp[4:4]

Vamos a analizar icmp con windump:


C:\>windump -qtn -X -i2 -s 0 icmp>
windump: listening on\Device\Packet_{52BFAEB8-D8….C7083B5}
192.168.1.34 > 192.168.1.2: icmp: echo request
0x0000 4500 003c 0cf1 0000 8001 aa5b c0a8 0122 E..<…….[…"
0x0010 c0a8 0102 |0800 465c 0200 0500 6162 6364 ……F\….abcd
0x0020 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst
0x0030 7576 7761 6263 6465 6667 6869 uvwabcdefghi
192.168.1.2 > 192.168.1.34: icmp: echo reply
0x0000 4500 003c 5164 0000 8001 65e8 c0a8 0102 E…Qd….e…..
0x0010 c0a8 0122 |0000 4e5c 0200 0500 6162 6364 …”..N\….abcd
0x0020 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst
0x0030 7576 7761 6263 6465 6667 6869 uvwabcdefghi

NOTA: Hemos marcado con | el comienzo de la cabecera icmp.

ICMP se transmiten como datagramas de IP con una cabecera normal de IP, con el campo IP de Protocolo con el valor 1.

El campo que determina dentro de icmp el tipo de que se trata tiene una longitud de 8 bits ó 1 byte situado al comienzo. En las trazas del ejemplo tenemos un echo request y un echo reply con valores 08 en el primero y 00 en el segundo.

De esta forma para filtrar los icmp de tipo echo request pondríamos:

C:\>windump -qtn -X -i2 -s 0 icmp[0:1] = 08

Algunos tipos de icmp

0 Respuesta de ECO
3 Destino inaccesible
4 Disminución de origen (source quench –
datagrama eliminado por congestión)
5 Redireccionar (cambiar una ruta)
8 Solicitud de ECO
11 Tiempo excedido para un datagrama
12 Problema de parámetros de un datagrama
13 Solicitud de TIMESTAMP
14 Respuesta de TIMESTAMP
15 Solicitud de Información (obsoleto)
16 Respuesta de Información (obsoleto)
17 Solicitud de Máscara de dirección
18 Respuesta de máscara de dirección

Mas filtros.

Complicamos un poco más ya que algunos de anteriores filtros pueden ser obviados debido a que windump/tcpdump tienen una serie de primitivas para ciertos filtros:

C:\>windump -qtn tcp
para que solo filtrar por el protocolo tcp

C:\>windump -qtn tcp
igualmente para filtrar por el protocolo udp

Sin embargo sacar información de otros campos del datagrama IP o de segmentos TCP, etc. es más complicado al no proveer la herramienta de las primitivas necesarias. Veamos un ejemplo:

Filtrar los paquetes quetengan el bit de no Fragmentar (DF):

C:\windump -qtn “ip[6] & 64 != 0”

Vamos a explicarlo.

ip[6] & 64 es lo mismo que ip[6] & 0x40 la mascara sería 01000000.
Sabemos que el primer bit que compone los tres que forman el campo Flag de IP es siempre 0, los otros dos son DF y MF de verificación que el datagrama llega a su destino.

El resto forma parte del siguiente campo de 13 bits que forman el Fragment Offset. Como las máscaras las aplicamos como octetos o conjuntos de 8 bits, para saber si el bit de DF está activado la
máscara sería 01000000 (el segundo bit activado). Para saber si el activado es el MF entonces la máscara sería 00100000.

Para filtrar por el bit activado de MF sería:

C:\windump -qtn “ip[6] & 32 != 0”

ó

C:\windump -qtn “ip[6] & 0x20 != 0” (hexadecimal)

Veámoslo en la práctica:


C:\windump -qtn “ip[6] & 32 != 0”
windump: listening on\Device\Packet_{52BFAEB8-D80F-4700-AC56-9C97BC7083B5}
10.164.138.11 > 192.168.1.33: icmp: echo request (frag 34819:552@0+)
10.209.1.224.16 > 192.168.1.33.2222: FP 1585299871:1585301027(1156) ack 39..276 win 8460 (frag 93…@0+)
10.193.250.165 > 192.168.1.33: icmp: echo request (frag 45828:552@0+)
10.193.250.165 > 192.168.1.33: icmp: echo request (frag 3333:552@0+)

Por esta vez esto es todo.
En el siguiente capítulo avanzaremos todavía más en los filtros complejos. Buscaremos cadenas en el campo DATA y analizaremos trazas de ataques o intrusiones a nuestra red.

Esta entrada fue publicada en Seguridad y redes, Windump. TCPDump y etiquetada , , , , , , , , , , , , , , , , , . Guarda el enlace permanente.

3 respuestas a Analizando la Red Con WinDump / TCPDump. (V Parte). Avanzando en los Filtros II

  1. Erick dijo:

    Hola, me pareceun muy útiles tus tutoriales y me han ayudado mucho, pero aún sigo con un pequeño problema, no se si me puedas ayudar pero mi duda es: como podría hacer para que al momento de guardar los paquetes con la opcion -w solamente guarde por ejemplo el tiempo y el tamaño del paquete ya que es lo único que me interesa saber, muchas gracias de antemano

  2. Alfon dijo:

    Gracias Erick por tus comentarios. Respecto a tu priblema.
    Puedes hacer suo de las estádísticas:
    Tshark, Wireshark en línea de comandos. (VI Parte.) Avanzando en filtros, Estadísticas, COUNT, SUM, MIN, MAX y AVG.
    Y más concretamente para las columnas, usar el formateo column.format de esta forma:

    tshark -i3 -o column.format:””Time”, “%t”,”Len”,”%L”” > salida.txt

    Saludos y espero que te sirva.

  3. Erick dijo:

    Hola de nuevo solamente queria decir muchas gracias por tu ayuda, me ha servido mucho espero que sigas publicando más tutoriales interesante y útiles como los de hasta ahora🙂

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