Práctica guiada: Análisis de tráfico de red con Wireshark

1. Introducción

En esta práctica aprenderemos a utilizar Wireshark, una herramienta de análisis de protocolos que permite examinar los paquetes de datos que circulan por una red.

Trabajaremos tanto con tráfico generado por nosotros como con archivos de captura previamente guardados, de extensión .pcap o .pcapng.

Al finalizar podremos identificar direcciones IP, puertos, protocolos, consultas DNS, conexiones TCP y parte del contenido de determinadas comunicaciones.

La práctica se realizará únicamente sobre tráfico propio, del laboratorio o expresamente autorizado.

2. Objetivos

Al terminar la actividad, el alumno deberá saber:

  • Instalar e iniciar Wireshark.
  • Seleccionar una interfaz de red.
  • Capturar y guardar paquetes.
  • Interpretar las columnas de una captura.
  • Aplicar filtros de visualización.
  • Identificar tráfico ICMP, DNS, TCP, HTTP y TLS.
  • Examinar conversaciones entre dos equipos.
  • Seguir una comunicación TCP.
  • Analizar un archivo PCAP y documentar los resultados obtenidos.

3. Preparación del laboratorio

Explore and Customize Wireshark Interface | LabEx

8

Paso 1. Instalar Wireshark

Descargar Wireshark desde su página oficial:

https://www.wireshark.org/download.html

En Windows, durante la instalación, aceptar también la instalación de Npcap, que permite capturar paquetes de red.

En Kali Linux, comprobar si ya está instalado:

wireshark --version

Si no aparece, instalarlo:

sudo apt update
sudo apt install wireshark -y

Si se pregunta si los usuarios no administradores pueden capturar paquetes, seguir la configuración autorizada por el profesor. En instalaciones Debian/Kali, puede configurarse el grupo wireshark para permitir la captura sin ejecutar toda la aplicación como root.

Paso 2. Conocer la interfaz

Al ejecutar Wireshark, veremos las interfaces de red disponibles. Por ejemplo:

  • Ethernet: conexión por cable.
  • Wi-Fi: conexión inalámbrica.
  • Adaptadores virtuales: interfaces de VirtualBox, VMware o VPN.

Una vez abierta una captura, Wireshark muestra tres zonas fundamentales:

Esquema didáctico de las tres zonas de análisis de Wireshark.

ZonaFunción
1. Lista de paquetesPresenta los paquetes capturados
2. DetallesDescompone cada paquete en protocolos y campos
3. BytesMuestra los datos en hexadecimal y representación ASCII

4. Primera captura de tráfico

Examine a captured packet using Wireshark | TechTarget

Paso 3. Iniciar la captura

  1. Seleccionar la interfaz conectada a la red.
  2. Hacer doble clic sobre ella.
  3. Comprobar que empiezan a aparecer paquetes.
  4. Dejar Wireshark capturando.

Comprobación: el contador de paquetes debe aumentar cuando existe actividad de red.

Paso 4. Generar tráfico ICMP

Abrir una terminal y ejecutar:

ping -c 4 1.1.1.1

En Windows:

ping -n 4 1.1.1.1

Esto envía cuatro solicitudes ICMP Echo Request, habitualmente utilizadas para comprobar conectividad.

Volver a Wireshark y detener la captura mediante el botón rojo.

En la barra de filtros, escribir:

icmp

Pulsar Intro.

Si la red permite las respuestas ICMP y la captura se ha realizado en la interfaz correcta, aparecerán paquetes de solicitud y respuesta.

Preguntas para el alumno: ¿Cuál es la dirección IP de origen? ¿Cuál es la de destino? ¿Qué diferencia existe entre Echo Request y Echo Reply?

5. Aprender a filtrar paquetes

Los filtros de visualización permiten ocultar temporalmente los paquetes que no cumplen determinadas condiciones, sin eliminarlos del archivo.

Consultor de filtros de WiresharkSelecciona qué tráfico quieres examinar

Solo peticiones HTTP

Filtro Copiar

http.requestSolicitudes HTTP detectadas

El alumno debe probar los filtros y observar cómo cambia la lista de paquetes.

Importante: tcp.port == 80 es un filtro de visualización, no una orden de captura ni una instrucción para abrir un puerto.

6. Analizar consultas DNS

Paso 5. Generar una consulta DNS

DNS permite traducir nombres de dominio a direcciones IP.

En la terminal, ejecutar:

nslookup example.com

Si estamos capturando tráfico en Wireshark, aplicamos el filtro:

dns

Seleccionar uno de los paquetes de la consulta.

En el panel de detalles, desplegar Domain Name System y buscar:

  • Transaction ID.
  • Queries.
  • Nombre de dominio solicitado.
  • Tipo de registro, por ejemplo A o AAAA.
  • Respuestas recibidas, cuando existan.

Si no aparecen consultas, comprobar qué servidor DNS está utilizando el equipo y si el sistema utiliza DNS cifrado. Otra posibilidad es que la consulta se haya resuelto previamente desde caché.

Actividad: identificar el dominio consultado y las direcciones IP devueltas. Anotar también la dirección del servidor DNS que respondió.

7. Analizar una comunicación HTTP

En esta sección crearemos nuestro propio servidor web local para observar cómo viajan los datos cuando se utiliza HTTP sin cifrado.

Paso 6. Crear una página web sencilla

En Linux o Kali:

