You are on page 1of 7

MANUAL DE USO DE WIRESHARK

Wireshark es un capturador y analizador de protocolos de red (sniffer), utilizado para resolver problemas de red. Wireshark permite ver, aun nivel bajo y detallado, todo el trfico que pasa a travs de la red. Adems es gratuito, open source, multiplataforma (Windows,Linux) y mltiples interfaces fsicas, aunque la ,s usada es Ethernet. Posee una interfaz grfica y muchas opciones de organizacin y filtrado de informacin. El software puede obtenerse de forma gratuita de www.wireshark.org. Este programa es una evolucin del conocido como Ethereal, pero su principal desarrollador pas a trabajar para otra empresa y por problemas de registro de marcas tuvo que cambiarle el nombre. Wireshark tiene una interfaz grfica. Cuando se utiliza sobre una interfaz Ethernet puede funcionar en modo promiscuo y capturar todas las tramas de la red, o bien en modo no promiscuo y capturar solo las tramas dirigidas a su interfaz. Aunque posee muchas opciones de inicio, lo ms normal es ejecutarlo sin ningn tipo de opcin y configurarlo durante su uso. El funcionamiento es muy similar, por lo que esto no supone ningn problema.

La interfaz de usuario es bastante simple e intuitiva. Para capturar trfico de red, basta con pulsar Capture y seleccionar Capture options. Se abre una nueva ventana en la que debemos indicar que deseamos capturar por la interfaz Local (En Linux eth0) y de momento desmarcar la casilla de Capture packets in promiscuous mode, pulsando a continuacin Start.

Comenzar a capturar todo el trfico que llegue a nuestro computador. Cuando se tengan capturadas algunas tramas, detener el proceso de captura pulsando Detener (stop). La mayora del trfico capturado corresponde a trfico broadcast, por lo que en ciertos momentos el nmero de paquetes capturado puede ser elevado. La ventana se divide ahora en tres zonas. En la superior se muestra la lista de tramas/paquetes capturados, a razn de una lnea por paquete. En la intermedia se muestra en detalle la estructura del paquete seleccionado en la primera, y en la inferior se muestra el contenido del paquete en hexadecimal. Para analizar un paquete basta con pincharlo en la zona superior; entonces se
2

puede seleccionar alguno de los campos que aparecen en la zona intermedia y desglosarlo en sus partes si las tiene (por ejemplo ver en detalle los campos de la cabecera IP). Al seleccionar algn campo de la zona intermedia automticamente queda seleccionado en la inferior el contenido en hexadecimal correspondiente, con lo que es posible analizar el contenido con todo detalle.

El analizador interpreta los protocolos desde el nivel de enlace al nivel de aplicacin. La lista de protocolos que abarca para cada uno de los niveles es muy completa. En el ejemplo que aparece a continuacin se ha seleccionado en la zona superior la trama nmero 4; en la zona intermedia se ha seleccionado el campo Ethertype de la cabecera Ethernet y como puede verse en la zona inferior han quedado seleccionados automticamente los bytes 13 y 14 de la trama, que en este caso tienen el valor hexadecimal 0800, que es el Ehertype que corresponde al protocolo IP.

EJERCICIOS Pasa ahora a analizar la cabecera del protocolo IP. Hay 20 Bytes a analizar. Comprueba todos los campos y explica que significa cada uno. Como la captura suele recoger una gran cantidad de paquetes, el analizador posee la opcin de poder crear filtros que capturen tan solo los paquetes que cumplan unas determinadas condiciones. Los filtros se crean dentro de la ventana Capture options escribiendo el filtro deseado dentro de la opcin Capture filter. A partir de este momento, vamos a eliminar el trfico broadcast que llega a nuestro computador mediante el filtro: not ether host FF:FF:FF:FF:FF:FF que elimina en la captura todo el trfico broadcast existente en la red. Pon en marcha de nuevo la captura de paquetes y ejecuta en el DOS el comando traceroute t 16 macareo.pucp.edu.pe, explicando la respuesta obtenida. Pon en marcha el modo captura y utiliza ahora el comando ping para forzar el envo de mensajes ICMP. Intenta que los paquetes no lleguen a su destino poniendo un TTL bajo (opcin t del comando ping). Analiza los resultados obtenidos. Vamos a usar ahora el comando ping con paquetes IP que se hayan de fragmentar (opcin s) e intenta predecir cuantos fragmentos se producirn y de que tamao. Probar exactamente el comando ping c 1 s 4000 pucp.edu.pe Ahora con el analizador observa las tramas Ethernet y comprueba si fue correcta la prediccin. Observa las cabeceras y analiza si la informacin que contienen los campos de fragmentacin coincide con la que era de esperar.
4

