Foros del Web » Administración de Sistemas » Seguridad y redes »

Analizando la Red con winDump / TCPDump. VI Parte.

Estas en el tema de Analizando la Red con winDump / TCPDump. VI Parte. en el foro de Seguridad y redes en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/02/2008, 06:39
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 1 mes
Puntos: 14
Analizando la Red con winDump / TCPDump. VI Parte.

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.

Código:
IP 192.168.1.240.139 > 192.168.1.3.1098: tcp 60 (DF)
0x0000 4500 0064 8a01 4000 8006 ec4e c0a8 01f0 [email protected]....
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.

Código:
IP 192.168.1.240.139 > 192.168.1.3.1098: tcp 60 (DF)
0x0000 4500 0064 8a01 4000 8006 ec4e c0a8 01f0 [email protected]....
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:



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ódigo:
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ódigo:
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.


Alfon.
Más información en mi web:

http://seguridadyredes.nireblog.com/
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:25.