mkdir practica-wireshark
cd practica-wireshark
nano index.html

Introducir el siguiente contenido:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Laboratorio Wireshark</title>
</head>
<body>
    <h1>Laboratorio de análisis de red</h1>
    <p>Esta página se transmite mediante HTTP.</p>
    <p>Mensaje de prueba: ASIR2026</p>
</body>
</html>

Guardar el archivo.

Paso 7. Iniciar un servidor HTTP

Desde el mismo directorio, ejecutar:

python3 -m http.server 8000

El servidor quedará escuchando en el puerto 8000.

Ahora abriremos Wireshark y seleccionaremos la interfaz de loopback, normalmente lo en Linux, para capturar las conexiones locales.

Comenzar la captura y, desde otra terminal, ejecutar:

curl http://127.0.0.1:8000/

Esta petición evitará que tengamos que depender del comportamiento del navegador.

En Wireshark, introducir:

tcp.port == 8000

Deberán aparecer los segmentos TCP de la conexión.

Paso 8. Examinar la comunicación

Seleccionar un paquete TCP de la conexión y utilizar:

Clic derecho → Follow → TCP Stream

Wireshark reconstruirá los datos intercambiados en esa conexión.

Ejemplo simplificado de una conversación HTTP

CLIENTE → SERVIDOR

GET / HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: curl

SERVIDOR → CLIENTE

HTTP/1.0 200 OK
Content-Type: text/html

<h1>Laboratorio de análisis de red</h1>
<p>Esta página se transmite mediante HTTP.</p>

Representación resumida. Las cabeceras y el contenido exacto dependerán de la versión de Python y de la petición realizada.

Buscar el mensaje ASIR2026.

¿Por qué podemos leerlo? Porque HTTP, en este ejemplo, transmite los datos sin cifrado. Cualquier persona que tenga acceso legítimo a una captura de esa comunicación podrá interpretar su contenido.

8. Comprender el funcionamiento de TCP

TCP permite establecer conexiones y transmitir información de forma ordenada y fiable.

En nuestra captura anterior, buscar el establecimiento de conexión.

Establecimiento de conexión TCP: Three-way handshake

El establecimiento de la conexión se realiza normalmente mediante tres segmentos:

  1. SYN: el cliente solicita establecer una conexión.
  2. SYN, ACK: el servidor acepta y confirma la solicitud.
  3. ACK: el cliente confirma, completando el establecimiento.

Utilizar el filtro:

tcp.flags.syn == 1

Examinar los paquetes y localizar los segmentos SYN y SYN, ACK. Para identificar más fácilmente el inicio de una conexión concreta, también puede emplearse:

tcp.flags.syn == 1 && tcp.flags.ack == 0

Actividad: localizar los tres segmentos del establecimiento de la conexión HTTP y anotar los puertos de origen y destino.

9. Comparar HTTP con HTTPS

Paso 9. Visitar una página HTTPS

Iniciar otra captura en la interfaz de red utilizada para acceder a Internet.

Desde una terminal, ejecutar:

curl -v https://example.com/

Detener la captura y aplicar:

tls

Cuando la conexión utilice TLS sobre TCP y Wireshark lo reconozca, se podrán examinar mensajes del protocolo TLS.

En una comunicación HTTPS normal podemos observar las direcciones IP, puertos y determinada información de la negociación, pero no leer directamente el contenido de las peticiones y respuestas HTTP cifradas.

No todas las comunicaciones HTTPS utilizan TCP: algunas emplean HTTP/3 sobre QUIC, basado en UDP. En esta práctica usamos curl para facilitar la observación de una conexión concreta.

Actividad: comparar lo que puede verse de la página web local HTTP con lo que se puede observar de una conexión HTTPS.

10. Guardar y abrir archivos PCAP

Paso 10. Guardar una captura

En Wireshark, seleccionar:

File → Save As

Guardar con el nombre:

practica-wireshark.pcapng

El formato PCAPNG permite almacenar paquetes y determinados metadatos adicionales de la captura.

Para volver a abrirla:

File → Open → practica-wireshark.pcapng

Paso 11. Examinar las estadísticas

Dentro de Wireshark, abrir las siguientes opciones:

MenúQué permite analizar
Statistics → Protocol HierarchyDistribución de protocolos detectados
Statistics → ConversationsComunicaciones entre pares de direcciones y puertos
Statistics → EndpointsEquipos y extremos presentes en la captura
Statistics → I/O GraphsEvolución del tráfico a lo largo del tiempo

Comprobar qué protocolos aparecen y cuáles generan mayor cantidad de tráfico.

11. Ejercicio final: análisis de un PCAP desconocido

Realiza el anális del archivo pcap:

Deberá responder:

  1. ¿Cuántos paquetes contiene la captura?
  2. ¿Qué protocolos aparecen?
  3. ¿Qué direcciones IP participan?
  4. ¿Se observan consultas DNS? ¿Qué nombres de dominio se consultan?
  5. ¿Existen conexiones TCP? ¿Qué puertos utilizan?
  6. ¿Hay tráfico HTTP sin cifrar? ¿Es posible identificar alguna página o recurso?
  7. ¿Se puede reconstruir alguna conversación TCP?
  8. ¿Qué información relevante puede obtenerse de la captura y qué información no es posible determinar?

No debe suponerse que todos los archivos contendrán tráfico de todos los protocolos. El alumno debe distinguir entre evidencias observadas e hipótesis.