Analizar Conversaciones TCP en 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á a analizar conversaciones TCP utilizando la herramienta de línea de comandos tshark de Wireshark. Practicará la captura de tráfico TCP con filtros, la lista de conversaciones y el examen de puertos específicos como HTTP (puerto 80) mientras interpreta información detallada de los paquetes.

A través de ejercicios prácticos que incluyen la generación de tráfico con curl y el análisis de archivos de captura, dominará el aislamiento de flujos TCP e identificará las métricas clave de las conversaciones. Estas habilidades mejorarán su capacidad para solucionar problemas de red y analizar tráfico utilizando Wireshark.


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-548913{{"Analizar Conversaciones TCP en Tshark"}} wireshark/display_filters -.-> lab-548913{{"Analizar Conversaciones TCP en Tshark"}} wireshark/capture_filters -.-> lab-548913{{"Analizar Conversaciones TCP en Tshark"}} wireshark/packet_analysis -.-> lab-548913{{"Analizar Conversaciones TCP en Tshark"}} wireshark/commandline_usage -.-> lab-548913{{"Analizar Conversaciones TCP en Tshark"}} end

Capturar tráfico TCP con -f "tcp"

En este paso, aprenderá cómo capturar tráfico de red TCP utilizando la herramienta de línea de comandos tshark de Wireshark. TCP (Protocolo de Control de Transmisión) es uno de los protocolos fundamentales de Internet, responsable de la transmisión confiable de datos entre aplicaciones. Al utilizar el filtro -f "tcp", podemos centrarnos específicamente en los paquetes TCP, lo cual es útil cuando se analizan navegaciones web, transferencias de archivos o comunicaciones de correo electrónico.

  1. Primero, abra una terminal en su máquina virtual (VM) de LabEx haciendo clic en el icono de la terminal en el escritorio Xfce o utilizando el atajo Ctrl+Alt+T. La terminal es donde ejecutaremos todos nuestros comandos para este análisis de red.

  2. Navegue al directorio de trabajo predeterminado donde almacenaremos nuestros archivos de captura:

    cd ~/project

    Esto asegura que todos nuestros datos capturados se guardarán en una ubicación consistente y fácil de encontrar más adelante.

  3. Comience a capturar tráfico TCP con el siguiente comando:

    sudo tshark -f "tcp" -w tcp_capture.pcap

    Analicemos qué hace cada parte de este comando:

    • sudo nos otorga los privilegios de administrador necesarios para la captura de paquetes.
    • tshark es la versión de línea de comandos de Wireshark.
    • -f "tcp" actúa como un filtro de captura, indicando a tshark que solo registre paquetes TCP.
    • -w tcp_capture.pcap guarda los paquetes capturados en un archivo llamado "tcp_capture.pcap".
  4. Mientras tshark está en ejecución, necesitamos generar algún tráfico TCP de muestra. Abra otra ventana de terminal y ejecute:

    curl https://www.example.com

    Este comando realiza una solicitud web simple a example.com, que utiliza TCP para su comunicación. El comando curl mostrará el contenido HTML devuelto por el sitio web.

  5. Después de esperar unos segundos para capturar suficientes datos, detenga la captura presionando Ctrl+C en la primera terminal donde se está ejecutando tshark. Esto termina de forma segura el proceso de captura de paquetes.

  6. Ahora, verifiquemos lo que capturamos examinando las primeras líneas de nuestro archivo de captura:

    tshark -r tcp_capture.pcap | head -n 5

    Este comando lee (-r) nuestro archivo de captura y muestra los primeros 5 paquetes. Debería ver una salida que muestre el proceso de handshake TCP, que incluye:

    • Paquetes SYN (sincronización) que inician la conexión.
    • Respuestas SYN-ACK (sincronización - confirmación).
    • Direcciones IP de origen y destino.
    • Números de puerto utilizados para la comunicación.

Listar conversaciones con -z conv,tcp

