Filtrado de tráfico en Wireshark

WiresharkBeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, aprenderás a filtrar el tráfico de red utilizando Wireshark, una herramienta esencial para el análisis de redes. Practicarás el análisis de un archivo de paquetes capturado previamente, aplicarás filtros de visualización para aislar tráfico específico y exportarás los resultados filtrados para un examen más detallado. Estas habilidades te ayudarán a identificar patrones de red, solucionar problemas de conectividad y comprender las comunicaciones de red.

Esta es una Práctica Guiada, 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 esta es una práctica de nivel principiante con una tasa de finalización del 93%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Primeros pasos con Tshark

Antes de sumergirte en la interfaz gráfica, comenzarás con tshark, la versión de línea de comandos de Wireshark. Es una herramienta potente para análisis rápidos y automatización mediante scripts. En este paso, verificarás la instalación y realizarás una inspección básica de un archivo de captura de paquetes proporcionado.

  1. Primero, verifica que tshark esté instalado correctamente comprobando su versión.

    tshark --version

    Deberías ver una salida que indique la versión de Wireshark y tshark, similar a esta:

    TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1)
    ...
  2. Se ha colocado un archivo de captura de paquetes de muestra llamado capture.pcap en el directorio de tu proyecto. Usa el comando ls para confirmar su presencia.

    ls -lh capture.pcap

    La salida mostrará los detalles del archivo, incluyendo su tamaño y nombre.

    -rw-rw-r-- 1 labex labex 9.1M Oct 24  2015 capture.pcap
  3. Para obtener un resumen de alto nivel del archivo de captura, utiliza la utilidad capinfos, que viene incluida con Wireshark.

    capinfos capture.pcap

    Este comando proporciona metadatos sobre el archivo, como el número de paquetes, la duración de la captura y el tamaño promedio de los paquetes.

    File name:           capture.pcap
    File type:           Wireshark/tcpdump/... - pcap
    File encapsulation:  Ethernet
    File timestamp precision:  microseconds (6)
    Packet size limit:   file hdr: 65535 bytes
    Number of packets:   14 k
    File size:           9444 kB
    Data size:           9216 kB
    Capture duration:    298.505344 seconds
    First packet time:   2011-01-26 02:52:22.484409
    Last packet time:    2011-01-26 02:57:20.989753
    Data byte rate:      30 kBps
    Data bit rate:       247 kbps
    Average packet size: 646.28 bytes
    Average packet rate: 47 packets/s
    SHA256:              77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1
    RIPEMD160:           68e950b2e438c7be011a46646ddfc8105b65b339
    SHA1:                06e502dca8dbfe8e6a9cabc61f722d94756f6db9
    Strict time order:   True
    Number of interfaces in file: 1
    Interface #0 info:
                         Encapsulation = Ethernet (1 - ether)
                         Capture length = 65535
                         Time precision = microseconds (6)
                         Time ticks per second = 1000000
                         Number of stat entries = 0
                         Number of packets = 14261
  4. Finalmente, usa tshark para leer los primeros cinco paquetes del archivo. El indicador -r especifica el archivo de entrada y -c limita el recuento de paquetes.

    tshark -r capture.pcap -c 5

    Esto mostrará un resumen de una línea para cada uno de los primeros cinco paquetes, dándote una visión rápida del tráfico.

        1   0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1
        2   0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK  (text/javascript)
        3   0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
        4   0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0
        5   0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64

Filtrado básico con Tshark

