Instalar, Configurar y Analizar el Tráfico de Red con Wireshark

WiresharkBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a instalar y configurar Wireshark, un analizador de protocolos de red robusto. Permite el examen en tiempo real del tráfico de red, lo cual es crucial para la resolución de problemas de red y las investigaciones de seguridad.

Al final de este laboratorio, será capaz de capturar y analizar paquetes de red en su sistema, obteniendo experiencia práctica con esta herramienta esencial.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel intermedio con una tasa de finalización del 62%. Ha recibido una tasa de reseñas positivas del 99% por parte de los estudiantes.

Instalación de Wireshark

En este paso, instalaremos Wireshark en nuestro sistema Ubuntu. Wireshark es un potente analizador de protocolos de red que le permite capturar y analizar el tráfico de red. Es una herramienta crucial para cualquier persona interesada en la seguridad de la red y el análisis del tráfico. La buena noticia es que Wireshark está disponible en los repositorios de Ubuntu, lo que significa que podemos instalarlo fácilmente utilizando el sistema de gestión de paquetes proporcionado por Ubuntu.

Primero, actualicemos la información del repositorio de paquetes. El repositorio de paquetes es como un catálogo de todo el software disponible para su sistema Ubuntu. Al actualizarlo, nos aseguramos de tener acceso a las últimas versiones de software. Para hacer esto, necesitamos abrir una terminal. Puede abrir una terminal haciendo clic en el icono de la terminal en la barra de tareas o presionando Ctrl+Alt+T. Una vez que la terminal esté abierta, ingrese el siguiente comando:

sudo apt update

El comando sudo se utiliza para ejecutar comandos con privilegios administrativos. apt es la herramienta de gestión de paquetes en Ubuntu, y update es el comando para actualizar la información del repositorio de paquetes. Cuando ejecute este comando, debería ver una salida similar a esta:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,234 kB]
...
Reading package lists... Done

Esta salida muestra que el sistema está obteniendo la información más reciente sobre los paquetes disponibles de los repositorios.

Ahora que nuestro repositorio de paquetes está actualizado, podemos instalar Wireshark utilizando el gestor de paquetes apt. Ejecute el siguiente comando en la terminal:

sudo apt install wireshark -y

El comando install le dice a apt que instale el paquete especificado, que es wireshark en este caso. La opción -y se utiliza para responder automáticamente "yes" (sí) a todas las preguntas durante el proceso de instalación.

Durante el proceso de instalación, se le presentará un diálogo de configuración preguntando si desea permitir que los usuarios que no son superusuarios capturen paquetes. Permitir que los usuarios que no son superusuarios capturen paquetes puede ser útil si desea ejecutar Wireshark sin utilizar siempre privilegios administrativos. Utilice las teclas de flecha para seleccionar "Yes" (Sí) (o presione y) y presione Enter para confirmar su selección.

Wireshark Configuration Dialog

Nota: Si se perdió este mensaje o necesita cambiar esta configuración más tarde, puede reconfigurar Wireshark utilizando el siguiente comando:

sudo dpkg-reconfigure wireshark-common

El comando dpkg-reconfigure se utiliza para reconfigurar un paquete ya instalado.

Una vez que se complete la instalación, debería ver una salida que indica que la instalación se realizó correctamente. Para verificar que Wireshark se instaló correctamente, podemos verificar su versión. Ejecute el siguiente comando en la terminal:

wireshark --version

Este comando le dice a Wireshark que muestre su información de versión. Debería ver una salida similar a esta:

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.15.3, with libpcap, with GLib 2.72.0, with zlib 1.2.11,
with SMI 0.4.8, with c-ares 1.18.1, with Lua 5.2.4, with GnuTLS 3.7.3 and PKCS #11
support, with Gcrypt 1.9.4, with MIT Kerberos, with MaxMind DB resolver,
with nghttp2 1.43.0, with brotli, with LZ4, with Zstandard, with Snappy,
with libxml2 2.9.13, with libssh 0.9.6, with NGHTTP3 0.7.0, with NGTCP2 0.8.0.

¡Genial! Wireshark ahora está instalado en su sistema.

Configuración de Permisos de Captura de Wireshark

