Filtrar tráfico en Wireshark

WiresharkWiresharkBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo filtrar el tráfico de red utilizando Wireshark, una herramienta esencial para el análisis de redes y las investigaciones de ciberseguridad. Practicarás la captura de paquetes en tiempo real, la aplicación de filtros de visualización para aislar tráfico específico y la exportación de los resultados filtrados para un examen más detallado.

El laboratorio ofrece experiencia práctica con las funcionalidades principales de Wireshark, desde la selección de la interfaz hasta el análisis del tráfico. Estas habilidades te ayudarán a identificar patrones de red, solucionar problemas de conectividad y detectar posibles amenazas de seguridad en las comunicaciones de red.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") subgraph Lab Skills wireshark/installation -.-> lab-549939{{"Filtrar tráfico en Wireshark"}} wireshark/interface -.-> lab-549939{{"Filtrar tráfico en Wireshark"}} wireshark/packet_capture -.-> lab-549939{{"Filtrar tráfico en Wireshark"}} wireshark/display_filters -.-> lab-549939{{"Filtrar tráfico en Wireshark"}} wireshark/export_packets -.-> lab-549939{{"Filtrar tráfico en Wireshark"}} end

Instalar Wireshark

En este paso, instalarás Wireshark, un potente analizador de protocolos de red que te permite examinar el tráfico de red en tiempo real. Puedes pensar en él como un microscopio para las comunicaciones de red: captura los paquetes que viajan a través de tu red y los muestra en un formato legible.

Antes de comenzar, es importante entender que Wireshark requiere permisos especiales para capturar datos de red. Por eso lo configuraremos cuidadosamente para que funcione correctamente en tu máquina virtual (VM) de LabEx.

  1. Primero, necesitamos actualizar la lista de paquetes. Esto asegura que tu sistema conozca las últimas versiones de software disponibles:

    sudo apt update
  2. Ahora instala Wireshark con este comando. La bandera -y confirma automáticamente la instalación:

    sudo apt install -y wireshark
  3. Durante la instalación, Wireshark pregunta sobre el acceso de usuarios no superusuarios. Configuramos esto de antemano utilizando debconf (sistema de configuración de Debian) para permitir que los usuarios normales capturen paquetes:

    echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
  4. A continuación, agregamos tu usuario al grupo 'wireshark'. Esto otorga los permisos necesarios sin requerir acceso como superusuario (root):

    sudo usermod -aG wireshark $USER
  5. Verifiquemos que la instalación haya sido exitosa comprobando la versión. Esto confirma que Wireshark está instalado correctamente:

    wireshark --version

    Deberías ver una salida similar a:

    Wireshark 3.6.8 (Git v3.6.8 packaged as 3.6.8-1~ubuntu20.04.0)
  6. Los cambios en la pertenencia a grupos requieren una nueva sesión de inicio de sesión. En un sistema normal, cerrarías sesión y volverías a iniciar sesión, pero en LabEx, simplemente abre una nueva pestaña de terminal para que los cambios surtan efecto.

Recuerda, estos pasos de configuración son cruciales porque las herramientas de monitoreo de red como Wireshark necesitan permisos especiales para acceder a las interfaces de red, pero queremos utilizarlas de forma segura sin siempre necesitar acceso como superusuario.

Elegir una interfaz de red

En este paso, aprenderás cómo identificar y seleccionar una interfaz de red para la captura de paquetes en Wireshark. Las interfaces de red son los puntos de conexión entre tu computadora y la red. Puedes pensar en ellas como puertas por las cuales el tráfico de red entra y sale de tu computadora. Cada interfaz tiene un nombre único y características que determinan qué tipo de tráfico puede capturar.

  1. Primero, listemos todas las interfaces de red disponibles en tu sistema utilizando el comando incorporado de Wireshark. Esto te ayuda a ver todos los posibles puntos de captura antes de elegir uno:

    wireshark -D

    Deberías ver una salida similar a:

    1. eth0
    2. any (Pseudo - dispositivo que captura en todas las interfaces)
    3. lo (Loopback)

    La salida muestra los nombres de las interfaces con números. 'eth0' suele ser tu puerto Ethernet físico, mientras que 'lo' es para el tráfico de bucle interno (loopback).

  2. Para obtener información más detallada sobre las interfaces, podemos utilizar el comando ip de Linux. Esto muestra no solo los nombres, sino también su estado operativo actual:

    ip link show

    Esto mostrará todas las interfaces de red con su estado actual (UP/DOWN). Una interfaz debe estar en estado UP para capturar tráfico.

  3. Para nuestro entorno de laboratorio, usaremos la interfaz eth0, que suele ser la interfaz Ethernet principal en los sistemas Linux. Antes de usarla, verifiquemos su estado para asegurarnos de que esté activa:

    ip link show eth0

    Busca "state UP" en la salida para confirmar que la interfaz está activa. Si muestra DOWN, tendrás que solucionar el problema de conexión antes de continuar.

  4. Ahora, probemos la captura de paquetes en esta interfaz utilizando la versión de terminal de Wireshark (tshark). Esta prueba rápida ayuda a verificar que todo funcione antes de usar la interfaz gráfica completa:

    sudo tshark -i eth0 -c 5

    Este comando captura 5 paquetes de la interfaz eth0 (-i especifica la interfaz, -c establece la cantidad de paquetes) y los muestra en la terminal. Se necesita sudo porque la captura de paquetes requiere privilegios de superusuario.

  5. Para iniciar Wireshark en modo de interfaz gráfica (que usaremos en pasos posteriores para un filtrado más avanzado):

    wireshark &

    En la interfaz gráfica de Wireshark, verás la lista de interfaces disponibles en la ventana principal. El ampersand (&) ejecuta Wireshark en segundo plano para que puedas seguir usando la terminal.

