Está en la página 1de 10

Laboratorio de Fundamentos de Telemática

1º I. T. Telecomunicación, especialidad Telemática

Práctica 7. Analizador de red WireShark


En esta práctica (última práctica del curso) vamos a empezar a utilizar un analizador de
protocolos de red (conocido coloquialmente como “sniffer”). Veremos sus funciones
principales y cómo emplearlo para estudiar algunos protocolos sencillos, como ICMP
(el protocolo del comando PING, ver apartado 2.4 del guión de la práctica 1 para
recordarlo) o HTTP (el protocolo utilizado para acceder a páginas web).

Apartado 1. Pantalla principal del analizador WireShark

En la siguiente figura se presenta un ejemplo de la pantalla principal del programa, en la


que se pueden ver los distintos elementos que la componen, cuya descripción se da a
continuación.

A B CD

Figura 1. Pantalla principal de WireShark

1. Panel de lista de paquetes: muestra un resumen de cada paquete capturado.


Pulsando sobre los paquetes de este panel se controla el contenido de los otros
dos paneles.

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 1


Área de Ingeniería Telemática. Dpto. Informática
2. Panel de vista en árbol: muestra el paquete seleccionado en el panel superior
(1) con más detalle, permitiendo acceder a los distintos niveles de protocolos. Al
pulsar sobre cada uno de los niveles se resaltan los datos del paquete
correspondientes a dicho nivel en el panel inferior (3).
3. Panel de detalle de los datos: muestra el contenido del paquete seleccionado en
el panel superior (1) en formato hexadecimal y ASCII.

Además de los tres paneles principales, tenemos los cuatro elementos adicionales
siguientes en la parte superior de la pantalla de WireShark:

A. Botón de filtro: permite definir un filtro para la visualización de los paquetes,


de forma que podamos concentrarnos en el análisis de un determinado protocolo
o en el tráfico entrante o saliente de un ordenador determinado.
B. Texto del filtro: aquí aparece el texto del filtro. Es posible introducir el texto
del filtro directamente en este campo y seleccionar alguno de los filtros que se
hayan utilizado anteriormente.
C. Botón para eliminar el filtro: pulsando este botón se elimina el filtro que
estuviera activo, presentándose en el panel principal (1) todos los paquetes
capturados.
D. Botón para aplicar filtro: pulsando este botón se aplica el filtro definido y en
el panel principal (1) se muestran únicamente los paquetes que cumplan las
condiciones indicadas en el filtro.

Apartado 2. Comienzo de una sesión de captura

La captura de paquetes se activa mediante la opción del menú Capture > Options ….
Al hacerlo aparece el siguiente cuadro de diálogo.

Figura 2. Ventana de opciones para iniciar la captura

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 2


Área de Ingeniería Telemática. Dpto. Informática
Debemos especificar la interfaz de red sobre la que vamos a capturar los paquetes,
utilizando para ello el cuadro denominado Interface, situado en parte superior del
cuadro de diálogo mostrado en la figura anterior. Si el ordenador dispone de módem o
tiene varias tarjetas de red, tendremos que seleccionar la que queramos analizar. El resto
de opciones podemos dejarlas, de momento, con los valores predeterminados.

Antes de comenzar la captura desmarca, en el cuadro de diálogo mostrado en la figura


2, la opción Hide Capture Info Dialog, en el apartado Display options. De esta
manera, cuando pulses sobre el botón Start comenzará el proceso de captura y podrás
observar su evolución en un cuadro como el de la siguiente figura.

Figura 3. Ventana de progreso de la captura

Aquí podremos ver el número de paquetes capturados de los principales protocolos que
maneja WireShark. También podremos detener la captura pulsando sobre el botón Stop.
Una vez terminada una sesión de captura, en la ventana principal aparecerá la
información de los paquetes capturados, como se muestra en la figura 1.

También existe la opción de presentar la información de los paquetes capturados según


se van capturando. Para ello, es necesario activar la casilla Update list of packets in
real time, que se encuentra en la sección Display options del cuadro de diálogo de
opciones de captura (figura 2, que aparece seleccionando la opción del menú Capture >
Options …)

Apartado 3. Filtrado de información

Dada la enorme cantidad de información que circula por una tarjeta de red mientras está
funcionando, resulta especialmente útil poder limitar de alguna manera dicha

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 3


Área de Ingeniería Telemática. Dpto. Informática
información, para poder concentrarse en el análisis del tráfico de red concreto que
interese estudiar.

WireShark ofrece numerosas posibilidades de filtrado de información, que básicamente