En este paso, vamos a configurar los permisos necesarios para que Wireshark capture paquetes de red. Como principiante, puede que se pregunte por qué necesitamos hacer esto. Bueno, por defecto, la captura de paquetes requiere privilegios de root (administrador). Esta es una medida de seguridad porque la captura de paquetes de red puede exponer potencialmente información confidencial. Sin embargo, ejecutar Wireshark como root no es una buena idea desde una perspectiva de seguridad. Si hay una vulnerabilidad en Wireshark, un atacante podría obtener acceso completo al sistema si se está ejecutando como root. Por lo tanto, configuraremos Wireshark para permitir que su cuenta de usuario normal capture paquetes de forma segura.

Primero, necesitamos verificar si el grupo wireshark existe en el sistema. El grupo wireshark es un grupo especial que utilizaremos para administrar los permisos para la captura de paquetes. Para verificar si este grupo existe, utilizaremos el comando getent. getent es una utilidad que recupera entradas de varias bases de datos del sistema, como la base de datos de grupos en este caso. Ejecute el siguiente comando en su terminal:

getent group wireshark

Si no aparece ninguna salida, significa que el grupo aún no existe y necesitamos crearlo. Utilizaremos el comando groupadd para crear el grupo wireshark. El comando groupadd se utiliza para crear un nuevo grupo en el sistema. Ejecute el siguiente comando:

sudo groupadd wireshark

El comando sudo se utiliza para ejecutar el comando groupadd con privilegios administrativos. Se le pedirá que ingrese su contraseña si no ha utilizado sudo recientemente.

A continuación, necesitamos dar los permisos correctos al binario de captura de paquetes (dumpcap). dumpcap es el componente que realmente captura paquetes para Wireshark. Cambiaremos la propiedad del grupo del binario dumpcap al grupo wireshark. De esta manera, el binario dumpcap se asociará con el grupo wireshark, y podemos administrar sus permisos a través de este grupo. Ejecute el siguiente comando:

sudo chgrp wireshark /usr/bin/dumpcap

El comando chgrp se utiliza para cambiar la propiedad del grupo de un archivo o directorio. En este caso, estamos cambiando la propiedad del grupo del binario /usr/bin/dumpcap al grupo wireshark.

Después de cambiar la propiedad del grupo, estableceremos los permisos necesarios en el binario dumpcap. Utilizaremos el comando chmod para establecer los permisos. El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. Ejecute el siguiente comando:

sudo chmod 4755 /usr/bin/dumpcap

Este comando establece el bit setuid en el binario. El bit setuid permite que el binario se ejecute con los permisos del propietario (root) independientemente de quién lo esté ejecutando. El permiso 4755 se puede desglosar de la siguiente manera:

  • 4 - Establece el bit setuid. Esto significa que cuando se ejecuta el binario, se ejecutará con los permisos del propietario (root).
  • 7 - El propietario (root) tiene permisos de lectura, escritura y ejecución. Esto permite al propietario leer, modificar y ejecutar el binario.
  • 5 - El grupo tiene permisos de lectura y ejecución. Esto permite a los miembros del grupo wireshark leer y ejecutar el binario.
  • 5 - Otros tienen permisos de lectura y ejecución. Esto permite a otros usuarios en el sistema leer y ejecutar el binario.

Finalmente, necesitamos agregar nuestro usuario actual al grupo wireshark. Al agregar nuestro usuario al grupo wireshark, nuestro usuario tendrá los permisos necesarios para usar el binario dumpcap. Utilizaremos el comando gpasswd para agregar nuestro usuario al grupo. El comando gpasswd se utiliza para administrar los archivos /etc/group y /etc/gshadow. Ejecute el siguiente comando:

sudo gpasswd -a $USER wireshark

La variable $USER es una variable de shell que contiene el nombre de usuario del usuario actual. Debería ver una salida que indica que el usuario fue agregado al grupo:

Adding user labex to group wireshark

Para que estos cambios surtan efecto, debe cerrar sesión y volver a iniciar sesión, o reiniciar el sistema. Sin embargo, para este laboratorio, podemos utilizar un enfoque más sencillo iniciando un nuevo shell con la membresía de grupo actualizada. Utilizaremos el comando newgrp para iniciar un nuevo shell con el grupo wireshark activo. El comando newgrp se utiliza para cambiar el ID de grupo actual. Ejecute el siguiente comando:

newgrp wireshark

Este comando inicia un nuevo shell con el grupo wireshark activo, sin requerir un cierre de sesión completo.

Verifiquemos que nuestro usuario ahora es parte del grupo wireshark. Utilizaremos el comando groups para listar todos los grupos a los que pertenece nuestro usuario. Ejecute el siguiente comando:

groups

Debería ver wireshark listado entre los grupos:

wireshark sudo ssl-cert labex public

Ahora que nuestro usuario es parte del grupo wireshark y el binario dumpcap tiene los permisos correctos, Wireshark debería poder capturar paquetes sin requerir privilegios de root.

Ejecutando Wireshark

En este paso, vamos a lanzar Wireshark y a familiarizarnos con su interfaz inicial. Wireshark es una herramienta poderosa para el análisis del tráfico de red, y viene con una interfaz gráfica de usuario (GUI, por sus siglas en inglés). Esta GUI es lo que usaremos para interactuar con el software y analizar el tráfico de red.

Primero, debe asegurarse de que se encuentra en el entorno de escritorio de la VM (máquina virtual) de LabEx. Cuando esté en el lugar correcto, verá un escritorio con iconos y una barra de tareas en la parte superior o inferior de la pantalla. Este es el punto de partida donde comenzaremos nuestro trabajo con Wireshark.

Hay dos formas de iniciar Wireshark. Puede elegir el método que le resulte más conveniente:

  1. Haga clic en el menú Aplicaciones, que generalmente se encuentra en la esquina superior izquierda de la pantalla. Luego, navegue por el menú para encontrar las categorías "Internet" o "Red". Una vez que esté en la categoría apropiada, busque y seleccione "Wireshark". Esta es una forma sencilla de iniciar el programa utilizando la interfaz gráfica.

    Wireshark in Applications Menu
  2. Alternativamente, puede usar la terminal. Abra una ventana de terminal y luego ingrese el siguiente comando:

    wireshark
    Wireshark in Terminal

Este comando le dice al sistema que inicie la aplicación Wireshark. Después de ejecutar este comando, Wireshark se iniciará y su ventana principal aparecerá en la pantalla. Lo primero que verá es la pantalla "Welcome to Wireshark" (Bienvenido a Wireshark). Esta pantalla muestra una lista de interfaces de red disponibles que puede usar para capturar tráfico de red. También muestra algunos archivos de captura abiertos recientemente, si ha usado Wireshark antes y tiene algunos archivos guardados.

Wireshark Start Screen

La pantalla de bienvenida ofrece varias opciones importantes:

  1. Puede seleccionar una interfaz de red de la lista. Una vez que elija una interfaz, Wireshark comenzará a capturar paquetes de esa red inmediatamente. Así es como comenzará a recopilar datos sobre el tráfico de red.
  2. Si tiene un archivo de captura guardado previamente, puede abrirlo desde esta pantalla. Esto es útil si desea analizar datos que ha recopilado en el pasado.
  3. También hay varias herramientas y configuraciones a las que puede acceder desde esta pantalla. Estas herramientas y configuraciones le ayudarán a personalizar su experiencia con Wireshark y a realizar análisis más avanzados.

Tómese un tiempo para explorar esta pantalla inicial. Notará que cada interfaz de red tiene algunas estadísticas sobre los paquetes que se han detectado. Estas estadísticas le dan una idea rápida de qué interfaces están pasando activamente tráfico de red.

Ahora, veamos los elementos principales de la interfaz de Wireshark:

  • Barra de menú (Menu bar): Esta barra en la parte superior de la ventana le da acceso a todas las funciones que ofrece Wireshark. Puede usarla para realizar varias tareas, como guardar archivos de captura, cambiar la configuración y acceder a la ayuda.
  • Barra de herramientas (Toolbar): La barra de herramientas proporciona acceso rápido a las funciones de uso común. Por ejemplo, puede iniciar y detener la captura de paquetes, aplicar filtros y guardar archivos con un solo clic.
  • Lista de interfaces (Interface list): Esta lista muestra todas las interfaces de red disponibles en su sistema. Utilizará esta lista para seleccionar la interfaz desde la que desea capturar paquetes.
  • Barra de filtro de visualización (Display filter bar): Esta barra le permite filtrar los paquetes que se muestran en la ventana principal. Puede usar varios criterios, como direcciones IP, protocolos o números de puerto, para reducir los paquetes que le interesan. Exploraremos cómo usar este filtro en el siguiente paso.

Por ahora, deje Wireshark en ejecución. En el siguiente paso, lo usaremos para capturar y analizar el tráfico de red.

Captura y Análisis del Tráfico de Red

