Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red

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 utilizar los filtros de captura de Wireshark para capturar de forma selectiva el tráfico de red según criterios específicos. Los filtros de captura son herramientas potentes que te permiten centrarte en los datos relevantes y eliminar el tráfico irrelevante, lo que hace que tu análisis sea más eficiente.

Explorarás diferentes expresiones de filtros de captura y las aplicarás a escenarios del mundo real. Esta experiencia práctica mejorará tus habilidades en la resolución de problemas de red y el análisis de seguridad.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/capture_filters("Capture Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/packet_capture -.-> lab-415940{{"Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red"}} wireshark/display_filters -.-> lab-415940{{"Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red"}} wireshark/capture_filters -.-> lab-415940{{"Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red"}} wireshark/packet_analysis -.-> lab-415940{{"Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red"}} wireshark/commandline_usage -.-> lab-415940{{"Aplicar Filtros de Captura de Wireshark para el Análisis del Tráfico de Red"}} end

Comprender la sintaxis de los filtros de captura

En el mundo del análisis de redes, manejar una gran cantidad de datos puede resultar abrumador. Ahí es donde los filtros de captura de Wireshark son útiles. Los filtros de captura te permiten recopilar solo paquetes específicos que coincidan con tus criterios. Esto reduce significativamente el volumen de datos que necesitas analizar. Es importante tener en cuenta que los filtros de captura son diferentes de los filtros de visualización. Los filtros de visualización se utilizan para filtrar paquetes ya capturados, mientras que los filtros de captura funcionan durante el proceso de captura de paquetes.

¿Qué son los filtros de captura?

Los filtros de captura utilizan la sintaxis del Berkeley Packet Filter (BPF). El BPF es un lenguaje especializado diseñado para filtrar paquetes de red antes de que sean procesados por aplicaciones como Wireshark. Al aplicar estos filtros, se pueden lograr varios objetivos importantes:

  • Reducir la cantidad de datos capturados: En lugar de capturar todo el tráfico de red, puedes centrarte en las partes relevantes, lo que ahorra espacio de almacenamiento y potencia de procesamiento.
  • Centrarse en tipos específicos de tráfico: Puedes apuntar a tipos particulares de actividad de red, como solicitudes HTTP o conexiones SSH.
  • Mejorar el rendimiento durante la captura de paquetes: Con menos datos que manejar, el proceso de captura de paquetes se vuelve más rápido y eficiente.
  • Simplificar el análisis posterior: Cuando tienes un conjunto de datos más pequeño y relevante, es mucho más fácil analizar y sacar conclusiones.

Sintaxis básica de los filtros de captura

Los filtros de captura en Wireshark utilizan una sintaxis específica basada en el lenguaje de filtro de libpcap. Echemos un vistazo a algunos elementos comunes:

  • host: Este elemento filtra el tráfico basado en la dirección IP o el nombre de host. Por ejemplo, si utilizas el filtro host 192.168.0.2, Wireshark capturará todo el tráfico hacia o desde la dirección IP especificada.
  • net: Filtra el tráfico basado en una dirección de red y una máscara de subred. Por ejemplo, el filtro net 10.0.0.0/24 capturará el tráfico de la red 10.0.0.0/24.
  • port: Filtra el tráfico basado en el número de puerto. Por ejemplo, port 80 se utiliza para capturar tráfico HTTP porque HTTP normalmente utiliza el puerto 80.
  • protocol: Filtra el tráfico basado en el protocolo. Por ejemplo, tcp capturará todo el tráfico TCP, y udp capturará todo el tráfico UDP.

Puedes combinar estos elementos utilizando operadores lógicos:

  • and o &&: Cuando utilizas este operador, ambas condiciones deben ser verdaderas para que un paquete sea capturado.
  • or o ||: Con este operador, cualquiera de las condiciones puede ser verdadera para que un paquete sea capturado.
  • not o !: Este operador niega una condición. Entonces, si utilizas not tcp, capturará todo el tráfico no TCP.

Practiquemos con un filtro sencillo

Ahora, pongamos en práctica lo que hemos aprendido. Sigue estos pasos para abrir Wireshark y aplicar un filtro de captura básico:

  1. Primero, necesitas abrir una terminal. Puedes hacer esto haciendo clic en el icono de la terminal en la barra de tareas del escritorio o presionando Ctrl+Alt+T.

  2. Una vez que la terminal esté abierta, escribe el siguiente comando para iniciar Wireshark:

    wireshark
  3. Cuando se abra Wireshark, verás la pantalla principal de inicio. Esta pantalla muestra todas las interfaces de red disponibles en tu sistema.

  4. Busca el campo de entrada "Capture Filter:" en la parte superior de la ventana de Wireshark. Aquí es donde ingresarás tu filtro de captura.

    Sintaxis del filtro de captura de Wireshark
  5. Escribe tcp en el cuadro de filtro. Al hacer esto, estás indicando a Wireshark que capture solo paquetes TCP.

  6. De la lista de interfaces, elige la etiquetada como any. Seleccionar any significa que Wireshark capturará paquetes en todas las interfaces de red.

  7. Haz clic en el botón azul de aleta de tiburón Start. Esto iniciará el proceso de captura de paquetes con el filtro que has aplicado.

    Filtro de captura
  8. Deja que Wireshark se ejecute durante unos 10 - 15 segundos. Durante este tiempo, capturará algunos paquetes TCP. Deberías comenzar a ver paquetes aparecer en la ventana principal.

  9. Para detener la captura, haz clic en el botón rojo cuadrado Stop en la barra de herramientas.

  10. Ahora, quieres guardar los paquetes capturados para un análisis posterior. Haz clic en File > Save As en la barra de menú.

  11. En el cuadro de diálogo de guardado de archivos, navega hasta el directorio /home/labex/project.

  12. Ingresa step1.pcapng como nombre de archivo y haz clic en Save.

    Guardar paquetes capturados

Ahora has aplicado con éxito un filtro de captura básico para recopilar solo paquetes TCP y has guardado los resultados para un análisis posterior.

Aplicación de filtros de captura para tráfico específico

En este paso, nos centraremos en capturar tráfico de red específico. En concreto, aprenderás cómo aplicar un filtro de captura más específico para capturar tráfico HTTP en el puerto 80. El tráfico HTTP en el puerto 80 es muy común en Internet, ya que se utiliza para la comunicación web no cifrada. Después de configurar el filtro, utilizarás un script para generar tráfico de prueba. Esto te ayudará a ver cómo funciona el filtro en un escenario del mundo real.

Creación de una nueva captura con un filtro específico

Primero, configuraremos una nueva captura con un filtro para el puerto 80. Antes de comenzar una nueva captura, debemos asegurarnos de que no haya capturas anteriores abiertas.

  1. Si todavía tienes abierta la captura anterior, ciérrala haciendo clic en File > Close o en el botón Close this capture file (X) en la esquina superior derecha de la lista de paquetes. Este paso es importante porque tener múltiples capturas abiertas puede causar confusión y afectar la precisión de tu nueva captura.

    Cerrar esta captura de archivo
  2. Una vez que hayas cerrado la captura anterior, deberías ver la pantalla de bienvenida de Wireshark que muestra las interfaces disponibles. Esta pantalla es donde comenzarás a configurar tu nueva captura.

  3. Utilizaremos un método más detallado para establecer el filtro de captura esta vez. Haz clic en el botón Capture Options (o ve a Capture > Options en el menú). El cuadro de diálogo Capture Options te da más control sobre cómo Wireshark captura paquetes, incluyendo la configuración del filtro de captura.

    Filtro de captura
  4. En el cuadro de diálogo de Opciones de captura, verás una lista de interfaces y un cuadro de entrada Capture Filter en la parte inferior. Las interfaces representan las conexiones de red disponibles en tu sistema, y el cuadro Capture Filter es donde especificarás las condiciones para los paquetes que deseas capturar.

    Filtro de captura
  5. Haz clic en el cuadro Capture Filter e introduce el filtro: port 80. Este filtro capturará todo el tráfico (tanto TCP como UDP) que utilice el puerto 80. El puerto 80 se utiliza comúnmente para la comunicación HTTP, así que al utilizar este filtro, le estamos indicando a Wireshark que solo capture paquetes relacionados con el tráfico HTTP en este puerto.

  6. Alternativamente, puedes hacer clic en el botón Capture Filter: para seleccionar de marcadores de filtro guardados. Esto puede ser útil si tienes un conjunto de filtros que utilizas con frecuencia.

    Filtro de captura
  7. En el cuadro de diálogo de selección de filtro, puedes elegir entre filtros predefinidos o crear uno nuevo. Por ahora, simplemente introduce port 80 directamente en el cuadro de filtro. Esto asegura que estamos capturando el tráfico específico que nos interesa.

    Filtro de captura
  8. Asegúrate de que la interfaz any esté seleccionada y haz clic en el botón Start para comenzar a capturar paquetes que coincidan con el filtro. Seleccionar any significa que Wireshark capturará paquetes de todas las interfaces de red disponibles.

Generación de tráfico de prueba

Ahora que Wireshark está capturando tráfico en el puerto 80, generemos algún tráfico de prueba para ver cómo funciona el filtro. Esto te ayudará a confirmar que el filtro está funcionando como se espera.

  1. Abre una nueva ventana de terminal haciendo clic en el icono de la terminal en la barra de tareas o presionando Ctrl+Alt+T. La terminal es donde ejecutarás comandos para generar el tráfico de prueba.

  2. En la nueva terminal, navega al directorio del proyecto:

    cd /home/labex/project

    Este comando cambia el directorio de trabajo actual al directorio del proyecto donde se encuentra el script para generar tráfico.

  3. Ejecuta el script pre - creado para generar tráfico HTTP simulado:

    ./simulate_traffic.sh

    Este script está diseñado para crear un servidor simple que escuche en el puerto 80 y enviar algunos datos a él, simulando tráfico HTTP del mundo real.

  4. Deberías ver una salida similar a esta:

    Netcat server listening on port 80...
    Sending data to port 80...
    Please check the Wireshark output for the data sent to port 80.

    Esta salida indica que el script está funcionando correctamente y que se están enviando datos al puerto 80.

  5. Este script crea un servidor simple que escucha en el puerto 80 y envía un breve mensaje "Hello, Wireshark!" a él. Este mensaje será capturado por Wireshark si el filtro está funcionando correctamente.

Análisis del tráfico capturado

  1. Vuelve a la ventana de Wireshark. Deberías ver los paquetes que fueron generados por el script. Estos paquetes son el resultado del tráfico de prueba que acabamos de generar.

  2. Estos paquetes deben mostrar comunicación en el puerto 80, coincidiendo con nuestro filtro de captura. Esto confirma que el filtro está funcionando como se espera.

    Captura del puerto 80
  3. En la lista de paquetes, deberías ver al menos 3 paquetes:

    • Paquete TCP SYN para establecer la conexión: Este es el primer paso en el handshake de tres vías de TCP, donde el cliente solicita establecer una conexión con el servidor.
    • Paquete TCP SYN - ACK para confirmar la conexión: El servidor responde a la solicitud SYN del cliente, indicando que está listo para establecer una conexión.
    • Paquete TCP que contiene los datos "Hello, Wireshark!": Este es el paquete de datos real que contiene el mensaje enviado por el script.
  4. Haz clic en uno de los paquetes para ver sus detalles en el panel central. Puedes expandir secciones haciendo clic en los iconos de flecha. Esto te permite ver las diferentes partes del paquete, como las cabeceras y los datos.

  5. Ahora detén la captura haciendo clic en el botón rojo cuadrado Stop en la barra de herramientas. Detener la captura es importante para que puedas comenzar a analizar los paquetes capturados sin que se agreguen nuevos paquetes.

  6. Guarda los paquetes capturados haciendo clic en File > Save As en la barra de menú. Guardar los paquetes te permite volver a ellos más tarde para un análisis más detallado.

  7. Navega al directorio /home/labex/project en el cuadro de diálogo de guardado de archivos. Este es el directorio donde queremos almacenar los paquetes capturados.

  8. Introduce step2.pcapng como nombre de archivo y haz clic en Save. El formato de archivo .pcapng es un formato común para almacenar capturas de paquetes de red.

Has aplicado con éxito un filtro de captura específico para recopilar solo tráfico en el puerto 80 y has observado tráfico real que coincide con este filtro.

Analizando el Tráfico Capturado con Filtros de Visualización (Display Filters)

En este paso, vamos a aprender cómo usar los filtros de visualización (display filters) para analizar el tráfico que ya has capturado. Antes de comenzar, es importante comprender la diferencia entre los filtros de captura (capture filters) y los filtros de visualización (display filters). Los filtros de captura (capture filters) se utilizan para decidir qué tráfico se recopila en primer lugar. Los filtros de visualización (display filters), por otro lado, te permiten concentrarte en partes específicas de los paquetes que ya han sido capturados. Son como una lupa para tus datos capturados, que te ayuda a concentrarte en los detalles que te interesan.

Comprendiendo la Diferencia Entre Filtros de Captura (Capture Filters) y de Visualización (Display Filters)

Echemos un vistazo más de cerca a la diferencia entre los filtros de captura (capture filters) y los filtros de visualización (display filters).

  • Los filtros de captura (capture filters) se aplican antes de que se registren los paquetes. Utilizan la sintaxis de Berkeley Packet Filter (BPF). Piensa en los filtros de captura (capture filters) como un guardián en la entrada. Deciden qué paquetes pueden entrar y ser capturados.
  • Los filtros de visualización (display filters) se aplican a los paquetes que ya han sido capturados. Utilizan la sintaxis propia de Wireshark. Los filtros de visualización (display filters) son como un foco que resalta paquetes específicos entre los que ya han sido capturados.
  • Los filtros de visualización (display filters) son más potentes y flexibles que los filtros de captura (capture filters). Te permiten realizar búsquedas y análisis más complejos en los datos capturados.
  • Los filtros de visualización (display filters) no reducen la cantidad de datos capturados. Solo controlan lo que se muestra en la interfaz. Por lo tanto, los datos capturados originales permanecen intactos y puedes cambiar el filtro de visualización (display filter) tantas veces como quieras para ver diferentes aspectos de los datos.

Abriendo Tu Archivo Capturado

Ahora, abramos el archivo que contiene los paquetes que capturaste anteriormente.

  1. Si todavía tienes Wireshark abierto desde el paso anterior, puedes continuar directamente. De lo contrario, abre Wireshark y luego abre el archivo que guardaste en el Paso 2.
  2. Para abrir un archivo guardado previamente en Wireshark:
    • Haz clic en File > Open en la barra de menú. Esta es una forma común de acceder a los archivos en muchas aplicaciones de software.
    • Navega al directorio /home/labex/project. Aquí es donde se almacena el archivo capturado.
    • Selecciona el archivo step2.pcapng y haz clic en Open. El formato de archivo .pcapng se utiliza comúnmente para almacenar datos de paquetes de red.
  3. Después de abrir el archivo, ahora deberías ver los paquetes que capturaste en el Paso 2 mostrados en Wireshark. Estos son los datos que analizaremos utilizando filtros de visualización (display filters).

Aplicando Filtros de Visualización (Display Filters)

A continuación, aplicaremos filtros de visualización (display filters) a los paquetes capturados.

  1. Localiza la barra de herramientas del filtro de visualización (display filter) en la parte superior de la ventana de Wireshark. Esto es diferente del filtro de captura (capture filter) que usaste anteriormente. Tiene un fondo verde claro cuando está activo. La barra de herramientas del filtro de visualización (display filter) es donde ingresarás las expresiones de filtro para mostrar paquetes específicos.

  2. En el campo del filtro de visualización (display filter), escribe tcp y presiona Enter o haz clic en el botón de la flecha derecha. Al escribir tcp, le estamos diciendo a Wireshark que solo muestre los paquetes que usan el protocolo TCP. Esto mostrará solo los paquetes TCP en la pantalla, filtrando cualquier otro paquete de protocolo si existe.

  3. Observa cómo los paquetes se filtran inmediatamente en la pantalla sin necesidad de una nueva captura. Esta es una de las ventajas de usar filtros de visualización (display filters). Puedes analizar rápidamente diferentes aspectos de los datos capturados sin tener que capturar el tráfico nuevamente.

  4. Ahora, probemos un filtro de visualización (display filter) más específico. Borra el filtro actual haciendo clic en el botón X en el lado derecho de la barra de filtro. Esto eliminará el filtro anterior y mostrará todos los paquetes capturados nuevamente.

  5. Ingresa el siguiente filtro para mostrar los paquetes que contienen la palabra "Wireshark":

    frame contains "Wireshark"

    Este filtro busca la palabra "Wireshark" en los datos del frame (trama) de los paquetes.

  6. Presiona Enter o haz clic en la flecha derecha para aplicar el filtro.

    Display filter
  7. Ahora deberías ver solo los paquetes que contienen el texto "Wireshark", probablemente solo uno o dos paquetes que contienen nuestro mensaje "Hello, Wireshark!". Esto muestra cómo se pueden usar los filtros de visualización (display filters) para encontrar información específica dentro de los paquetes capturados.

  8. Si haces clic en uno de estos paquetes en la lista de paquetes, puedes ver sus detalles en el panel central. Busca la sección "Data" que debería mostrar el texto "Hello, Wireshark!". Esto te permite examinar el contenido de los paquetes con más detalle.

Creando un Reporte (Report)

Ahora que has analizado el tráfico utilizando filtros de visualización (display filters), creemos un informe simple que documente lo que encontraste.

  1. Cuenta el número de paquetes que coinciden con el filtro frame contains "Wireshark". El número debería mostrarse en la barra de estado en la parte inferior de la ventana de Wireshark, mostrando algo como "Displayed: X of Y packets". Este número representa el número de paquetes que contienen la palabra "Wireshark".

  2. Abre una ventana de terminal haciendo clic en el icono de terminal en la barra de tareas o presionando Ctrl+Alt+T. La terminal es una herramienta poderosa que te permite ejecutar comandos en tu computadora.

  3. En la terminal, crea un archivo de informe (report) con la información del conteo de paquetes:

    echo "Number of packets matching the filter expression: 1" > /home/labex/project/report.txt

    Nota: Reemplaza 1 en el comando anterior con el número real de paquetes que observaste que coinciden con el filtro. Este número puede variar dependiendo de cómo se ejecutó el script.

    Save report

Ahora has aplicado con éxito filtros de visualización (display filters) para analizar el tráfico de red capturado y has documentado tus hallazgos en un archivo de informe (report).

Resumen

En este laboratorio, has aprendido cómo utilizar los filtros de captura de Wireshark para capturar y analizar selectivamente el tráfico de red según criterios específicos. Has practicado habilidades clave, como comprender la sintaxis básica de los filtros de captura basada en el lenguaje Berkeley Packet Filter, aplicarlos durante capturas en vivo y distinguir entre filtros de captura y filtros de visualización.

Estas habilidades son cruciales para administradores de red, analistas de seguridad y profesionales de TI que se ocupan de problemas de red o incidentes de seguridad. Dominar los filtros de captura permite un análisis de red más eficiente al centrarse en el tráfico relevante. A medida que avanzes en el análisis de redes, puedes basarte en estas habilidades para crear filtros complejos para la selección de tráfico sofisticado en entornos complejos.