Sei sulla pagina 1di 14

CURSO: 1º A.S.I.R.

– CICLO DE GRADO SUPERIOR DE INFORMÁTICA


INTRODUCCIÓN A WIRESHARK Y ETHERNET

En esta práctica se pretende adquirir las capacidades necesarias para capturar paquetes
usando la herramienta Wireshark.

1. Instala WireShark. (No es necesario, está instalado en la VM de Windows XP.


Ten en cuenta que la configuración de red de la VM debe ser Adaptador Puente).

2. Abre el programa y selecciona el interface de red en el que vas a realizar las


capturas, para que el programa empiece a capturar paquetes:

En la imagen, deberíamos pichar en el interface Microsoft.

3. Como 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. Tal cantidad de tráfico dificulta el análisis de los paquetes
capturados y aumenta innecesariamente el tamaño de los ficheros de captura, por
lo que se hace indispensable filtrar toda esa información.

1
Para filtrar los paquetes y facilitar el análisis del tráfico capturado podemos usar
dos alternativas, no excluyentes entre ellas. La 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 y mostrado en pantalla, mientras que
en caso contrario el paquete se descarta. La 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, y especificar un filtro para poder extraer entre todo ese tráfico capturado
aquellos paquetes que nos interesan. En cualquier caso, es posible usar un filtro
de captura y posteriormente, sobre los paquetes capturados, usar un filtro de
pantalla para ver mejor los detalles que estemos buscando en cada momento. Los
filtros de captura se pueden especificar desde la ventana de captura (Capture
Options). Podemos especificar un filtro escribiendo la expresión correspondiente
en la caja de texto situada junto al botón Capture Filter. La sintaxis de estas
expresiones se mostrará en el apartado siguiente.

Por otra parte, los filtros de pantalla se pueden especificar desde la parte superior
de la ventana principal de WireShark (Filter). La sintaxis 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, ya que
pueden, en ocasiones, llevar a error. Por ejemplo, estos filtros se emplearán más
delante en TCP de forma automática para seguir un flujo TCP. Por tanto, para
volver a visualizar todos los paquetes capturados es necesario limpiar este filtro
de visualización, bien con la opción correspondiente (clear), o bien empleando un
filtro vacío (línea en blanco).

Ejemplo de filtro de pantalla para visualizar los paquetes del protocolo ARP.

A continuación vemos cómo crear un filtro de pantalla:

a. Para seleccionar qué paquetes serán capturados se emplea una expresión


de filtro, de forma que el paquete será almacenado si cumple con los
criterios del filtro (la expresión se evalúa a true). Las expresiones de filtro
se emplean siempre en minúsculas, y consisten en una o varias primitivas
conectadas mediante operadores lógicos (and, or, not). Cada una de estas
primitivas constan de un identificador precedido, al menos, de alguno de
los siguientes tres tipos de calificadores:

• De tipo: Indican a qué hace referencia el identificador

1. Computadores concretos (host). Por ejemplo, el filtro: ip.host


== 158.42.180.62 captura todas las tramas dirigidas o procedentes
de esa dirección IP.

2. Redes concretas (net). Por ejemplo, el filtro: ip.net == 158.42


captura todas las tramas dirigidas o procedentes de dicha red IP.

2
3. Puertos determinados (port). Así, el filtro: tcp.port == 7 captura
todas las tramas dirigidas o procedentes del puerto 7 de cualquier
computador, del protocolo TCP.

Si no se especifica el tipo se asume el tipo host. También se


encuentra especificado el identificador broadcast, que permite
hacer referencia a las direcciones de difusión.

• De dirección: Especifican si el identificador debe entenderse sobre el


origen, el destino o ambos. Los calificadores de dirección posibles son src,
dst, src or dst, y src and dst. Se aplicarán sobre alguno de los calificadores
de tipo. Ejemplos:

ip.src == 158.42.181.18
tcp.port == 25

• De protocolo: Indican un tipo de protocolo. En nuestro caso resultan de


interés los protocolos arp, ip, icmp, tcp, o udp. Como norma general, no
existen calificadores de nivel de aplicación, debiendo emplearse el número
de puerto y protocolo de transporte para capturar el tráfico correspondiente
a un protocolo de aplicación concreto.

Se pueden combinar varias primitivas mediante los conectores and y or.


También es posible usar el operador not.

Ejemplo: udp and ip.dst == 158.42.148.3 (se mostrarían sólo los paquetes
del protocolo UDP y cuya dirección destino sea 158.42.148.3)

Esto mismo es aplicable también los identificadores.

Ejemplo: ip.dst == 158.42.181.4 or ip.dst == 158.42.181.15 (se mostrarían


sólo los paquetes cuyo destino sea las direcciones 158.42.181.4 o
158.42.181.15)

También se puede hacer uso de paréntesis para indicar las precedencias


deseadas.

Ejemplo: ip.dst == 158.42.181.4 and (udp or icmp) (se mostrarían sólo


los paquetes dirigidos a la dirección 158.42.181.4 y que además
pertenezcan a los protocolos UDP o ICMP).