Capturar tráfico en vivo

En este paso, aprenderás cómo capturar tráfico de red en vivo utilizando Wireshark. La captura de paquetes es el proceso de interceptar y registrar el tráfico de red, lo que te permite analizar las comunicaciones de red en tiempo real. Esto es fundamental para la resolución de problemas de red y el análisis de seguridad.

  1. Primero, inicia Wireshark en modo de interfaz gráfica desde la terminal. El símbolo & ejecuta el comando en segundo plano para que puedas seguir usando la terminal:

    wireshark &
  2. Cuando se abra Wireshark, verás una lista de interfaces de red disponibles. Estas representan las conexiones de red físicas y virtuales en tu equipo. Selecciona eth0 (la interfaz que identificamos en el paso anterior) haciendo doble clic en ella. Esta suele ser tu interfaz Ethernet principal.

  3. Wireshark comenzará inmediatamente a capturar todo el tráfico de red en esta interfaz. La ventana principal muestra los paquetes en tres secciones: la lista de paquetes (resumen), los detalles del paquete (desglose del protocolo) y los bytes del paquete (datos en bruto en hexadecimal). Los paquetes aparecerán en tiempo real a medida que se capturen.

  4. Para generar algún tráfico de prueba para la captura, abre una nueva terminal y ejecuta un simple comando ping. Esto envía solicitudes de eco ICMP al servidor DNS de Google (8.8.8.8):

    ping -c 4 8.8.8.8
  5. En Wireshark, ahora deberías ver paquetes ICMP apareciendo en la captura. Estos representan tus solicitudes y respuestas de ping. Cada fila de paquete muestra metadatos importantes:

    • Número de paquete (secuencia en la captura)
    • Marca de tiempo (cuándo se capturó)
    • Direcciones IP de origen y destino
    • Protocolo (ICMP en este caso)
    • Longitud del paquete en bytes
    • Información breve sobre el contenido del paquete
  6. Para detener la captura cuando hayas terminado, haz clic en el botón "Detener" (un cuadrado rojo) en la barra de herramientas. Esto congela la pantalla para que puedas examinar los paquetes capturados.

  7. Para guardar tu captura para un análisis posterior:

    • Haz clic en "Archivo" → "Guardar como"
    • Nombrar el archivo ping_capture.pcapng (.pcapng es el formato de captura de Wireshark)
    • Guárdalo en tu directorio ~/project para un fácil acceso
  8. Para la captura desde la línea de comandos (útil para la automatización o sistemas remotos), puedes usar tshark, la versión de línea de comandos de Wireshark. Este comando captura exactamente 10 paquetes de eth0 y los guarda:

    sudo tshark -i eth0 -w ~/project/cli_capture.pcap -c 10

    La bandera -w especifica el archivo de salida y -c limita la cantidad de paquetes.

Aplicar filtros de visualización

