Captura de Tráfico en Vivo con Tshark

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 a capturar tráfico de red en tiempo real utilizando la herramienta de línea de comandos tshark de Wireshark. Practicarás la identificación de interfaces de red con -D, la selección de una interfaz como eth1 utilizando -i y la captura de paquetes con la configuración predeterminada.

El laboratorio te guía a través del proceso de guardar las capturas en un archivo pcap utilizando -w para su posterior análisis. Estas habilidades fundamentales son esenciales para la resolución de problemas de red y el monitoreo del tráfico en escenarios del mundo real.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/interface -.-> lab-548916{{"Captura de Tráfico en Vivo con Tshark"}} wireshark/packet_capture -.-> lab-548916{{"Captura de Tráfico en Vivo con Tshark"}} wireshark/protocol_dissection -.-> lab-548916{{"Captura de Tráfico en Vivo con Tshark"}} wireshark/export_packets -.-> lab-548916{{"Captura de Tráfico en Vivo con Tshark"}} wireshark/commandline_usage -.-> lab-548916{{"Captura de Tráfico en Vivo con Tshark"}} end

Listar interfaces con -D

En este paso, aprenderás cómo listar las interfaces de red disponibles utilizando la herramienta de línea de comandos tshark de Wireshark. Las interfaces de red son los puntos físicos o virtuales donde tu computadora se conecta a una red. Antes de capturar tráfico de red, es crucial identificar qué interfaces están activas en tu sistema, ya que diferentes interfaces manejan diferentes tipos de tráfico de red.

  1. Primero, abre la terminal en tu entorno de máquina virtual (VM) de LabEx. La terminal es tu puerta de entrada para interactuar con el sistema Linux a través de comandos. El directorio de trabajo predeterminado es ~/project, lo que significa que cualquier archivo que crees se guardará aquí a menos que especifiques lo contrario.
Capture-capable network interfaces
  1. Para listar todas las interfaces de red disponibles, ejecuta el siguiente comando:
tshark -D
  1. El comando mostrará una salida que muestra todas las interfaces de red capaces de capturar tráfico. Una salida típica se ve así:
1. eth1
2. any
3. lo (Loopback)
4. nflog
5. nfqueue
6. docker0
  1. La opción -D es una opción de comando específica que le indica a tshark que muestre las interfaces disponibles. Cada interfaz tiene un propósito distinto:

    • eth1: Esta suele ser tu interfaz de red cableada principal, que maneja la mayoría de las comunicaciones de red externas.
    • lo: La interfaz de bucle interno (loopback) procesa el tráfico de red interno dentro de tu propia máquina.
    • any: Una interfaz virtual especial que captura el tráfico de todas las interfaces disponibles simultáneamente.
  2. Tómate un momento para examinar detenidamente la lista de interfaces. Necesitarás consultar estos nombres de interfaz más adelante cuando comencemos a capturar paquetes, ya que debes especificar exactamente qué tráfico de interfaz de red deseas monitorear. La numeración es útil cuando se seleccionan interfaces en comandos posteriores.

Seleccionar una interfaz con -i eth1

En este paso, aprenderás cómo seleccionar una interfaz de red específica para la captura de paquetes utilizando la herramienta tshark de Wireshark. Las interfaces de red son los puntos físicos o virtuales donde tu computadora se conecta a una red. La interfaz eth1 suele ser el primer puerto Ethernet en los sistemas Linux y maneja la mayoría del tráfico de red externo.

  1. Primero, asegúrate de estar en el directorio de trabajo correcto donde almacenaremos nuestros archivos de captura:
cd ~/project
  1. Para comenzar a capturar paquetes específicamente en la interfaz eth1, ejecuta este comando:
sudo tshark -i eth1
  1. Entendamos qué hace cada parte de este comando:

    • sudo: Te otorga los privilegios de administrador necesarios para acceder a las interfaces de red.
    • tshark: La versión de línea de comandos de Wireshark.
    • -i eth1: Indica a tshark que escuche en la interfaz eth1 (cámbialo si tu sistema utiliza nombres de interfaz diferentes).
  2. Cuando se esté ejecutando, verás el tráfico de red en tiempo real mostrado en tu terminal así:

Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1 TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0
2 0.000123456 192.168.1.1 → 192.168.1.100 TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

Cada línea representa un paquete de red que muestra las direcciones IP de origen/destino, el tipo de protocolo y otros detalles técnicos.

  1. Para detener la captura de paquetes, presiona Ctrl+C. La terminal luego mostrará estadísticas resumidas sobre el tráfico capturado.

  2. Notas importantes para principiantes:

    • eth1 es el nombre predeterminado para la primera interfaz Ethernet en la mayoría de los sistemas Linux.
    • Siempre utiliza el nombre exacto de la interfaz que encontraste al listar las interfaces.
    • Se requiere sudo porque la captura de tráfico de red necesita permisos especiales.
    • La salida muestra las comunicaciones de red reales que se están produciendo en tu sistema.

Iniciar la captura con configuraciones predeterminadas

En este paso, aprenderás cómo iniciar una captura básica de paquetes utilizando tshark de Wireshark con configuraciones predeterminadas. Esto se basa en los pasos anteriores en los que identificaste las interfaces y seleccionaste eth1. Comenzaremos capturando todo el tráfico de red que fluye a través de la interfaz eth1, que suele ser la primera interfaz Ethernet en los sistemas Linux.

  1. Primero, asegúrate de estar en el directorio de trabajo correcto donde almacenaremos nuestros archivos de captura:
cd ~/project
  1. Para comenzar a capturar paquetes con configuraciones predeterminadas en la interfaz eth1, ejecuta:
sudo tshark -i eth1

El comando sudo es necesario porque la captura de tráfico de red requiere privilegios de superusuario (root). La opción -i eth1 le indica a tshark que escuche específicamente en la interfaz de red eth1.

  1. Aspectos clave de este comando:

    • Captura todos los tipos de paquetes (TCP, UDP, ICMP, etc.) que pasan a través de eth1.
    • Muestra resúmenes de paquetes en tiempo real a medida que se capturan.
    • Utiliza filtros de captura predeterminados (captura todo el tráfico sin filtrar).
    • Muestra información básica de los paquetes, incluyendo:
      • Número de paquete (conteo secuencial que comienza desde 1).
      • Marca de tiempo (que muestra cuándo se capturó cada paquete).
      • Direcciones IP de origen y destino (que muestran de dónde viene y hacia dónde va el tráfico).
      • Protocolo (que identifica el tipo de protocolo de red).
      • Información básica sobre el contenido del paquete.
  2. Deberías ver una salida similar a esta:

1 0.000000000 192.168.1.100 → 8.8.8.8 DNS 74 Standard query
2 0.000123456 8.8.8.8 → 192.168.1.100 DNS 90 Standard query response

Cada línea representa un paquete de red. La flecha (→) muestra la dirección del flujo de tráfico entre las direcciones IP de origen y destino.

  1. Para pausar temporalmente la salida (sin detener la captura), presiona Ctrl+S. Presiona Ctrl+Q para reanudar. Esto es útil cuando quieres examinar paquetes específicos sin que los nuevos se deslicen demasiado rápido.

  2. Recuerda estos puntos importantes sobre esta captura básica:

    • La captura predeterminada muestra solo los encabezados de los paquetes (no la carga útil completa) para que la visualización sea manejable.
    • La captura continúa hasta que la detienes con Ctrl+C.
    • Aún no se están guardando paquetes en el disco (lo cubriremos en el siguiente paso).
    • La salida en la terminal es solo una vista en vivo; aún no estamos almacenando esta información de forma permanente.

Detener y Guardar en Archivo con -w capture.pcap

En este paso, aprenderá cómo detener correctamente una sesión de captura de paquetes y guardar los paquetes capturados en un archivo para su análisis posterior. Esto completa nuestro flujo de trabajo básico de Wireshark/tshark. Guardar paquetes en un archivo es esencial cuando necesita analizar el tráfico de red en un momento posterior o compartir los datos con colegas.

  1. Primero, asegúrese de estar en el directorio de trabajo correcto donde desea guardar su archivo de captura. El directorio ~/project se usa comúnmente para los ejercicios de laboratorio:
cd ~/project
  1. Para iniciar una nueva sesión de captura que guardará automáticamente los paquetes en un archivo, ejecute este comando. El flag -w le dice a tshark dónde almacenar los datos capturados:
tshark -i eth1 -w capture.pcap
  1. Analicemos los aspectos clave de este comando:

    • -w capture.pcap: Especifica el nombre del archivo de salida y guarda los paquetes en formato PCAP estándar
    • El archivo se creará en su directorio de trabajo actual (~/project)
    • A diferencia de la monitorización en vivo, este comando se ejecuta silenciosamente sin salida en pantalla mientras se guarda en el archivo

    Nota Importante Sobre los Permisos:

    • No use sudo con este comando (por ejemplo, sudo tshark -i eth1 -w capture.pcap)
    • El directorio ~/project tiene permisos específicos que restringen el acceso, incluido el acceso root (de superusuario)
    • Ejecutar con sudo resultará en un error de "Permiso denegado"
    • Use el comando sin sudo para asegurar la creación correcta del archivo con los permisos correctos
  2. Deje que la captura se ejecute durante unos 30 segundos para recopilar tráfico de red significativo. Esta duración le permite capturar varios tipos de paquetes sin crear un archivo excesivamente grande.

  3. Para detener la captura de forma correcta y finalizar el archivo, presione Ctrl+C. La terminal mostrará información resumida sobre su sesión de captura:

^CCapturing on 'eth1'
45 packets captured
  1. Verifique que su archivo de captura se haya creado correctamente listando el contenido del directorio. Los flags -lh muestran el tamaño del archivo en formato legible por humanos:
ls -lh capture.pcap
  1. Debería ver una salida similar a esta, que muestra que el archivo se creó con los permisos adecuados y contiene datos capturados:
-rw-r--r-- 1 labex labex 12K Aug 10 15:30 capture.pcap
  1. Notas importantes sobre cómo trabajar con archivos PCAP:
    • Los archivos PCAP se pueden analizar más tarde con la GUI de Wireshark o con comandos tshark
    • El tamaño del archivo aumenta con la duración de la captura; tenga en cuenta el espacio en disco
    • Use nombres de archivo únicos para sesiones de captura separadas para evitar sobrescribir
    • La extensión .pcap es estándar para los archivos de captura de paquetes

Resumen

En este laboratorio, has aprendido cómo capturar tráfico de red en vivo utilizando la herramienta de línea de comandos tshark de Wireshark. Has practicado listar las interfaces disponibles con la opción -D y capturar paquetes en interfaces específicas utilizando el parámetro -i, mientras observabas detalles clave de la red como las direcciones IP y los protocolos.

El ejercicio te ha proporcionado experiencia práctica con los comandos fundamentales de tshark, incluyendo el uso adecuado de los permisos sudo y los controles básicos de captura. Estas habilidades esenciales son la base para tareas más avanzadas de análisis y solución de problemas de red.