RECUERDA PULSAR EL BOTÓN Apply PARA APLICAR EL


FILTRO Y EL BOTÓN Clear CUANDO YA NO TE SEA NECESARIO
EL FILTRO. CON EL BOTÓN Expression… PUEDES ENCONTRAR
AYUDA A LA HORA DE CREAR LOS FILTROS.

En los ejercicios de esta práctica y futuras prácticas se propone el uso de


diferentes filtros que se pueden especificar a partir del resumen expuesto
anteriormente.

3
4. (1 pto.) Ahora vas a realizar un pequeño ejercicio para lo que debes empezar a
capturar paquetes si no lo estás haciendo ya. Mientras la captura está activa usa tu
navegador para cargar algunas páginas (google, 20minutos, cineactual, por
ejemplo) de esta forma irás capturando los paquetes que se generen de dicha
navegación. Detén la captura (Capture  STOP o bien CTRL-E). Guarda el
fichero de captura con el nombre que quieras y rellena estos datos de la siguiente
tabla (lee lo que hay después de la tabla):

En CANTIDAD debes poner el número de paquetes del protocolo


correspondiente que has capturado. Esos datos los puedes sacar de las propias
estadísticas que genera WireShark (Stastistics  Protocol Hierarchy).

Debajo de la tabla, te muestro un ejemplo de la ventana de estadísticas.

Protocolo Cantidad
ARP 632
IP 21622
ICMP 51
TCP 18152
UDP 3365

4
5. (4 ptos.) Responde a las siguientes preguntas en relación a los filtros de
WireShark:

a. (1 pto.) ¿Cuál es la dirección IP de la puerta de enlace de tu red?

5
He dado un pantallazo al cmd de la máquina virtual para saber mi puerta
de enlace, que me dice que es la 10.0.2.2.
Al filtrar esa puerta de enlace en wireshark no me salía nada, solo me salía
la puerta de enlace del anfitrión, la que corresponde con mi router, que es
192.168.1.1 que es la puerta de enlace.

6
b. (1 pto.) ¿Qué filtro crearías para ver todos los paquetes del protocolo IP
que tienen como destino tu puerta de enlace?

Pondría: ip.dst == 192.168.1.1

c. (1 pto.) ¿Qué filtro crearías para ver todos los paquetes del protocolo TCP
que tienen como origen tu puerta de enlace?

Pondría: tcp.srcport and ip.src==10.0.2.15

7
d. (1 pto.) ¿Qué filtro crearías para ver todos los paquetes del protocolo ARP
y del protocolo UDP?

arp or udp and ip.host, he puesto arp o udp porque buscando por separado
los comandos en el arp no me aparecía nada por lo que decidí poner uno u
otro para que me filtrara algún dato de uno u otro. Pero me extraña porque
se produce una comunicación el protocolo arp se basa en el elaborar una
tabla entre las direcciones con las físicas (MAC) y las dir. Ip.

6. (5 ptos.) Vas a analizar los campos que componen las tramas Ethernet mediante
WireShark, para responde a estas preguntas:

a. (1 pto.) ¿Cuál es el contenido del campo PREÁMBULO (8 primeros bytes


de la trama Ethernet)? WireShark no proporciona esta información por lo
que deberás encontrar la respuesta navegando por Internet.

Está formado por siete octetos con el patrón 10101010, el octavo


octeto tiene el patrón 10101011

8
b. (1 pto.) ¿Tiene sentido que el campo PREÁMBULO tenga el mismo valor
cualquiera que sea la trama? ¿Para qué se usa el valor de ese campo? Sí,
porque está formado por 8 bytes que siguen un patrón específico
citado arriba/ Para notificar a los nodos el inicio de una trama.

c. (0,5 ptos.) Para un paquete IP, ¿cuál es el valor del campo TIPO de la
trama Ethernet correspondiente?

d. (0,5 ptos.) Para un paquete ARP, ¿cuál es el valor del campo TIPO de la
trama Ethernet correspondiente?

9
No me sale arp

e. (1 pto.) Elige una trama Ethernet adecuada y responde a estas preguntas


respecto a la MAC de tu ordenador:

i. ¿Cuál es la dirección MAC?

08-00-27-FA-5D-46 es la dirección Mac de mi máquina virtual.

10
Esta es la dirección MAC de mi ordenador-> DC-0E-A1-21-FA-
A7

La MAC de la tarjeta inalámbrica de mi ordenador

ii. ¿Cuál es el fabricante (OUI) del NIC?

11
12
iii. ¿Cuál es el número de serie del NIC?

FA-5D-46 – de virtual box

21-FA-A7 – de mi ordenador.

64-27-37 – la del wifi real.

f. (1 pto.) Elige una trama Ethernet adecuada y responde a estas preguntas


respecto a la MAC de tu puerta de enlace:

i. ¿Cuál es la dirección MAC?

13
ii. ¿Cuál es el fabricante (OUI) del NIC?

iii. ¿Cuál es el número de serie del NIC?

12:35:02

14

Potrebbero piacerti anche