En este paso, aprenderá cómo analizar conversaciones TCP a partir del tráfico capturado utilizando la opción -z conv,tcp de Wireshark. Una conversación TCP representa una sesión de comunicación completa entre dos puntos finales, identificados por sus direcciones IP y números de puerto. Esta función proporciona un resumen de todas las conversaciones TCP en su captura, mostrando las direcciones IP de origen/destino, los puertos y las estadísticas de paquetes, lo cual es esencial para comprender los patrones de comunicación de red.

  1. Primero, asegúrese de estar en el directorio correcto donde se almacena su archivo de captura. Esto es importante porque Tshark necesita saber dónde encontrar el archivo de captura de paquetes:

    cd ~/project
  2. El comando básico para listar las conversaciones TCP analiza los paquetes capturados y muestra una tabla resumen. La bandera -r especifica el archivo de entrada, mientras que -z conv,tcp habilita la función de estadísticas de conversación:

    tshark -r tcp_capture.pcap -z conv,tcp
  3. La salida mostrará una tabla que muestra todas las conversaciones TCP, similar a este ejemplo. Cada fila representa una conversación entre dos puntos finales, mostrando el número de tramas (paquetes) y bytes transferidos en cada dirección:

    =========================================================================
    TCP Conversations
    Filter:<No Filter>
                                                  |       <-      | |       ->      | |     Total     |
                                                  | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
    192.168.1.2:49152   <-> 93.184.216.34:80     |      3    180 | |      3    216 | |      6    396 |
    =========================================================================
  4. Para obtener una vista más detallada con marcas de tiempo absolutas que muestren cuándo se produjo cada conversación, utilice la opción -t ad. Esto ayuda a entender el momento y la secuencia de los eventos de red:

    tshark -r tcp_capture.pcap -z conv,tcp -t ad
  5. Puede filtrar las conversaciones por criterios específicos utilizando filtros de visualización con la opción -Y. Este ejemplo filtra las conversaciones que involucran el puerto 80 (tráfico HTTP), lo cual es útil cuando solo desea analizar el tráfico web:

    tshark -r tcp_capture.pcap -z conv,tcp -Y "tcp.port==80"
  6. Para guardar las estadísticas de conversación para un análisis posterior o un informe, redirija la salida a un archivo de texto. Esto crea un registro permanente de su análisis que puede revisar o compartir con otros:

    tshark -r tcp_capture.pcap -z conv,tcp > tcp_conversations.txt

Filtrar un puerto específico con -Y "tcp.port==80"

En este paso, aprenderá cómo filtrar el tráfico de red para un puerto TCP específico (puerto 80) utilizando la sintaxis de filtro de visualización de Wireshark con la opción -Y "tcp.port==80". El puerto 80 es el puerto estándar para el tráfico web HTTP, por lo que este filtro ayuda a aislar las comunicaciones relacionadas con la web en su captura de red.

Antes de comenzar, entendamos lo que hace este filtro: muestra todos los paquetes TCP en los que el puerto de origen O el puerto de destino es 80. Esto es diferente de filtrar específicamente por puertos de origen o destino, lo cual cubriremos más adelante.

  1. Primero, asegúrese de estar en el directorio correcto donde se almacena su archivo de captura:

    cd ~/project
  2. Para filtrar el tráfico previamente capturado para el puerto 80 (HTTP), ejecute:

    tshark -r tcp_capture.pcap -Y "tcp.port==80"

    La bandera -r especifica el archivo de entrada, mientras que -Y aplica el filtro de visualización. Este comando lee los paquetes de tcp_capture.pcap, pero solo muestra aquellos que involucran el puerto 80.

  3. La salida mostrará solo los paquetes que involucran el puerto 80, ya sea como puerto de origen o de destino:

     1 0.000000000    192.168.1.2 → 93.184.216.34 TCP 74 49152 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460
     2 0.028763000  93.184.216.34 → 192.168.1.2 TCP 74 80 → 49152 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
     3 0.028852000    192.168.1.2 → 93.184.216.34 TCP 66 49152 → 80 [ACK] Seq=1 Ack=1 Win=64240 Len=0

    Esta salida muestra un completo handshake TCP de tres vías (SYN, SYN - ACK, ACK) entre un cliente (192.168.1.2) y un servidor web (93.184.216.34).

  4. Para filtrar específicamente el tráfico dirigido al puerto 80 (puerto de destino), que muestra las solicitudes a servidores web:

    tshark -r tcp_capture.pcap -Y "tcp.dstport==80"
  5. Para filtrar el tráfico que proviene del puerto 80 (puerto de origen), que normalmente muestra las respuestas de servidores web:

    tshark -r tcp_capture.pcap -Y "tcp.srcport==80"
  6. Puede combinar esto con otros filtros para un análisis más preciso. Por ejemplo, para ver solo las solicitudes HTTP GET (el tipo más común de solicitud web):

    tshark -r tcp_capture.pcap -Y "tcp.port==80 && http.request.method==GET"

    Esto combina un filtro de puerto con un filtro de protocolo HTTP para mostrar específicamente cuándo los navegadores web solicitan páginas a servidores.

