Instalar, configurar y analizar tráfico de red con Wireshark

WiresharkBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a instalar y configurar Wireshark, un robusto analizador de protocolos de red. Esta herramienta permite examinar el tráfico de red en tiempo real, lo cual es fundamental para la resolución de problemas de red y las investigaciones de seguridad.

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

Instalación de Wireshark

En este paso, instalaremos Wireshark en nuestro sistema Ubuntu. Wireshark es un potente analizador de protocolos de red que permite capturar y analizar el tráfico de red. Es una herramienta crucial para cualquier persona interesada en la seguridad de redes y el análisis de 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 de 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 tu sistema Ubuntu. Al actualizarlo, nos aseguramos de tener acceso a las versiones más recientes del software. Para ello, debemos abrir una terminal. Puedes abrir una terminal haciendo clic en el icono de terminal en la barra de tareas o presionando Ctrl+Alt+T. Una vez abierta la terminal, introduce 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. Al ejecutar este comando, deberías 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 en los repositorios.

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

sudo apt install wireshark -y

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

Durante el proceso de instalación, aparecerá un cuadro de diálogo de configuración preguntando si deseas permitir que los usuarios que no son superusuarios capturen paquetes. Permitir que los usuarios sin privilegios de superusuario capturen paquetes puede ser útil si deseas ejecutar Wireshark sin tener que usar siempre privilegios administrativos. Usa las teclas de flecha para seleccionar "Yes" (o presiona y) y presiona Enter para confirmar tu selección.

Cuadro de diálogo de configuración de Wireshark

Nota: Si omitiste este aviso o necesitas cambiar esta configuración más adelante, puedes reconfigurar Wireshark usando 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ías ver una salida que indica que la instalación fue exitosa. Para verificar que Wireshark se instaló correctamente, podemos comprobar su versión. Ejecuta el siguiente comando en la terminal:

wireshark --version

Este comando le indica a Wireshark que muestre su información de versión. Deberías 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.

¡Excelente! Wireshark ya está instalado en tu sistema.

Configuración de los permisos de captura de Wireshark

En este paso, vamos a configurar los permisos necesarios para que Wireshark pueda capturar paquetes de red. Como principiante, quizás te preguntes por qué necesitamos hacer esto. Bueno, de forma predeterminada, la captura de paquetes requiere privilegios de root. Esta es una medida de seguridad, ya que la captura de paquetes de red puede exponer información sensible. Sin embargo, ejecutar Wireshark como root no es una buena idea desde el punto de vista de la seguridad. Si hubiera una vulnerabilidad en Wireshark, un atacante podría obtener acceso completo al sistema si se ejecuta como root. Por lo tanto, configuraremos Wireshark para permitir que tu cuenta de usuario normal capture paquetes de forma segura.

Primero, debemos verificar si el grupo wireshark existe en el sistema. El grupo wireshark es un grupo especial que utilizaremos para gestionar los permisos de captura de paquetes. Para comprobar si este grupo existe, usaremos 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. Ejecuta el siguiente comando en tu terminal:

getent group wireshark

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

sudo groupadd wireshark

El comando sudo se utiliza para ejecutar el comando groupadd con privilegios administrativos. Se te pedirá que ingreses tu contraseña si no has usado sudo recientemente.

A continuación, debemos otorgar los permisos correctos al binario de captura de paquetes (dumpcap). dumpcap es el componente que realmente captura los paquetes para Wireshark. Cambiaremos la propiedad del grupo del binario dumpcap al grupo wireshark. De esta manera, el binario dumpcap estará asociado con el grupo wireshark y podremos gestionar sus permisos a través de este grupo. Ejecuta 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. Usaremos el comando chmod para establecer los permisos. El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. Ejecuta 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 del sistema leer y ejecutar el binario.

Finalmente, debemos 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. Usaremos el comando gpasswd para agregar nuestro usuario al grupo. El comando gpasswd se utiliza para administrar los archivos /etc/group y /etc/gshadow. Ejecuta 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ías ver una salida indicando que el usuario fue agregado al grupo:

Adding user labex to group wireshark

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

newgrp wireshark

Este comando inicia una nueva shell con el grupo wireshark activo, sin necesidad de cerrar sesión por completo.

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

groups

Deberías 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 necesidad de privilegios de root.

Lanzamiento de Wireshark

En este paso, vamos a iniciar Wireshark y conocer su interfaz inicial. Wireshark es una herramienta potente para el análisis de tráfico de red y cuenta con una interfaz gráfica de usuario (GUI). Esta GUI es la que utilizaremos para interactuar con el software y analizar el tráfico de red.

