You are on page 1of 6

El analizador de protocolos Wireshark

1. Introducción
En esta práctica se pretende adquirir las capacidades necesarias para capturar paquetes
usando la herramienta Wireshark. En primer lugar se pretende que el alumno conozca las
acciones (secuencias de intercambio de paquetes) generadas por la ejecución de las órdenes
de red más frecuentes. En segundo lugar, dado que por la red viajan multitud de paquetes,
será necesario seleccionar aquellos que nos resulten de interés. or ello vamos a aprender a
capturar paquetes utilizando los filtros que nos proporciona Wireshark, de manera que
aceptaremos unos paquetes ! desecharemos otros. En tercer lugar, se pretende introducir al
alumno en la interpretación del contenido de los paquetes capturados para afianzar los
conceptos relativos a los protocolos estudiados en clase. "odo ello permitirá poner en
práctica los conocimientos adquiridos a lo largo de varios de los temas vistos en las clases
de teor#a, adquiriendo una ma!or comprensión de los procesos que ocurren en la red
cuando se llevan a cabo diversas acciones a nivel de usuario.
$aptura realizada con %ireshar&
Ejercicio 0:
'orra todas las entradas de tu cache de () ! lanza el programa Wireshark.
*esde una consola ejecuta la orden ping www.google.es ! captura los paquetes que
lleguen a tu tarjeta de red (en modo +, promiscuo) durante -. segundos. ,bserva los
paquetes que has capturado. /Entiendes todos los paquetes0 E1plica los paquetes
capturados generados por la orden ping ejecutada.
Ejercicio 1:
)ealiza otra captura, esta vez en modo promiscuo, para ver los paquetes que circulan por la
red local en este momento. 2ediante la opción Statistics/Protocol Hierarchy, indica
cuántos paquetes de cada uno de estos tipos has recibido, teniendo en cuenta que alguno de
los valores podr#a ser cero si no se han capturado paquetes del protocolo correspondiente3
()3
43
4$23
"$3
5*3
$entra tu atención en el primer paquete 4 recibido, ! rellena los siguientes datos del
mismo3
*ir. 4 origen3
*ir. 4 destino3
rotocolo3
"ama6o3
""73
4dentificador3
2. Filtros de captura y de pantalla
$omo habrás visto, al intentar analizar el tráfico de cualquier red, resulta habitual
encontrarse gran cantidad de paquetes que emplean protocolos en los que no estamos
interesados. "al cantidad de tráfico dificulta el análisis de los paquetes capturados !
aumenta innecesariamene el tama6o de los ficheros de captura, por lo que se hace
indispensable filtrar toda esa información.
ara filtrar los paquetes ! facilitar el análisis del tráfico capturado podemos usar dos
alternativas, no e1clu!entes entre ellas. 7a primera es definir un filtro de captura, de modo
que el propio Wireshark, cuando llega un nuevo paquete, decide si ese paquete se ajusta o
no a los criterios establecidos por el filtro. En caso de que se ajuste, el paquete es aceptado
! mostrado en pantalla, mientras que en caso contrario el paquete se descarta. 7a otra
alternativa para filtrar la información de los paquetes es establecer un filtro de pantalla. En
este caso lo habitual es capturar todos los paquetes que circulan por la red, sin restricción
alguna, ! especificar un filtro para poder e1traer entre todo ese tráfico capturado aquellos
paquetes que nos interesan. En cualquier caso, es posible usar un filtro de captura !
posteriormente, sobre los paquetes capturados, usar un filtro de pantalla para ver mejor los
detalles que estemos buscando en cada momento. 7os filtros de captura se pueden
especificar desde la ventana de captura (Capture Options). odemos especificar un filtro
escribiendo la e1presión correspondiente en la caja de te1to situada junto al botón Filter.
7a sinta1is de estas e1presiones es la misma que la usada en la orden tcpdump, disponible
habitualmente en los sistemas 5ni1 ! 7inu1. En el apartado siguiente se mostrará un
resumen de esta sinta1is.
or otra parte, los filtros de pantalla se pueden especificar desde la parte inferior de la
ventana principal de WireShark. 7a sinta1is para este tipo de filtros es ligeramente
diferente. Es posible disponer de un asistente para especificar estos filtros. Es conveniente
tener cuidado con estos filtros de visualización, !a que pueden, en ocasiones, llevar a error.
or ejemplo, estos filtros se emplearán más delante en "$ de forma automática para
seguir un flujo "$. or tanto, para volver a visualizar todos los paquetes capturados es
necesario limpiar este filtro de visualización, bien con la opción correspondiente (clear
filter), o bien empleando un filtro vac#o (l#nea en blanco).
2.1 Expresiones de filtros de captura
ara seleccionar qué paquetes serán capturados se emplea una e1presión de filtro, de forma
que el paquete será almacenado si cumple con los criterios del filtro (la e1presión se eval8a
a true). 7as e1presiones de filtro se emplean siempre en min8sculas, ! consisten en una o
varias primitivas conectadas mediante operadores lógicos (and, or, not). $ada una de estas
primitivas constan de un identificador precedido, al menos, de alguno de los siguientes tres
tipos de calificadores3
9 *e tipo3 4ndican a qué hace referencia el identificador
-. $omputadores concretos (host). or ejemplo, el filtro3 host 158.42.180.62
captura todas las tramas dirigidas o procedentes de esa dirección 4.
:. )edes concretas (net). or ejemplo, el filtro3 net 158.42 captura todas las tramas
dirigidas o procedentes de dicha red 4.
;. uertos determinados (port). (s#, el filtro3 port 7 captura todas las tramas dirigidas o
procedentes del puerto < de cualquier computador, tanto "$ como 5*.
=i no se especifica el tipo se asume el tipo host. "ambién se encuentra especificado el
identificador broadcast, que permite hacer referencia a las direcciones de difusión.
9 *e dirección3 Especifican si el identificador debe entenderse sobre el origen, el destino o
ambos. 7os calificadores de dirección posibles son src, dst, src or dst, ! src and
dst. =e aplicarán sobre alguno de los calificadores de tipo. Ejemplos3
src 158.42.181.18
src port 25
src or dst net 158.42
9 *e protocolo3 4ndican un tipo de protocolo. En nuestro caso resultan de interés los
protocolos arp, ip, icmp, tcp, o udp. $omo norma general, no e1isten calificadores de
nivel de aplicación, debiendo emplearse el n8mero de puerto ! protocolo de transporte para
capturar el tráfico correspondiente a un protocolo de aplicación concreto.
=e pueden combinar varias primitivas mediante los conectores and ! or. "ambién es
posible usar el operador not.
Ejemplo3 udp and dst 158.42.148.3
Esto mismo es aplicable también los identificadores.
Ejemplo3 dst 158.42.181.4 or 158.42.181.15
"ambién se puede hacer uso de paréntesis para indicar las precedencias deseadas.
Ejemplo3 dst 158.42.181.4 and (udp or icmp)
En los ejercicios de esta práctica se propone el uso de diferentes filtros que se pueden
deducir a partir de esta introducción.
3. La orden ping
ara comenzar, estudiaremos la orden ping. $omo sabemos, la orden ping genera paquetes
4$2 de tipo echo request ! echo reply. ( continuación comprobaremos el funcionamiento
de la misma.
Ejercicio 2:
)ealiza una captura de los paquetes 4$2 generados tras la ejecución de la orden ping
www.elpais.com (plica un filtro que te permita capturar 8nicamente los paquetes que
contengan mensajes del protocolo 4$2. *etén la captura cuando terminen los cuatro
intentos ! observa cuántos mensajes 4$2 se producen, prestando especial atención a los
campos tipo, código, ! ytes de datos. (simismo, analiza las cabeceras 4 de cada uno de
ellos, ! en concreto los campos longitud de la caecera, longitud total ! ytes de datos.
!. El protocolo "#$
El protocolo *+=, que emplea habitualmente el puerto >; de 5*, es imprescindible para
poder denominar a los computadores mediante nombres simbólicos, sin tener que recordar
las direcciones 4 correspondientes a cada computador. ( continuación observaremos el
funcionamiento del *+=, as# como su utilización por parte de la orden ping.
Ejercicio 3:
2odifica el filtro para que encuentre la consulta *+= ! toma una nueva captura,
escribiendo la orden ping www.nba.com. "en en cuenta que no será posible filtrar
paquetes en función del protocolo de aplicación *+= ! deberás, por tanto, pensar en otra
alternativa. E1amina el contenido del datagrama 5* ! f#jate en los n8meros de puerto
implicados en la transmisión.
)ealiza de nuevo la misma captura, pero esta vez sustitu!e en la orden ping el nombre de la
máquina donde se aloja la página de la nba por su dirección 4. 5na vez realizada la
captura comprueba, observando los paquetes capturados, que no se ha realizado ninguna
consulta al *+=.
%. El protocolo &'(
ara que un datagrama llegue a su destino es necesario especificar, además de la dirección
4 destino, la dirección f#sica del adaptador de red que debe recibir la trama en la que viaja
el datagrama. Este adaptador de red puede ser el del host destino o bien el de un router
intermedio.
recisamente, para averiguar la dirección f#sica que corresponde a una dirección 4
determinada se creó el protocolo (), del que !a hemos hablado en clase (! habéis
disfrutado con él haciendo los problemas de encaminamiento 4). ?amos a retomar de
nuevo el estudio de este protocolo.
Ejercicio !:
'orra las entradas de tu cache de (). $aptura el tráfico generado por la ejecución de la
orden ping www.barrapunto.co modificando el filtro de la captura anterior para que inclu!a
los paquetes del protocolo () (sólo los de tu máquina). /=e ha generado alg8n paquete
() para enviar la trama que contiene la petición a barrapunto0. ?uelve a realizar de
nuevo la captura (no dejes pasar mucho tiempo). @ ahora, /se han vuelto a generar paquetes
()0 /or qué0
#ota3 como sabes, puedes conocer la dirección f#sica de la tarjeta de red de tu ordenador
mediante la orden ipconfig. (demás, recuerda que puedes consultar la tabla () con arp
)a.
*. La orden traceroute
7a orden tracert+traceroute permite registrar la ruta seguida por un datagrama hasta un
destino determinado. =u funcionamiento se basa en mensajes 4$2 (o peticiones a puertos
no privilegiados mu! poco utilizados) ! en la variación del parámetro ""7 de las
cabeceras 4.
Ejercicio ,:
$aptura los paquetes 4 derivados de la ejecución de la orden tracert ---.rae.es.
Enumera cuántos tipos distintos de paquetes se han obtenido ! cuál es su función,
comprobando cómo aumenta el ""7 en cada mensaje 4$2 enviado.
/$uál es el tipo ! el código de los mensajes 4$2 timeAtoAlive e1ceeded0 /or qué crees
que aparecen ; mensajes de este tipo desde cada router del camino0 /$ómo sabe nuestra
máquina que ha llegado a la máquina final0
.. (rotocolos de ni/el de transporte
En este apartado vamos a emplear WireShark para observar el funcionamiento de los
protocolos "$ ! 5* de nivel de transporte.
Ejercicio *:
(bre el navegador. Establece el filtro adecuado para capturar todos los paquetes "$ !
5* de tu máquina.
*esde el navegador solicita una página %eb (por ejemplo3 %%%.nba.com). $uando la
página ha!a cargador detén la captura.
/$uántos paquetes 5* has capturado0 /$uántos "$0
Estudia los segmentos que has obtenido en la captura ! usca los pa0uetes de
estalecimiento de la conexión 1triple apretón de manos2 y los pa0uetes de fin de
conexión.