Las capturas de paquetes pueden contener miles de registros, lo que dificulta la búsqueda de información específica. Los filtros de visualización se utilizan para reducir la vista solo a los paquetes que cumplen ciertos criterios. En este paso, aprenderás a aplicar filtros básicos usando tshark.

  1. Los filtros de visualización se aplican mediante el indicador -Y (Y mayúscula). Para ver solo los paquetes TCP, usa el filtro tcp. Veamos los primeros cinco paquetes TCP del archivo.

    tshark -r capture.pcap -Y "tcp" -c 5

    La salida ahora solo mostrará paquetes cuyo protocolo sea TCP.

  2. También puedes filtrar basándote en direcciones IP. Para ver todos los paquetes que se originan en la dirección IP de origen 192.168.3.131, usa el filtro ip.src.

    tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5

    Observa el uso de == para una coincidencia exacta.

  3. Los filtros se pueden combinar utilizando operadores lógicos como && (AND). Para encontrar paquetes TCP desde la IP de origen 192.168.3.131, combina los dos filtros anteriores.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"
  4. Puedes guardar la salida filtrada en un nuevo archivo de captura para un análisis posterior. El indicador -w especifica el archivo de salida. Vamos a guardar los paquetes TCP filtrados en un archivo llamado filtered_tcp.pcap.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap
  5. Verifica que el nuevo archivo se haya creado correctamente.

    ls -lh filtered_tcp.pcap

    Verás tu nuevo archivo de captura, de menor tamaño, listado en el directorio.

Exploración del tráfico con la interfaz gráfica de Wireshark

Aunque tshark es excelente para la automatización, la interfaz gráfica de usuario (GUI) de Wireshark proporciona un entorno rico e interactivo para el análisis profundo de paquetes. En este paso, iniciarás la GUI de Wireshark y explorarás sus componentes principales.

  1. Inicia la aplicación Wireshark desde tu terminal. Importante: Asegúrate de estar utilizando la Interfaz de Escritorio (Desktop Interface), no una interfaz de terminal independiente, ya que Wireshark es una aplicación gráfica que requiere un entorno visual para funcionar correctamente. El símbolo ampersand & al final ejecuta la aplicación en segundo plano, liberando tu terminal para otros comandos.

    wireshark &

    Nota: Si intentas ejecutar este comando en una terminal independiente sin un entorno de escritorio, Wireshark no podrá iniciarse. Utiliza siempre la Interfaz de Escritorio para aplicaciones gráficas.

    Interfaz de escritorio de Wireshark
  2. Aparecerá la ventana principal de Wireshark. Dado que estamos analizando un archivo existente, no necesitas seleccionar una interfaz de red. En su lugar, abre el archivo capture.pcap.

    • Ve a la barra de menú y haz clic en File -> Open....
    • En el diálogo de archivos, navega hasta /home/labex/project y selecciona capture.pcap.
    • Haz clic en el botón Open.
  3. La ventana principal se llenará ahora con los paquetes del archivo. Tómate un momento para familiarizarte con los tres paneles principales:

    Ventana principal de Wireshark
    • Panel de Lista de Paquetes (Superior): Una lista de todos los paquetes en la captura, con columnas para el número de paquete, tiempo, origen, destino, protocolo y otra información resumida.
    • Panel de Detalles del Paquete (Medio): Una vista detallada y expandible de las capas de protocolo para el paquete seleccionado actualmente en el panel de lista. Puedes expandir cada capa (por ejemplo, Ethernet, IP, TCP) para ver sus campos.
    • Panel de Bytes del Paquete (Inferior): Los datos brutos del paquete seleccionado, mostrados en formatos hexadecimal y ASCII.
  4. Haz clic en diferentes paquetes en el Panel de Lista de Paquetes y observa cómo se actualiza la información en los paneles de Detalles y Bytes en consecuencia. Esta exploración interactiva es una de las características más potentes de Wireshark.

Aplicación de filtros de visualización en la interfaz gráfica