En este paso, aprenderás cómo utilizar los filtros de visualización de Wireshark para centrarte en un tráfico de red específico. Los filtros de visualización te ayudan a analizar los paquetes capturados mostrando solo aquellos que coinciden con tus criterios. Puedes pensar en ellos como términos de búsqueda que te permiten encontrar rápidamente las conversaciones de red exactas en las que estás interesado entre miles de paquetes.

  1. Primero, abre el archivo de captura guardado previamente en Wireshark:

    wireshark ~/project/ping_capture.pcapng &

    Este comando abre Wireshark en segundo plano (&) y carga la captura de paquetes guardada. El archivo .pcapng contiene todo el tráfico de red que grabaste previamente.

  2. Para filtrar el tráfico ICMP (paquetes de ping), escribe lo siguiente en la barra de filtro en la parte superior:

    icmp

    Presiona Enter y verás solo los paquetes ICMP en la pantalla. ICMP es el protocolo utilizado por los comandos ping, por lo que este filtro te ayuda a aislar la actividad de red relacionada con los ping del resto del tráfico.

  3. Para filtrar el tráfico hacia/desde una IP específica (como 8.8.8.8):

    ip.addr == 8.8.8.8

    Este filtro muestra todos los paquetes en los que 8.8.8.8 aparece como dirección IP de origen o destino. El doble signo igual (==) se utiliza para coincidencias exactas en los filtros de Wireshark.

  4. Combina filtros con operadores lógicos:

    icmp && ip.addr == 8.8.8.8

    Esto muestra solo los paquetes ICMP que involucran a 8.8.8.8. El operador && significa "Y", por lo que ambas condiciones deben ser verdaderas para que un paquete se muestre.

  5. Algunos otros filtros útiles:

    • Tráfico HTTP: http (muestra la actividad de navegación web)
    • Consultas DNS: dns (muestra las búsquedas de nombres de dominio)
    • Tráfico desde una fuente específica: ip.src == 192.168.1.1 (muestra los paquetes que se originan en esta IP)
    • Tráfico hacia un destino específico: ip.dst == 8.8.8.8 (muestra los paquetes enviados a esta IP)
  6. Para guardar tu vista filtrada:

    • Haz clic en "Archivo" → "Exportar paquetes especificados"
    • Elige "Mostrados" y guárdalo como filtered_ping.pcapng en ~/project

    Esto crea un nuevo archivo de captura que contiene solo los paquetes filtrados, lo cual es útil para compartir patrones de tráfico específicos o para un análisis posterior.

  7. Para el filtrado desde la línea de comandos (utilizando tshark):

    tshark -r ~/project/ping_capture.pcapng -Y "icmp" -w ~/project/tshark_filtered.pcap

    Este método alternativo utiliza la versión de línea de comandos de Wireshark (tshark) para filtrar y guardar paquetes sin abrir la interfaz gráfica. La bandera -Y especifica la expresión de filtro, similar a lo que usaste en la interfaz gráfica de Wireshark.

Exportar datos filtrados

En este paso, aprenderás cómo exportar datos de paquetes filtrados desde Wireshark en diferentes formatos con fines de análisis e informes. Exportar datos te permite compartir tus hallazgos con colegas o importar los datos a otras herramientas de análisis.

  1. Primero, abre el archivo de captura filtrado en Wireshark. Esto asume que ya has capturado y filtrado paquetes en pasos anteriores:

    wireshark ~/project/filtered_ping.pcapng &
  2. Para exportar todos los paquetes mostrados (después de aplicar filtros) en el formato nativo de Wireshark:

    • Haz clic en "Archivo" → "Exportar paquetes especificados" en la barra de menú
    • Asegúrate de que "Mostrados" esté seleccionado para exportar solo los paquetes que coincidan con tus filtros actuales
    • Guárdalo como exported_packets.pcapng en ~/project para un análisis posterior
  3. La herramienta de línea de comandos de Wireshark tshark te permite exportar datos en varios formatos. Aquí hay ejemplos comunes:

    • Para el formato CSV (útil para el análisis en hojas de cálculo):

      tshark -r ~/project/filtered_ping.pcapng -T fields -e frame.number -e ip.src -e ip.dst -E header=y -E separator=, > ~/project/packet_data.csv

      Esto exporta los números de paquetes, las direcciones IP de origen y destino con encabezados de columna.

    • Para una salida de texto plano detallada:

      tshark -r ~/project/filtered_ping.pcapng -V > ~/project/packet_details.txt

      Esto muestra los detalles completos de los paquetes, similar a la interfaz de Wireshark.

  4. El formato JSON es útil para el análisis programático. Exporta todos los datos de los paquetes como JSON:

    tshark -r ~/project/filtered_ping.pcapng -T json > ~/project/packets.json
  5. Después de exportar, verifica que todos los archivos se hayan creado correctamente listándolos:

    ls -lh ~/project/*.pcapng ~/project/*.csv ~/project/*.txt ~/project/*.json
  6. Para comprobar rápidamente cuántos paquetes se exportaron al archivo PCAPNG:

    capinfos ~/project/exported_packets.pcapng | grep "Number of packets"

    Esto confirma que tu filtro funcionó como se esperaba al mostrar la cantidad de paquetes.

Resumen

En este laboratorio, has aprendido cómo filtrar el tráfico de red utilizando Wireshark a través de ejercicios prácticos. Los pasos clave incluyeron instalar Wireshark, configurar los permisos de usuario, identificar las interfaces de red y capturar tráfico en vivo en la interfaz eth0.

También has practicado la aplicación de filtros de visualización para analizar paquetes específicos y la exportación de datos filtrados. Estas habilidades proporcionan una base para un análisis eficiente del tráfico de red utilizando las potentes capacidades de filtrado de Wireshark.