Primero, debes asegurarte de estar en el entorno de escritorio de la máquina virtual de LabEx. Cuando estés en el lugar correcto, verás 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. Puedes elegir el método que te resulte más cómodo:

  1. Haz clic en el menú de Aplicaciones, que generalmente se encuentra en la esquina superior izquierda de la pantalla. Luego, navega por el menú para encontrar las categorías "Internet" o "Red". Una vez que estés en la categoría adecuada, busca y selecciona "Wireshark". Esta es una forma directa de iniciar el programa utilizando la interfaz gráfica.

    Wireshark en el menú de Aplicaciones

  2. Alternativamente, puedes usar la terminal. Abre una ventana de terminal y luego ingresa el siguiente comando:

    wireshark
    

    Wireshark en la terminal

Este comando le indica 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ás es la pantalla "Welcome to Wireshark". Esta pantalla muestra una lista de interfaces de red disponibles que puedes usar para capturar tráfico de red. También muestra algunos archivos de captura abiertos recientemente, si has usado Wireshark antes y tienes algunos archivos guardados.

Pantalla de inicio de Wireshark

La pantalla de bienvenida ofrece varias opciones importantes:

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

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

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

  • Barra de menús: Esta barra en la parte superior de la ventana te da acceso a todas las funciones que ofrece Wireshark. Puedes usarla para realizar diversas tareas, como guardar archivos de captura, cambiar configuraciones y acceder a la ayuda.
  • Barra de herramientas: La barra de herramientas proporciona acceso rápido a las funciones de uso común. Por ejemplo, puedes iniciar y detener la captura de paquetes, aplicar filtros y guardar archivos con un solo clic.
  • Lista de interfaces: Esta lista muestra todas las interfaces de red disponibles en tu sistema. Utilizarás esta lista para seleccionar la interfaz desde la cual deseas capturar paquetes.
  • Barra de filtros de visualización: Esta barra te permite filtrar los paquetes que se muestran en la ventana principal. Puedes usar varios criterios, como direcciones IP, protocolos o números de puerto, para limitar los paquetes que te interesan. Exploraremos cómo usar este filtro en el siguiente paso.

Por ahora, deja Wireshark ejecutándose. En el siguiente paso, lo usaremos para capturar y analizar tráfico de red.

Captura y análisis de 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 cualquier persona interesada en la seguridad de redes 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.

Inicio de 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 deseas capturar tráfico. En la mayoría de los casos, usaremos la interfaz eth0. Si eth0 no está disponible, puedes elegir otra interfaz activa (por ejemplo, eth1 o wlan0).

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

Alternativamente, primero puedes seleccionar la interfaz y luego hacer clic en el botón "Start capturing packets", 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.

Entender 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.

Interfaz principal de Wireshark

  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.
    • Tiempo: El momento en que se capturó el paquete.
    • Dirección IP de origen: La dirección IP del dispositivo que envió el paquete.
    • Dirección IP de destino: La dirección IP del dispositivo al que está destinado el paquete.
    • Protocolo: El protocolo de red utilizado por el paquete, como TCP, UDP o ICMP.
    • Longitud: El tamaño del paquete en bytes.
    • Info: Una breve descripción del propósito del paquete, que puede ayudarte a entender rápidamente qué 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 brutos del paquete 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 están transmitiendo en el paquete.

Generación 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

Nota: Los usuarios gratuitos no pueden conectarse a Internet. Actualiza a pro para disfrutar de la experiencia completa.

La opción -c 5 le indica 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 posterior.

Detención de la captura

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

¡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 aprovechar este conocimiento para analizar escenarios de red más complejos.

Filtrado de paquetes

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

Barra de filtros de Wireshark

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

icmp

Después de escribir la expresión de filtro, presiona Enter o haz clic en el botón Apply (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" y "Echo (ping) reply" 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.

Inspección de detalles de paquetes

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.

Detalles del paquete de Wireshark

  1. Frame: 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.
  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: Esta es información de la Capa 3 (Red). Expande esta sección para ver detalles como:
    • Dirección IP de origen: La dirección IP del dispositivo que envió el paquete.
    • Dirección IP de destino: La dirección IP del dispositivo al que va el paquete.
    • Time to Live (TTL): Un valor que limita la vida útil del paquete en la red.
    • Protocolo: El protocolo utilizado dentro del paquete IP, como ICMP en nuestro caso.
  4. Internet Control Message Protocol: Esta sección muestra la información del protocolo ICMP. Expándela para ver detalles específicos del mensaje ICMP, como:
    • Tipo (8 para solicitud, 0 para respuesta): Indica si el paquete es una solicitud o una respuesta.
    • Código: Proporciona información adicional sobre el mensaje ICMP.
    • Checksum: Se utiliza para verificar la integridad del mensaje ICMP.
    • Identificador: Ayuda a hacer coincidir las solicitudes y las respuestas.
    • Número de secuencia: Un número secuencial para los paquetes ICMP.

Resumen

En este laboratorio, has aprendido a instalar y configurar Wireshark, una potente herramienta de análisis de red. Configuraste permisos para que los usuarios que no son root capturen paquetes de forma segura, iniciaste la aplicación y capturaste tráfico de red real. También exploraste la interfaz, aplicaste filtros para tipos de tráfico específicos y examinaste los detalles de los paquetes en diferentes capas de protocolo.

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