consisten en la selección de protocolos, la definición de un filtro de captura y la
definición de un filtro de presentación de la información. La utilización de cada una de
estas opciones se detalla en los siguientes apartados.

3.1 Protocolos

Como primer nivel de filtrado, podemos escoger los protocolos con los que deseamos
trabajar. La lista completa de protocolos que maneja WireShark puede verse en un
cuadro de diálogo al que podremos acceder mediante la opción del menú Analyze >
Enabled Protocols… En dicho cuadro de diálogo, que se presenta a continuación,
podemos activar o desactivar la utilización de los protocolos que deseemos.

Figura 4. Ventana de activación/desactivación de protocolos

A la hora de activar o desactivar protocolos, debemos tener en cuenta la advertencia que


aparece en este cuadro de diálogo, y que indica que, si desactivamos un protocolo, no
aparecerán los protocolos de los niveles superiores que dependen de él. Por ejemplo, si
desactivamos el protocolo de nivel de transporte (nivel 4 – OSI) TCP, no aparecerán
tampoco todos los protocolos de nivel de aplicación (nivel 7 – OSI) que dependan de él,
como HTTP, SMTP, FTP y muchos otros.

Para realizar las tareas de esta práctica dejaremos activados inicialmente todos los
protocolos que maneja el programa. No obstante, el alumno puede experimentar con la

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 4


Área de Ingeniería Telemática. Dpto. Informática
activación y desactivación de alguno de estos protocolos para comprobar el efecto que
tiene.

3.2 Captura

El siguiente nivel de filtrado que ofrece WireShark se aplica al proceso de captura de


los paquetes de red. Podemos definir un filtro que capture únicamente los paquetes de
un determinado protocolo o destinados a un determinado ordenador o puerto. La
utilización de un filtro se realiza en el cuadro de diálogo de opciones de captura (figura
2), introduciendo la expresión del filtro en el cuadro de texto situado al lado del botón
Capture Filter.

En esta práctica no vamos a detenernos a estudiar los filtros de captura, pero el alumno
puede experimentar con diversas expresiones de filtro para comprobar su efecto. Por
ejemplo, la siguiente expresión:
tcp port 80 and host 192.168.1.5

forzará la captura únicamente de los paquetes del protocolo TCP con origen o destino en
el puerto 80 y cuyo origen o destino sea un ordenador con dirección IP 192.168.1.5.

Otra posibilidad de filtrado a la hora de capturar paquetes consiste en desactivar el


modo “promiscuo”, de forma que sólo se capturen los paquetes originados o destinados
a nuestro ordenador. Para ello, sólo tendremos que desmarcar la casilla denominada
Capture packets in promiscuous mode en el cuadro de diálogo de opciones de captura
(figura 2). Es recomendable desactivar el modo “promiscuo” en cualquier caso porque,
si está activado, WireShark capturará multitud de paquetes correspondientes a otros
ordenadores, lo que complicará el análisis de la información que nos interesa.

3.3 Presentación

El último nivel de filtrado de que disponemos en WireShark es el de presentación de los


paquetes. Podemos definir un filtro mediante el cual seleccionemos, para que se vean en
el panel principal (1), únicamente aquellos paquetes de datos que nos interesa analizar.
Este tipo de filtro es el más completo y en su expresión se pueden utilizar la mayor parte
de los parámetros de lo protocolos que estamos analizando.

Para utilizar un filtro de presentación podemos escribir su expresión directamente en el


recuadro de texto del filtro (B) y aplicarlo mediante el botón Apply (D) [figura 1].
Tenemos otra alternativa, que consiste en pulsar el botón de filtro (A). Al hacerlo
aparece el cuadro de diálogo de definición del filtro que tiene el siguiente aspecto:

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 5


Área de Ingeniería Telemática. Dpto. Informática
Figura 5. Ventana de definición del filtro de presentación

Con este cuadro de diálogo podemos definir diversos filtros, asignándoles distintos
nombres para su posterior aplicación. También podemos acceder a este cuadro de
diálogo mediante la opción del menú Analyze > Display Filters …

Si no conocemos la sintaxis de los filtros o los parámetros que podemos emplear en los
mismos, podemos utilizar el botón Expresión… para crear una expresión de forma
visual. Al pulsarlo accedemos al siguiente cuadro de diálogo:

Figura 6. Ventana de creación de expresión del filtro

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 6


Área de Ingeniería Telemática. Dpto. Informática
En la figura vemos cómo definir un filtro para mostrar los paquetes de datos cuya
dirección IP de origen o de destino sea la 192.168.1.1. La expresión que se genera para
este filtro es:

ip.addr = = 192.168.1.1

3.3.1 Más ejemplos de filtros de presentación

