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.
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 principiante con una tasa de finalización del 80%. Ha recibido una tasa de reseñas positivas del 95% por parte de los estudiantes.
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:
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.
Una vez que la terminal esté abierta, escribe el siguiente comando para iniciar Wireshark:
wireshark
Cuando se abra Wireshark, verás la pantalla principal de inicio. Esta pantalla muestra todas las interfaces de red disponibles en tu sistema.
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.
Escribe tcp en el cuadro de filtro. Al hacer esto, estás indicando a Wireshark que capture solo paquetes TCP.
De la lista de interfaces, elige la etiquetada como any. Seleccionar any significa que Wireshark capturará paquetes en todas las interfaces de red.
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.
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.
Para detener la captura, haz clic en el botón rojo cuadrado Stop en la barra de herramientas.
Ahora, quieres guardar los paquetes capturados para un análisis posterior. Haz clic en File > Save As en la barra de menú.
En el cuadro de diálogo de guardado de archivos, navega hasta el directorio /home/labex/project.
Ingresa step1.pcapng como nombre de archivo y haz clic en Save.
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.
Aplicar filtros de captura para tráfico específico
En este paso, nos centraremos en capturar tráfico de red específico. Específicamente, aprenderá 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 sin cifrar. Después de configurar el filtro, utilizará un script para generar algo de tráfico de prueba. Esto le 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, configuremos una nueva captura con un filtro para el puerto 80. Antes de iniciar una nueva captura, debemos asegurarnos de que no haya capturas anteriores abiertas.
Si todavía tiene la captura anterior abierta, ciérrela haciendo clic en Archivo > Cerrar o haciendo clic en el botón Cerrar este archivo de captura (X) en la esquina superior derecha de la lista de paquetes. Este paso es importante porque tener varias capturas abiertas puede causar confusión y afectar la precisión de su nueva captura.
Una vez que haya cerrado la captura anterior, debería ver la pantalla de bienvenida de Wireshark mostrando las interfaces disponibles. Esta pantalla es donde comenzará a configurar su nueva captura.
Utilizaremos un método más detallado para establecer el filtro de captura esta vez. Haga clic en el botón Opciones de captura (o vaya a Captura > Opciones en el menú). El diálogo Opciones de captura le da más control sobre cómo Wireshark captura paquetes, incluyendo la configuración del filtro de captura.
En el diálogo Opciones de captura, verá una lista de interfaces y un cuadro de entrada Filtro de captura en la parte inferior. Las interfaces representan las conexiones de red disponibles en su sistema, y el cuadro Filtro de captura es donde especificará las condiciones para los paquetes que desea capturar.
Haga clic en el cuadro Filtro de captura e introduzca el filtro: tcp port 80. Este filtro capturará solo tráfico TCP que utilice el puerto 80. Al especificar tcp port 80, somos más específicos que simplemente usar port 80: le estamos diciendo a Wireshark que capture solo paquetes TCP relacionados con el tráfico HTTP en este puerto, excluyendo cualquier tráfico UDP que también pudiera usar el puerto 80. Esto es más preciso para el análisis de tráfico HTTP, ya que HTTP típicamente usa TCP como su protocolo de transporte.
Alternativamente, puede hacer clic en el botón Filtro de captura: para seleccionar entre marcadores de filtro guardados. Esto puede ser útil si tiene un conjunto de filtros que utiliza con frecuencia.
En el diálogo de selección de filtro, puede elegir entre filtros predefinidos o crear uno nuevo. Por ahora, simplemente introduzca port 80 directamente en el cuadro de filtro. Esto asegura que estamos capturando el tráfico específico que nos interesa.
Asegúrese de que la interfaz any esté seleccionada y haga clic en el botón Iniciar 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 algo de tráfico de prueba para ver el filtro en acción. Esto le ayudará a confirmar que el filtro está funcionando como se espera.
Abra una nueva ventana de terminal haciendo clic en el icono de terminal en la barra de tareas o presionando Ctrl+Alt+T. La terminal es donde ejecutará comandos para generar el tráfico de prueba.
En la nueva terminal, navegue 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.
Ejecute el script precreado para generar tráfico HTTP simulado:
./simulate_traffic.sh
Este script está diseñado para crear un servidor simple escuchando en el puerto 80 y enviarle algunos datos, simulando tráfico HTTP del mundo real.
Debería 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.
Este script crea un servidor simple escuchando en el puerto 80 y le envía un breve mensaje "Hello, Wireshark!". Este mensaje será capturado por Wireshark si el filtro está funcionando correctamente.
Análisis del Tráfico Capturado
Regrese a la ventana de Wireshark. Debería ver los paquetes que fueron generados por el script. Estos paquetes son el resultado del tráfico de prueba que acabamos de generar.
Estos paquetes deberían mostrar comunicación en el puerto 80, coincidiendo con nuestro filtro de captura. Esto confirma que el filtro está funcionando como se espera.
En la lista de paquetes, debería ver al menos 3 paquetes:
Paquete TCP SYN para establecer la conexión: Este es el primer paso en el apretón de manos de tres vías de TCP, donde el cliente solicita establecer una conexión con el servidor.
Paquete TCP SYN-ACK para acusar recibo de 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.
Haga clic en uno de los paquetes para ver sus detalles en el panel central. Puede expandir secciones haciendo clic en los iconos de flecha. Esto le permite ver las diferentes partes del paquete, como las cabeceras y los datos.
Ahora detenga la captura haciendo clic en el botón rojo cuadrado Detener en la barra de herramientas. Detener la captura es importante para que pueda comenzar a analizar los paquetes capturados sin que se agreguen nuevos paquetes.
Guarde los paquetes capturados haciendo clic en Archivo > Guardar como en la barra de menú. Guardar los paquetes le permite consultarlos más tarde para un análisis adicional.
Navegue al directorio /home/labex/project en el diálogo de guardado de archivos. Este es el directorio donde queremos almacenar los paquetes capturados.
Introduzca step2.pcapng como nombre de archivo y haga clic en Guardar. El formato de archivo .pcapng es un formato común para almacenar capturas de paquetes de red.
Ha aplicado con éxito un filtro de captura específico para recopilar solo tráfico en el puerto 80 y ha 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.
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.
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.
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.
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.
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.
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.
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.
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.
Presiona Enter o haz clic en la flecha derecha para aplicar el filtro.
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.
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.
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".
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.
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.
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.