En este paso, vamos a capturar algo de tráfico de red y explorar la interfaz de Wireshark. Entender cómo analizar paquetes de red es crucial para cualquiera interesado en la seguridad de la red o la resolución de problemas. Al final de esta sección, sabrás cómo iniciar una captura, entender la interfaz de Wireshark, generar tráfico, filtrar paquetes, inspeccionar detalles de paquetes y detener la captura.

Iniciando una Captura

Cuando abres Wireshark, verás una pantalla de bienvenida. En esta pantalla, tu objetivo es encontrar la interfaz de red desde la que quieres capturar el tráfico. En la mayoría de los casos, usaremos la interfaz eth0. Si eth0 no está disponible, puedes elegir otra interfaz activa (p. ej., eth1 o wlan0).

Para comenzar a capturar paquetes, simplemente haz doble clic en la interfaz eth0. Esta acción comenzará inmediatamente a capturar paquetes en esa interfaz y te llevará a la ventana principal de captura de Wireshark.

Alternativamente, puedes seleccionar primero la interfaz y luego hacer clic en el botón "Start capturing packets" (Comenzar a capturar paquetes), que está representado por un icono de aleta de tiburón azul en la barra de herramientas. Iniciar la captura es el primer paso para analizar el tráfico de red, ya que permite a Wireshark recopilar datos que fluyen a través de la interfaz seleccionada.

Entendiendo la Interfaz de Wireshark

Una vez que comienza la captura de paquetes, se te presentará la interfaz principal de Wireshark. Esta interfaz se divide en tres paneles principales, cada uno con un propósito diferente.

Wireshark Main Interface
  1. Panel de Lista de Paquetes (Superior): Este panel muestra una lista de todos los paquetes que Wireshark ha capturado. Cada entrada en la lista proporciona información básica sobre un paquete, incluyendo:

    • Número de paquete: Un identificador único para cada paquete en la captura.
    • Hora (Time): El momento en que se capturó el paquete.
    • Dirección IP de origen (Source IP address): La dirección IP del dispositivo que envió el paquete.
    • Dirección IP de destino (Destination IP address): La dirección IP del dispositivo al que está destinado el paquete.
    • Protocolo (Protocol): El protocolo de red utilizado por el paquete, como TCP, UDP o ICMP.
    • Longitud (Length): El tamaño del paquete en bytes.
    • Información (Info): Una breve descripción del propósito del paquete, que puede ayudarte a comprender rápidamente lo que está haciendo el paquete.
  2. Panel de Detalles del Paquete (Medio): Cuando seleccionas un paquete en el panel superior, esta área muestra información detallada sobre el paquete seleccionado en un formato jerárquico. Puedes expandir cada sección haciendo clic en la flecha junto a ella para ver detalles más profundos sobre la estructura y el contenido del paquete.

  3. Panel de Bytes del Paquete (Inferior): Este panel muestra los datos sin procesar del paquete (raw packet data) en formatos hexadecimal y ASCII. A medida que seleccionas diferentes campos en el Panel de Detalles del Paquete, los bytes correspondientes se resaltan en este panel. Esto te permite ver los datos reales que se transmiten en el paquete.

Generando Algo de Tráfico de Red

Para tener algo significativo que analizar, necesitamos generar algo de tráfico de red. Mientras Wireshark se está ejecutando, abre una nueva ventana de terminal. En la terminal, usaremos el comando ping para enviar algunos paquetes de solicitud de eco ICMP a los servidores de Google.

Ejecuta el siguiente comando:

ping -c 5 google.com

Note: Free users can not connect to the internet. Upgrade to a pro to enjoy the full experience.

La opción -c 5 le dice al comando ping que envíe 5 paquetes de solicitud de eco ICMP. Después de ejecutar este comando, deberías ver una salida similar a:

PING google.com (142.250.180.238) 56(84) bytes of data.
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=1 ttl=118 time=15.6 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=2 ttl=118 time=16.5 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=3 ttl=118 time=15.9 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=4 ttl=118 time=16.2 ms
64 bytes from muc11s21-in-f14.1e100.net (142.250.180.238): icmp_seq=5 ttl=118 time=15.7 ms

--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 15.629/15.986/16.520/0.324 ms

Ahora, vuelve a Wireshark. Deberías ver los paquetes ICMP que se capturaron durante la ejecución del comando ping. Estos paquetes son los que usaremos para un análisis más profundo.