Mostrar resultados con -V

En este paso, exploraremos cómo ver detalles completos de paquetes utilizando la opción -V (detallada) de Wireshark. Cuando se solucionan problemas de red, ver la desglose completo del protocolo es crucial. La bandera -V revela cada capa de la pila de red, desde los marcos Ethernet hasta los protocolos de la capa de aplicación, lo que le ayuda a entender exactamente lo que está sucediendo en su tráfico de red.

  1. Primero, asegúrese de estar en el directorio correcto donde se almacena su archivo de captura. Esto es importante porque Tshark necesita acceder al archivo que desea analizar:

    cd ~/project
  2. El comando básico para mostrar todos los detalles de los paquetes le muestra todo lo que Tshark puede decodificar. Esto es útil cuando necesita examinar la estructura completa de las comunicaciones de red:

    tshark -r tcp_capture.pcap -V
  3. La salida detallada muestra detalles técnicos en un formato estructurado. Esto es lo que significa cada parte:

    • Frame: Información de la capa física sobre el tamaño del paquete
    • Ethernet II: Direcciones MAC de la capa de enlace de datos
    • IP: Direccionamiento de la capa de red
    • TCP: Puertos y números de secuencia de la capa de transporte
    Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
    Ethernet II, Src: 00:11:22:33:44:55, Dst: 66:77:88:99:aa:bb
    Internet Protocol Version 4, Src: 192.168.1.2, Dst: 93.184.216.34
    Transmission Control Protocol, Src Port: 49152, Dst Port: 80, Seq: 0, Ack: 0, Len: 0
  4. Cuando se trabaja con capturas grandes, combinar filtros con la salida detallada ayuda a centrarse en el tráfico relevante. Este ejemplo muestra solo el tráfico HTTP (puerto 80) y limita la salida a las primeras 20 líneas:

    tshark -r tcp_capture.pcap -Y "tcp.port==80" -V | head -n 20
  5. Para la documentación o un análisis posterior, puede guardar la salida detallada en un archivo de texto. Esto crea un registro permanente de su inspección de paquetes:

    tshark -r tcp_capture.pcap -V > verbose_output.txt
  6. Para examinar elementos específicos de un protocolo como los encabezados HTTP, combine filtros de protocolo con el modo detallado. Esto es útil cuando se depuran aplicaciones web o se analizan transacciones HTTP:

    tshark -r tcp_capture.pcap -Y "http" -V

Resumen

En este laboratorio, has aprendido a analizar conversaciones TCP utilizando la herramienta de línea de comandos tshark de Wireshark. Has capturado tráfico TCP con filtros específicos, examinado los detalles del handshake TCP y generado tráfico de muestra para su análisis.

Además, has explorado técnicas para listar las conversaciones TCP entre puntos finales y filtrar el tráfico de un puerto específico. El laboratorio ha proporcionado experiencia práctica en la inspección de paquetes utilizando una salida detallada y estadísticas de conversación para un análisis de red efectivo.