Realiza ahora una conexin FTP a pucp.edu.pe. Cierra dicha conexin y analiza algunas de las tramas recibidas. Vamos a proceder ahora a trabajar en modo promiscuo. Para ello, marcaremos la casilla de Capture packets in promiscuous mode. Empezamos la captura y la detendremos cuando se hayan capturado algunos paquetes para analizar. Comprobaremos que ahora los paquetes tienen direcciones de origen y destino distintas a las de nuestro computador. Si deseamos seleccionar tan solo los paquetes que tengan un determinado origen, destino, opcin IP, etc., podemos crear nuestros propios filtros. Qu filtro permitira capturar tan solo los paquetes cuyo origen o destino es macareo.pucp.edu.pe Dentro de la pestaa Analyze existe la opcin Follow TCP Stream. Dicha opcin permite realizar el anlisis de una conexin TCP particular. Para utilizarlo seleccione uno de los paquetes TCP que hayas capturado y comprueba lo que obtienes. Esto se debe a que los computadores para el ejercicio estn conectados a un hub. En caso de que un computador est conectado a un switch, y dado que el switch solo enva por el puerto al que corresponde la direccin MAC, normalmente no recibiramos paquetes dirigidos a otros computadores. Crea ahora un filtro que capture tan solo los paquetes cuyo destino sea macareo.pucp.edu.pe y el protocolo sea TCP. Crea un filtro que capture las consultas realizadas a los DNS (paquetes con origen o destino el puerto 53 UDP). Crea un filtro que capture los paquetes IP de longitud menor de 200 Bytes. Crea un filtro que capture los paquetes que tengan un valor del campo TTL menor que 16. Crea un filtro que capture todos los paquete cuyo campo DF est a 1.

Filtros en wireshark.
En Wireshark es posible construir filtros que determinen si un determinado paquetes van a ser o no capturado. En caso de que no se utilice ningn filtro, todos los paquetes son capturados. Los filtros se construyen mediante expresiones que consisten en una o ms primitivas. Las primitivas, usualmente, consisten en un identificador (nombre o nmero), precedidas por uno o ms calificadores. Existen tres tipos diferentes de calificadores: De tipo: Identifican un nombre o direccin, sus posibles valores son host, net y port. Ejm.
host macareo.pucp.edu.pe Paquetes cuyo origen o destino es el macareo.pucp.edu.pe. net 147.156.0.0/16 Paquetes cuyo origen o destino es la red 147.156.0.0/16 port 20 Paquetes cuyo origen o destino es el puerto 20. Si no existe ningn calificador de tipo, se asume que el tipo es host. computador

De direccin: Identifican una direccin particular de transferencia, esto es, un origen o destino. Sus valores posibles son src, dst, src or dst y src and dst. Ejm.
src glup.uv.es Paquetes cuyo origen es el ordenador glup.uv.es. dst net 147.156.0.0/16 Paquetes destino es la red 147.156.0.0/16 src or dst port ftp-data Paquetes cuyo origen o destino es el puerto 20 (ftp-data). Si no se indica ningn calificador de direccin, se toma el calificador de direccin por defecto (src or dst).

De protocolo: Identifican un protocolo particular. Sus valores posibles son ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp y udp. Por ejemplo: Ejm.
ether src macareo.pucp.edu.pe Paquetes Ethernet cuyo origen es el computador macareo.pucp.edu.pe. arp net 147.156 Paquetes de protocolo ARP con origen o destino en la red 147.156. tcp port 21 Paquetes cuyo protocolo es TCP y origen o destino en el puerto 21. Si no se especifica ningn protocolo, todos los protocolos que sean consistentes con la identificacin de tipo son capturados. Si en algn momento se desea especificar una direccin Ethernet en el filtro, est debe especificarse como XX:XX:XX:XX:XX:XX

Como puede verse por la explicacin de los diferentes tipos de calificadores, siempre estn presentes, aunque sea por defecto, los tres tipos de calificadores. As, la expresin: ip 147.156.222.65 Es equivalente a: ip src or dst host 147.156.222.65 Pueden construirse filtros ms complejos mediante la combinacin de primitivas mediante la utilizacin de parntesis y/o las palabras and, or y not, siendo la prioridad de not mayor que la de and y or, cuya prioridad entre si es igual. Ejm.
host macareo.pucp.edu.pe and not port ftp

