26/4/07

Wireshark - Filtros de Captura Parte II


He tenido una semana un tanto ocupada, pero acá estoy con toda la intención de completar el tema de los filtros de captura de Wireshark, algo que es de mucha utilidad, para capturar unicamente el tráfico que nos interesa para el análisis. Como recomendaba en la parte I, muchas veces lo mejor, es capturar todo el tráfico, pero en algunas ocasiones no es posible, o no es deseable y debemos aplicar algunos filtros, asi que sin más, iniciamos:

La sintaxis soportada por Wireshark, permite capturar algunos protocolos unicamente especificandolo, de esta manera podemos detectar la presencia de este protocolo o hacer un troubleshoting de algo específico, algunos de los más relevantes son:

arp - Para capturar tráfico del Address Resolution Protocol

icmp
- Para capturar tráfico icmp, por ejemplo captura de paquetes de ping

ip
- Captura todo el tráfico IP

ipx - Capturar tráfico ipx, este comando puede ser util para determinar si este protocolo esta corriendo en la red (algo que ya no es nada comun en estos días).

netbeui - Capturar tráfico de NetBIOS extendede user interface

stp - Capturar tráfico de spanning tree protocol (a veces es útil usar la forma no stp para evitar este tráfico que pudiera no ser relevante para el análisis)

tcp - Captura todo el tráfico tcp

udp - Captura todo el tráfico udp

Por supuesto, existen algunos otros protocolos, pero considero que estos son los más relevantes, también recordar, que se puede utilizar operaciones lógicas, por ejemplo arp or icmp para capturar tráfico de arp y de icmp.

Existen opciones de filtrado aun más avanzadas, por ejemplo, vimos que se puede capturar todo el tráfico icmp, que nos permitira capturar paquetes de ping, sin embargo, ping no es el único tipo de tráfico icmp, a continuación se muestran los campos de un paquete icmp como estan definidos en la rfc 792.


Destination Unreachable Message

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Code Checksum
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
unused
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Internet Header + 64 bits of Original Data Datagram
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Como puede verse en este diagrama, los primeros 8 bits (primer byte), tiene el campo Type,
que define el tipo de paquete icmp, para referencia sobre los diferentes valores de icmp ver la rfc 792 anteriormente mencioanda.

En el caso particular de ping el type 8 indica un echo request y el type 0 indica un echo replay, asi que si queremos capturar exclusivamente paquetes de ping, el comando sería:

icmp [0] == 8 or icmp [0] == 0

El valor dentro de [] indica que estamos evaluando el byte 0, y que su valor sea igual a 8 o igual a 0, de esta manera estaríamos capturando exactamente el tráfico de ping.

Este ejemplo nos abre nuevas posibilidades, ya que posible probar bytes especificos de otros protocolos aunque no de todos, de la lista de protocolos desplegada previamente ipx, netbeui y stp no lo soportan es decir no podemos usar el comando ipx[0], pero los demás si.

En el fitrlo de ejemplo anterior, se utilizo == para designar igual a, otros operadores que se pueden utilizar en la extracción de bits son:

> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
!= No igual a


Esto también nos lleva a otro asunto muy importante a considerar, para el análisis efectivo de una red, es importante conocer los protocolos que estamos analizando, si estas interesado en conocer la estructura de paquetes de los protocolos más importantes, un buen recurso es Protocols.com, en este sitio se da una descripción básica de una gran cantidad de protoclos, así como línks hacia los RFCs, que son la autoridad final en cuanto a como esta definido cada protocolo.

En una tercera parte, me gustaría profundizar sobre la extracción de bits, por ejemplo en el protocolo tcp, de momento por acá nos quedamos, espero que este tutorial este siendo de utilidad en tu trabajo, si deseas dejar tu comentario no dudes en hacerlo, igualmente si tienes alguna duda, estoy a la orden, en la dirección lmunguia [arroba] soportederedes.com

3 comentarios:

Anónimo dijo...

Hola, gracias por el tutorial de filtros WireShark, me gustaría que profundizaras un pooco más en los filtros de vizualización, espero que se pueda.

d5ck dijo...

Hey que buen tutorial, esta super interesante este tema

Anónimo dijo...

hola.... para una tarea nos piden capturar pap en una enlace de 2 router ppp ya creado y funcionando en dynagen, es necesario hacer un ping entre los dos router y luego capturar desde consola dynagen "capture R1 s0/0 asd.cap ppp" y listo???? porke lo hago pero no veo la autenticacion pap en el archivo cap, el profe lo logro hacer y vio la contraseña no encriptada de pap,,,,, pero ami nome resulta......muchas gracias.