Anlisis de trfico Ethernet
Vicente González Ruiz
December 26, 2013
Contents
1 Introduccin
Todas las comunicaciones que se producen en redes de computadoras se basan en la
transmisin de paquetes de datos. Unas veces estos paquetes son generados
por nuestra computadora, otras van dirigidos deste otro host a sta y en
otras ocasiones, los paquetes simplemente pasan cerca de ella y es posible
capturarlos.
En esta prctica vamos a usar un analizador de trfico conocido por Wireshark para
ver la estructura y el contenido de frames.
Wireshark, por defecto, funciona en modo promiscuo, capturando todos los
paquetes de datos que llegan hasta el interfaz de red seleccionado. Si se utiliza el
modo no promiscuo, slo aquellos paquetes que el sistema operativo reconoce como
suyos
sern capturados. Para esta prctica es indiferente el modo que usemos, aunque debe
saberse que el modo promscuo slo puede ser usado por el administrador del sistema
opertivo.
2 Lanzando Wireshark
Preferiblemente como administrador (revsese el Apndice ??), ejecute el comando:
root# wireshark &
Debera aparecer una ventana semejante a lo que aparece en la Figura
1. Si el comando anterior fallase es muy probable que Wireshark no est instalado.
Revise el Apndice ?? para solucionar este problema.
3 Seleccin del interface de red
Wireshark posee una serie de botones que facilitan su uso. Antes de comenzar una
captura es necesario indicar a Wireshark de qu interface de red queremos
capturar. Para ello hay que pinchar en el botn que se muestra en la Figura
2. Tras pinchar en dicho botn, aparecer una ventana semejante a la que aparece
en la Figura
3.
Como mnimo, deberamos poder elegir entre eth0 y lo. eth0 es el primer
adaptador de red Ethernet. lo es el interface loopback (lazo de retorno) que se
utiliza para que los procesos que corren dentro de la misma mquina puedan
comunicarse entre s, de forma similar a si estuvieran en mquinas diferentes. El
adaptador lo siempre existe y lo simula el sistema operativo, independientemente
de que tengamos o no hardware de red. Por ejemplo, para seleccionar el
interface de red eth1, debera pincharse en el botn especificado en la Figura
4.
4 Capturando paquetes
Tras seleccionar el interface de red deseado, Wireshark comienza la captura y los
paquetes capturados aparecen en una ventana como la que se presenta en la Figura
5. Dicha ventana se divide en tres grandes reas, que descritas desde arriba hacia
abajo contienen:
- Una lista de paquetes capturados, en tiempo real, y que tiene 6 columnas:
- El ndice del paquete en la sesin de captura. Los paquetes por defecto
se ordenan en funcin de su instante de captura.
- El instante en que se ha capturado el paquete.
- La direccin IP (o en su defecto la direccin fsica) del interface de red
del que ha partido el paquete.
- La direccin IP (o en su defecto la direccin fsica) del interface de red
al que va dirigido el paquete.
- El protocolo de ms alto nivel que es usado por el paquete.
- Informacin extra sobre el contenido del paquete.
En algunas situaciones puede ser interesante ordenar los paquetes siguiendo
otro orden distinto del usado por defecto (el temporal). Los paquetes pueden
ordenarse por cualquiera de estos campos pinchando con el ratn en el
encabezado de la columna correspondiente.
- Los detalles sobre la cabecera del paquete seleccionado en la lista de
paquetes.
- El contenido del paquete (includa la cabecera) en hexadecimal y ASCII.
5 Finalizacin de la captura
Aunque Wireshark puede estar durante horas capturando paquetes sin queja
alguna, lo ms frecuente es detener la captura tras un cierto tiempo prudencial,
por ejemplo, cuando sepamos que los paquetes que deseamos ya han sido
capturados.
Esto se consigue pinchando en el botn que se muestra en la Figura
6.
6 Encapsulamiento de paquetes y niveles OSI
Una de las principales utilidades de Wireshark radica en la facilidad de uso de cara a
determinar cmo se ha realizado el proceso de encapsulamiento, es decir, cmo unos
paquetes de datos contienen a otros paquetes a diferentes niveles de la jerarqua de
capas del modelo OSI. En la ventana central aparecen las distintas cabeceras que se
han generado por cada uno de estos niveles.
Podemos conocer el contenido concreto de cada una de estas cabeceras pulsando
con el botn derecho del ratn en el tringulo asociado.
7 Los filtros
Es posible configurar Wireshark para que capture slo aquellos paquetes que nos
interesen (lo que es especialmente til si existe mucho trfico no deseado). Por ejemplo,
si desactivamos el modo promiscuo, slo capturaramos los paquetes que van dirigidos a
nuestro adaptador de red.
Adems pueden definirse filtros mucho ms sofisticados, tanto a la hora de capturar
como de visualizar. A continuacin se muestran una serie de ejemplos (vase
http://www.wireshark.org/docs/dfref para saber qu camos pueden ser
filtrados):
- http. Filtra (muestra slo) los paquetes que contienen trfico HTTP.
- ip. Slo trfico IP.
- frame contais "wireshark". Slo aquellos paquetes que contienen la
cadena “wireshark”.
- http contains "http://www.wireshark.org";. Slo trfico HTTP, pero
que se dirige o proviene de www.wireshark.org.
- lower(http) contains "http://www.wireshark.org";. Idem que el
ejemplo anterior, pero insensible a las maysculas o
minsculas. upper(http) contains "HTTP://WWW.WIRESHARK.ORG";. La
otra posibilidad, con idntico resultado.
- ip.addr == 150.215.156.2. Slo aquellos paquetes IP que vengan o vayan
a 150.215.156.2.
- http.request.method == "GET". Slo aquellos paquetes HTTP que sean
un GET.
- http.request.method == 47.45.54. Idem al anterior (nota
ASCII(’G’)=47 ...).
- frame.pkt_len > 10. Slo aquellos paquetes, que a nivel de enlace, tengan
ms de 10 bytes de londigud.
- eth.dst != ff:ff:ff:ff:ff:ff. Slo aquellos paquetes Ethernet que no
vayan dirigidos a la direccin de broadcast de la subred.
- echo.request == 1. Slo los paquetes ICMP echo request.
- ip.dst == www.mit.edu. Slo aquellos paquetes IP con destino
www.mit.edu.
- ip.addr == 129.111.0.0/16. Slo aquellos paquetes IP que vengan o
vayan a la red 129.111.0.0/16.
- ip.addr == gogh.ace.ual.es/24. Slo aquellos paquetes IP que vengan
o vayan a la red donde est gogh.ace.ual.es.
- eth.src[0:3] == 00:00:83. Slo aquellos paquetes Ethernet que
provengan de direcciones que comiencen por 00:00:83.
- tcp.flags & 0x02. Slo aquellos paquetes que contienen una cabecera
TCP, y el campo flags de dicha cabecera tiene el segundo bit de menos
peso igual a 1.
- ip[42:2] & 40:ff. Slo aquellos paquetes que contienen una cabecera IP,
y los bytes de ndice 42 y 43 valen 0x40 y 0xFF, respectivamente.
- tcp.port == 80 and ip.src == 192.168.2.1. Slo aquellos paquetes
que vayan o vengan al puerto 80, usen el TCP y vayan o vengan de la
direccin IP 192.168.2.1.
- http and frame[100-199] contains "wireshark".
Slo aquellos paquetes que sean trfico HTTP y adems contengan la cadena
“wireshark” entre los 100 bytes a partir del byte 100.
- not http. Slo aquellos paquetes que no sean trfico HTTP.
- ip.addr ne 192.168.4.1. Slo aquellos paquetes que tengan una cabecera
IP
en la que figure una direccin IP que no sea la 192.168.4.1.
- not ip.addr eq 192.168.4.1. Slo aquellos paquetes que contengan una
cabecera IP y en la que ninguna de las direcciones IP sean igual a
192.168.4.1.
Ejercicio 1:
- Lance un navegador Web.
- Inicie el proceso de captura de paquetes.
- Acceda a una pgina Web, como por ejemplo www.google.es.
- Detenga el proceso de captura de paquetes.
Y si todo ha ido bien, debera poder responder a las siguientes
preguntas:
- ¿Qu protocolo de (1) la capa de aplicacin, (2) transporte, (3)
red y (4) enlace de datos ha usado?
- ¿Cuntos frames Ethernet ha enviado? Una forma sencilla de
contestar esta pregunta es filtrar los paquetes de manera que slo
se muestren aquellos que tienen como direccin fsica de partida,
la de su adaptador de red.
- ¿Cuntos ha recibido?
- Segn el campo Type de la cabecera Ethernet del primer paquete
que ha enviado, ¿qu protocolo(s) de la capa de red ha usado?
- Indique cul es la direccin fsica del adaptador de red del que han
partido los paquetes de ida.
- ¿Dnde est pinchado dicho adaptador?
- Indique cul es la direccin fsica del adaptador de red al que han
sido dirigidos los paquetes de vuelta.
- ¿Dnde est pinchado dicho adaptador?
- ¿Cul es la direccin IP del adaptador de red de ida?
- ¿Cul es la direccin IP del adaptador de red de vuelta?
- ¿Coincide dicha direccin IP con la de www.google.es?
- Basndose en el anlisis que realiza Wireshark, haga un esquema
de la estructura de los paquetes Ethernet, indicando cuntos
campos existen, qu tamao tienen y qu contiene cada uno de
ellos.