Deteniendo la Captura

Cuando hayas terminado de analizar los paquetes capturados, debes detener la captura. Para hacer esto, haz clic en el botón "Stop capturing packets" (Detener la captura de paquetes), que está representado por un cuadrado rojo en la barra de herramientas. Alternativamente, puedes ir al menú "Capture" (Captura) y seleccionar "Stop" (Detener).

¡Ahora has capturado y analizado con éxito algo de tráfico de red básico con Wireshark! Esta es una habilidad fundamental en el análisis de redes y la seguridad, y puedes construir sobre este conocimiento para analizar escenarios de red más complejos.

Filtrando Paquetes

Wireshark captura todo el tráfico en la interfaz seleccionada, lo que puede convertirse rápidamente en una gran cantidad de datos y difícil de administrar. Los filtros son una herramienta poderosa en Wireshark que te permite concentrarte en tipos específicos de tráfico.

Wireshark Filter Bar

Para filtrar los paquetes ICMP ping que acabamos de generar, mira en la parte superior de la ventana de Wireshark. Hay una barra de filtro donde puedes escribir una expresión de filtro. Escribe lo siguiente en la barra de filtro:

icmp

Después de escribir la expresión de filtro, presiona Enter o haz clic en el botón Apply (Aplicar) (un icono de flecha hacia la derecha) junto al campo de filtro. La lista de paquetes se actualizará para mostrar solo los paquetes ICMP. Deberías ver pares de mensajes "Echo (ping) request" (Solicitud de eco (ping)) y "Echo (ping) reply" (Respuesta de eco (ping)) correspondientes al comando ping que ejecutamos anteriormente. El filtrado te ayuda a aislar el tráfico que te interesa y hace que el proceso de análisis sea mucho más manejable.

Inspeccionando Detalles del Paquete

Ahora que hemos filtrado los paquetes ICMP, echemos un vistazo más de cerca a uno de los paquetes de solicitud ICMP. Haz clic en uno de los paquetes de solicitud ICMP en la lista de paquetes. En el panel de Detalles del Paquete, puedes expandir las diferentes capas de protocolo haciendo clic en la flecha junto a cada sección.

Wireshark Packet Details
  1. Frame (Marco): Esta sección proporciona información sobre el marco o paquete en su conjunto, como la longitud del marco y la secuencia de verificación del marco (frame check sequence).
  2. Ethernet: Contiene información de la Capa 2 (Enlace de Datos), como las direcciones MAC de origen y destino.
  3. Internet Protocol Version 4 (Protocolo de Internet Versión 4): Esta es información de la Capa 3 (Red). Expande esta sección para ver detalles como:
    • Dirección IP de origen (Source IP address): La dirección IP del dispositivo que envió el paquete.
    • Dirección IP de destino (Destination IP address): La dirección IP del dispositivo al que va el paquete.
    • Tiempo de vida (Time to Live - TTL): Un valor que limita la vida útil del paquete en la red.
    • Protocolo (Protocol): El protocolo utilizado dentro del paquete IP, como ICMP en nuestro caso.
  4. Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet): Esta sección muestra la información del protocolo ICMP. Expándela para ver detalles específicos del mensaje ICMP, como:
    • Tipo (Type) (8 para solicitud, 0 para respuesta): Indica si el paquete es una solicitud o una respuesta.
    • Código (Code): Proporciona información adicional sobre el mensaje ICMP.
    • Suma de comprobación (Checksum): Se utiliza para verificar la integridad del mensaje ICMP.
    • Identificador (Identifier): Ayuda a hacer coincidir las solicitudes y las respuestas.
    • Número de secuencia (Sequence number): Un número secuencial para los paquetes ICMP.

Resumen

En este laboratorio, ha aprendido cómo instalar y configurar Wireshark, una poderosa herramienta de análisis de redes. Ha configurado los permisos para que los usuarios no root (non-root users) capturen paquetes de forma segura, ha iniciado la aplicación y ha capturado tráfico de red real. También ha explorado la interfaz, ha aplicado filtros para tipos de tráfico específicos y ha examinado los detalles de los paquetes en diferentes capas de protocolo.

Estas habilidades forman una base sólida para el análisis y la resolución de problemas de red. Con Wireshark, ahora puede inspeccionar las comunicaciones de red, diagnosticar problemas de conectividad, analizar el comportamiento del protocolo e identificar problemas de seguridad en su tráfico de red.