Indica que se capturen todos los paquetes cuyo origen o destino es macareo.pucp.edu.pe excepto aquellos cuyo puerto de origen o destino es el de ftp (puerto 21). Un listado de las primitivas ms utilizadas se encuentra en la siguiente tabla:

Primitiva
dst host <computador> src host <computador> host <computador> Ether dst <computador> Ether src <computador> Ether host <computador> dst net <red>

Descripcin

Verdad si el campo destino del paquete es el <computador>. Verdad si el campo origen del paquete es el <computador>. Verdad si el campo origen o destino del paquete es el <computador>. Verdad si la direccin ethernet de destino es el <computador>. Verdad si la direccin ethernet de origen es el <computador>. Verdad si la direccin ethernet de origen o destino es el <computador>. Verdad si la direccin de destino del paquete corresponde a una direccin de la <red>. src net <red> Verdad si la direccin de origen del paquete corresponde a una direccin de la <red>. net <red> Verdad si la direccin de origen o destino del paquete corresponde a una direccin de la <red>. dst net <red> mask <mascara> Verdad si la direccin de destino del paquete corresponde a una direccin de la <red> de mscara <mascara>. src net <red> mask <mascara> Verdad si la direccin de origen del paquete corresponde a una direccin de la <red> de mscara <mascara>.

Primitiva
net <red> mask <mascara> dst net <red>/<longitud> src net <red>/<longitud> net <red>/<longitud> dst port <puerto> src port <puerto> port <puerto> less <longitud> greater <longitud>

Descripcin
Verdad si las direccin de origen o destino del paquete corresponde a una direccin de la <red> de mscara <mascara>. Verdad si la direccin de destino del paquete corresponde a una direccin de la <red> cuya mscara se indica por <longitud>. Verdad si la direccin de origen del paquete corresponde a una direccin de la <red> cuya mscara se indica por <longitud>. Verdad si las direccin de origen o destino del paquete corresponde a una direccin de la <red> cuya mscara se indica por <longitud>. Verdad si el paquete tiene como destino el puerto dado por <puerto>8. Verdad si el paquete tiene como origen el puerto dado por <puerto>. Verdad si el paquete tiene como origen o destino el puerto dado por <puerto>. Verdad si el paquete tiene una longitud menor o igual que <longitud>. Verdad si el paquete tiene una longitud mayor o igual que <longitud>.

Adems de las expresiones anteriores, existen expresiones del tipo:


<expresin 1> <operador> <expresin 2>

Donde <operador> es uno de los operadores de comparacin <, >, <=, >=, = y != (menor, mayor, menor o igual, mayor o igual, igual y distinto). Por su parte, <expresin 1> y <expresin 2> son expresiones aritmticas compuestas por constantes enteras expresadas con la sintaxis de C/C++ y los operadores +, -, *, /, & y | (suma, resta, producto, divisin, and lgico y or lgico). Adems, existe una expresin especial que permite acceder a unos datos concretos del paquete. Esta expresin que permite el acceso a los datos de un paquete tiene la sintaxis:
protocolo [ desplazamiento : tamao]

Donde protocolo es uno de los protocolos validos (ether, fddi, tr, ip, arp, rarp, tcp, udp, icmp o ip6), desplazamiento es el desplazamiento, en Bytes, desde el comienzo de los datos del protocolo especificado (el primer Byte es el Byte cero), y tamao son los Bytes a analizar, tomando por defecto el valor de 1 Byte si no se especifica ningn valor. Por ejemplo:
ip[0 : 1] & 0x0F != 5

Esta expresin y las dos siguientes pueden ir precedidas de tcp udp, para indicar que solo se desea el puerto correspondiente al protocolo TCP UDP respectivamente. Indica todos los paquetes que contienen opciones IP (campo longitud de la cabecera con valor distinto de 5). Esta expresin tambin puede escribirse como:
ip[0] & 0x0F != 5

Teniendo en cuenta que si no se especifica el tamao se toma por defecto 1. Por otra parte, el siguiente ejemplo:
ip[6 : 2] & 0x1FFF == 0

Indica solo datagramas no fragmentados o el primer fragmento de los datagramas fragmentados (campo desplazamiento del fragmento igual a cero).

You might also like