Vamos a ver, por último, algunos ejemplos adicionales de filtros de presentación.

1. tcp
Es el tipo de filtro más sencillo, e indica que se presenten sólo los paquetes de datos
del protocolo TCP.

2. ip.proto = = 1 and ip.src = = 192.168.123.100


Con este filtro seleccionamos los paquetes cuyo protocolo IP sea el 1 (el
correspondiente a ICMP, el del comando PING) y cuya dirección IP origen sea la
192.168.123.100

3. (ip.addr = = 192.168.123.100 and ip.addr = = 192.168.123.101) and


(tcp.port = = 1028 and tcp.port = = 80)
Este filtro es algo más complejo, e indica que se presenten los paquetes cuya
dirección IP de origen sea la 192.168.123.100 y su dirección IP de destino sea la
192.168.123.101 (o viceversa) y cuyo puerto TCP de origen sea el 1028 y su puerto
TCP de destino sea el 80 (o viceversa)

Apartado 4. Experimentos con diversos protocolos

Se propone al alumno que, una vez familiarizado con el funcionamiento del analizador
de protocolos, realice los siguientes experimentos.

4.1 Protocolo ICMP

Este protocolo (Internet Control Message Protocol – Protocolo de mensajes de control


de Internet) se emplea para comprobar el estado de las redes. Su funcionamiento básico
consiste en enviar un paquete de datos destinado a una determinada dirección IP y en
ver el tiempo que tarda en recibirse la respuesta a dicho paquete. Se emplea para ver si
existe conectividad de red entre el ordenador desde el que se emite el comando y el
ordenador con el nombre o la dirección IP indicada en el comando (este concepto ya se
había comentado en el apartado 2.4 de la práctica 1, para probar su funcionamiento con
el Packet Tracer).

Para analizar la estructura de este protocolo con WireShark, vamos a seguir los pasos
que se indican a continuación:

1. Activar la captura de paquetes.


2. Abrir una ventana de línea de comandos (Inicio > Ejecutar… > Abrir: cmd >
Aceptar).

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 7


Área de Ingeniería Telemática. Dpto. Informática
3. Ejecutar el comando ping sun.rediris.es en la ventana anterior.
4. Cuando termine la ejecución del comando ping, detener la captura de paquetes.
5. Examinar los paquetes capturados en los paneles (1), (2) y (3) de la ventana
principal de WireShark.

Si no hemos activado ningún tipo de filtro, ni de protocolo ni de captura, además de los


paquetes que nos interesa analizar, en el panel (1) aparecerán bastantes paquetes más.
Para facilitar el análisis, es recomendable aplicar un filtro de presentación para que sólo
aparezcan los paquetes de este protocolo. Para ello bastará con escribir icmp en el
campo texto de filtro (B) de la ventana principal y pulsar el botón Apply (D).

Si todo ha ido bien, al aplicar el filtro deberán aparecer 8 paquetes, 4 de ellos


correspondientes a las solicitudes (request) y los otros 4 correspondientes a las
respuestas (reply). Es posible que, aún con el filtro de protocolo, en el panel (1) veamos
más paquetes de los que nos interesa. Se deberá, probablemente, a que otros
compañeros están ejecutando la misma prueba y WireShark está capturando también el
tráfico que envían, que al corresponder al mismo protocolo aparecerá igualmente en el
panel (1). Para evitar este problema y ver únicamente los datos enviados o recibidos por
nuestro ordenador tenemos dos alternativas:

1. Desactivar el modo “promiscuo”, tal como se explicó en el apartado de los


filtros de captura de paquetes (antes de hacer la captura).
2. Modificar el filtro de presentación, añadiéndole la condición de filtrar también
por dirección IP, de la siguiente manera: icmp and ip.addr = = 192.168.123.100.
Como es lógico, en lugar de 192.168.123.100 deberemos indicar la dirección IP
de nuestro ordenador. Si no la conocemos, deberemos ejecutar el comando
ipconfig en una ventana de línea de comandos para descubrirla.

Para comprobar el funcionamiento del protocolo en otras condiciones, repetiremos el


experimento anterior ejecutando el comando ping –l 5000 sun.rediris.es en el paso 3.
Con el parámetro –l le indicamos al comando que envíe 5000 bytes de datos (el
comportamiento predeterminado del comando, si no se especifica este parámetro, es
enviar 32 bytes). Como se trata de un tamaño bastante grande, podremos observar cómo
se fragmenta el paquete de datos al enviarlo a la red (los fragmentos no aparecerán
como protocolo ICMP).

4.2 Protocolo HTTP