La sintaxis de los filtros de visualización que aprendiste con tshark funciona de manera idéntica en la interfaz gráfica de Wireshark. La GUI proporciona retroalimentación visual inmediata, lo que facilita la creación y prueba de filtros complejos.

  1. Localiza la barra de filtros de visualización en la parte superior de la ventana de Wireshark. Es un campo de entrada de texto largo, que a menudo tiene "Apply a display filter..." como texto de marcador de posición.

  2. Vamos a filtrar el tráfico HTTP. Escribe http en la barra de filtros y presiona Enter o haz clic en el botón Apply (una flecha a la derecha de la barra).

    http
    Filtro HTTP en Wireshark

    El panel de Lista de Paquetes se actualizará instantáneamente para mostrar solo los paquetes HTTP. Observa que la barra de filtros se vuelve verde, lo que indica una sintaxis de filtro válida. Si escribes un filtro inválido, se volverá roja.

  3. Ahora, busquemos todo el tráfico DNS. Borra el filtro anterior, escribe dns en la barra de filtros y presiona Enter.

    dns

    Ahora verás todas las consultas y respuestas del Sistema de Nombres de Dominio (DNS) en la captura.

  4. Puedes combinar filtros tal como lo hiciste con tshark. Para encontrar tráfico HTTP que involucre la dirección IP 192.168.3.131 (ya sea como origen o destino), usa el filtro ip.addr combinado con el filtro http.

    http && ip.addr == 192.168.3.131
    Filtro HTTP e IP en Wireshark

    Esta potente combinación te permite centrarte en conversaciones específicas. Experimenta con otros filtros, como tcp.port == 80 (para tráfico en el puerto HTTP estándar) o udp (para tráfico UDP). Para borrar un filtro y ver todos los paquetes de nuevo, haz clic en el botón X en la barra de filtros.

Exportación de datos filtrados

Después de filtrar el tráfico para aislar un evento de interés, a menudo es necesario exportar los resultados para informes, para compartirlos o para un análisis posterior en otras herramientas. Wireshark y tshark ofrecen múltiples formas de exportar datos.

  1. Primero, en la interfaz gráfica de Wireshark, aplica el filtro http como hiciste en el paso anterior.

  2. Para guardar solo los paquetes mostrados (filtrados) en un nuevo archivo de captura:

    • Ve a File -> Export Specified Packets....
    • En el cuadro de diálogo, asegúrate de que el botón de opción Displayed esté seleccionado bajo "All Packets".
    • Nombra el archivo como http_capture.pcap y guárdalo en tu directorio /home/labex/project.
    Exportar paquetes especificados en Wireshark
  3. También puedes exportar el resumen de los paquetes como un archivo de texto o CSV. Para exportar como CSV:

    • Ve a File -> Export Packet Dissections -> As CSV....
    • Asegúrate de que Displayed esté seleccionado para "All Packets".
    • Nombra el archivo como http_packets.csv y guárdalo en el directorio de tu proyecto.
  4. Puedes realizar las mismas operaciones de exportación usando tshark en la línea de comandos. Esto es muy útil para la automatización. El siguiente comando lee el archivo original capture.pcap, filtra por http y exporta campos específicos a un archivo CSV.

    tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv
    • -T fields: Especifica el formato de salida.
    • -e ...: Especifica los campos (columnas) a exportar.
    • -E header=y: Añade una fila de encabezado.
    • -E separator=,: Utiliza una coma como separador.
  5. Verifica que tus archivos exportados se hayan creado correctamente.

    ls -lh http_*

    Deberías ver los archivos http_capture.pcap, http_packets.csv y http_export_cli.csv en tu directorio.

Resumen

En esta práctica de laboratorio, has aprendido los fundamentos del filtrado de tráfico de red con Wireshark y su contraparte de línea de comandos, tshark. Comenzaste inspeccionando un archivo de captura con tshark y capinfos. Luego practicaste la aplicación de filtros de visualización para aislar protocolos y direcciones IP específicas, primero con tshark y luego dentro de la interfaz interactiva de Wireshark. Finalmente, aprendiste a exportar tus resultados filtrados a nuevos archivos de captura y archivos CSV legibles para informes y análisis. Estas habilidades básicas son fundamentales para cualquier tarea de análisis de red o resolución de problemas.