Este protocolo es el empleado para acceder a páginas web a través de Internet. En esta
práctica no vamos a entrar en los detalles de su funcionamiento, pero nos va a servir
para probar una de las funcionalidades más interesantes de WireShark, que es el
seguimiento de un flujo TCP.

Como en el caso de ICMP, para analizar la estructura de este protocolo con WireShark
vamos a seguir los pasos que se indican a continuación:

1. Activar la captura de paquetes.


2. Lanzar un navegador web (como Internet Explorer o Mozilla Firefox) y acceder
a cualquier página, como, p.ej., www.uniovi.es.
3. Cuando termine la carga de la página, detener la captura de paquetes.

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 8


Área de Ingeniería Telemática. Dpto. Informática
4. Examinar los paquetes capturados en los paneles (1), (2) y (3) de la ventana
principal de WireShark.

También en este caso deberemos aplicar un filtro de presentación, para que aparezcan
únicamente los paquetes que nos interesa analizar. La expresión del filtro deberá ser
similar a la número 3 presentada en el apartado 3.3.1.

WireShark ofrece una funcionalidad que facilita la creación de la expresión del filtro si,
como ocurre en este caso, queremos que aparezcan únicamente los datos de una sesión
TCP (concretamente, el acceso a una página web). Para utilizar esta funcionalidad
debemos identificar algún paquete perteneciente a la sesión que nos ocupa, fácilmente
localizable porque la dirección IP de origen debe ser la de nuestro ordenador y el puerto
TCP de destino debe ser el 80, el habitual en la mayor parte de los servidores web de
Internet.

Una vez localizado algún paquete de la sesión, bastará con pulsar con el botón derecho
del ratón sobre él en el panel (1) y seleccionar la opción Follow TCP Stream en el
menú emergente que aparecerá. Al hacerlo, además de crearse la expresión del filtro
adecuada en el recuadro de texto del filtro (B), aparecerá una ventana adicional en la
que se mostrará todo el contenido de la sesión TCP correspondiente, como puede verse
en la figura siguiente:

A Figura 7. Sesión TCP (peticiones http de página web)

En esta ventana podemos seleccionar ver toda la conversación que ha tenido lugar entre
nuestro navegador web (cuyas peticiones se muestran en color rojo) y el servidor web

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 9


Área de Ingeniería Telemática. Dpto. Informática
(cuyas respuestas se muestran en color azul) o ver únicamente las peticiones del cliente
o las respuestas del servidor (selector A en la figura 7).

4.3 Otros protocolos

El alumno puede experimentar libremente con otros protocolos, como FTP o TELNET
y analizar la composición de los paquetes de datos para dichos protocolos.

Apartado 5. Notas adicionales y ejercicios

El analizador de protocolos WireShark que se ha utilizado en esta práctica es una


herramienta de dominio público, cuyo uso y distribución son completamente gratuitos.
La versión más reciente de este programa puede encontrarse en la siguiente dirección
web: http://www.wireshark.org/download.html.

---Sobre el protocolo ICMP


Realiza una sesión de captura del protocolo ICMP (tal como vimos en el apartado 4.1) sobre un
dominio de tu elección y responde a las siguientes preguntas:

-Examina la primera petición ICMP y concretamente el paquete IP enviado:


¿Cuál es la IP de origen y destino? ¿Qué tipo de protocolo es ICMP al observar el protocolo
sobre el que apoya (seguro /no seguro) ¿Qué significa el TTL y qué valor tiene?

-Examina la primera petición ICMP y pero ahora el mensaje ICMP:


¿Qué tipo de mensaje es? ¿Cuál es el identificador y el número de secuencia? Identifica los bytes
de datos y los correspondientes caracteres enviados? (Parte 3 de la pantalla principal del
WireShark)

-Examina la primera respuesta ICMP y concretamente el paquete IP recibido:


¿Cuál es la IP de origen y destino? ¿Qué valor tiene TTL y qué significa en relación a lo que
contenía en la petición (busca información sobre esto en la Web)?

-Examina la primera respuesta ICMP y pero ahora el mensaje ICMP:


¿Qué tipo de mensaje es? ¿Cuál es el identificador y el número de secuencia? Compáralo con los
que tenías en la petición.
Identifica los bytes de datos y los correspondientes caracteres enviados y compáralos con los de
la petición.

-Repite los anteriores apartados para el resto de mensajes ICMP provocados por el comando PING
y responde a las siguientes cuestiones:
¿Cómo cambian el número de secuencia y los identificadores con el tiempo?
¿Cambian los datos transportados?

Laboratorio de Fundamentos de Telemática. Curso 2007/2008. 10


Área de Ingeniería Telemática. Dpto. Informática

También podría gustarte