Decodificar Protocolos Personalizados 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ás cómo analizar y decodificar protocolos de red personalizados utilizando la herramienta de línea de comandos tshark de Wireshark. Practicarás la inspección de archivos de captura de paquetes con salida detallada y la decodificación del tráfico en puertos no estándar como protocolo HTTP.

Los ejercicios te guiarán a través del uso de marcas clave como -r, -V y -d para manipular los datos de los paquetes, verificar los detalles del puerto y guardar los resultados decodificados. Estas habilidades te permitirán manejar escenarios de protocolos personalizados en tareas de análisis de red del mundo real.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/protocol_dissection -.-> lab-548921{{"Decodificar Protocolos Personalizados en Tshark"}} wireshark/export_packets -.-> lab-548921{{"Decodificar Protocolos Personalizados en Tshark"}} wireshark/packet_analysis -.-> lab-548921{{"Decodificar Protocolos Personalizados en Tshark"}} wireshark/commandline_usage -.-> lab-548921{{"Decodificar Protocolos Personalizados en Tshark"}} end

Inspeccionar puertos con -r capture.pcap -V

En este paso, aprenderás cómo inspeccionar los puertos de red en un archivo de captura de paquetes utilizando la herramienta de línea de comandos tshark de Wireshark. Los puertos de red son como puertas que permiten que diferentes aplicaciones se comuniquen a través de una red. Utilizaremos la marca -r para leer un archivo de captura de paquetes y -V para mostrar información detallada de los paquetes, lo cual es esencial para entender el tráfico de red.

Primero, asegúrate de estar en el directorio correcto donde se almacenan nuestros archivos de laboratorio:

cd ~/project

Se ha proporcionado un archivo de captura de paquetes de muestra capture.pcap para este laboratorio. Este archivo contiene el tráfico de red grabado que analizaremos. Para inspeccionar los puertos en este archivo de captura, ejecuta:

tshark -r capture.pcap -V | less

Desglosemos este comando:

  • -r capture.pcap le dice a tshark que lea desde nuestro archivo de captura de paquetes
  • -V habilita la salida detallada, mostrando todos los detalles disponibles de los paquetes
  • | less canaliza la salida al programa less para facilitar el desplazamiento

La salida detallada te mostrará información importante de red, incluyendo:

  • Puertos de origen y destino de cada paquete (estos identifican qué aplicaciones se están comunicando)
  • Información del protocolo (qué tipo de comunicación está ocurriendo)
  • Marcas de tiempo de los paquetes (cuándo ocurrió la comunicación)
  • Otros detalles específicos del protocolo (información técnica adicional)

Para una mejor legibilidad, estamos utilizando less para ver la salida. Así es como navegar:

  • Utiliza las flechas del teclado para desplazarte hacia arriba y hacia abajo
  • Presiona q para salir cuando hayas terminado de examinar los paquetes

Ejemplo de salida que podrías ver:

Frame 1: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
Ethernet II, Src: 00:1a:2b:3c:4d:5e, Dst: 00:5e:4d:3c:2b:1a
Internet Protocol Version 4, Src: 192.168.1.100, Dst: 192.168.1.1
Transmission Control Protocol, Src Port: 54321, Dst Port: 80, Seq: 1, Ack: 1, Len: 0

En este ejemplo, presta especial atención a:

  • Src Port: 54321 - el número de puerto en la computadora emisora
  • Dst Port: 80 - el número de puerto en la computadora receptora (el puerto 80 generalmente indica tráfico web HTTP)

Comprender estos números de puerto ayuda a identificar qué aplicaciones o servicios se están comunicando a través de la red.

Decodificar el puerto 8080 como HTTP con -d tcp.port==8080,http

En este paso, exploraremos cómo instruir manualmente a Tshark para interpretar el tráfico de red en el puerto 8080 como protocolo HTTP. Esta técnica se vuelve esencial cuando las aplicaciones utilizan puertos no estándar para la comunicación HTTP, que Tshark no reconocería automáticamente como tráfico web.

Primero, naveguemos a nuestro directorio de trabajo donde se almacena el archivo de captura. Esto asegura que estemos trabajando con el archivo de captura de paquetes correcto:

cd ~/project

Ahora usaremos la poderosa función de decodificación de Tshark. El siguiente comando lee nuestra captura de paquetes y aplica reglas de decodificación especiales:

tshark -r capture.pcap -d tcp.port==8080,http | less

Desglosemos el parámetro -d que hace la magia aquí:

  • tcp.port==8080 le dice a Tshark que nos estamos enfocando en el tráfico TCP a través del puerto 8080
  • http especifica que queremos interpretar este tráfico como protocolo HTTP

Cuando tenga éxito, verá contenido HTTP correctamente formateado como este:

Hypertext Transfer Protocol
    GET /index.html HTTP/1.1\r\n
    Host: example.com\r\n
    User-Agent: curl/7.68.0\r\n
    Accept: */*\r\n
    \r\n

Esta salida muestra claramente las cabeceras de la solicitud HTTP, lo que confirma que nuestra decodificación funcionó. Sin la opción -d, el mismo tráfico aparecería como segmentos TCP sin procesar, lo que dificultaría mucho el análisis de las comunicaciones web. La tubería a less simplemente hace que la salida sea más fácil de desplazar para el análisis.

Confirmar la decodificación con -V

En este paso, verificaremos si nuestra configuración de decodificación HTTP en el puerto 8080 está funcionando correctamente. Esto es importante porque a veces los paquetes pueden no decodificarse como se espera, y necesitamos confirmar nuestra configuración. Usaremos el modo detallado de Wireshark (bandera -V) para ver información detallada del protocolo para cada paquete.

Primero, naveguemos a nuestro directorio de trabajo donde se almacena el archivo de captura:

cd ~/project

Ahora ejecutaremos tshark con nuestra regla de decodificación y salida detallada. El comando combina lo que aprendimos en pasos anteriores:

tshark -r capture.pcap -d tcp.port==8080,http -V | less

Esto es lo que hace cada parte:

  • -r capture.pcap lee nuestro archivo de captura de paquetes
  • -d tcp.port==8080,http aplica nuestra regla de decodificación HTTP al puerto 8080
  • -V habilita la salida detallada que muestra todos los detalles del protocolo
  • | less facilita el desplazamiento a través de una salida larga

Al examinar la salida, concéntrate en estos elementos clave que confirman una decodificación HTTP exitosa:

  1. Jerarquía de protocolos que muestra HTTP como el protocolo de la capa de aplicación (esto significa que tshark lo reconoce como tráfico HTTP)
  2. Cabeceras de solicitud/respuesta HTTP (estas deben ser claramente visibles y bien formateadas)
  3. Contenido de la carga útil HTTP (los datos reales que se transmiten)

Este es un ejemplo de cómo se ve el tráfico HTTP correctamente decodificado:

Hypertext Transfer Protocol
    GET /test.html HTTP/1.1\r\n
    Host: example.com:8080\r\n
    Connection: keep-alive\r\n
    User-Agent: Mozilla/5.0\r\n
    \r\n
    [Full request URI: http://example.com:8080/test.html]

Para entender mejor la diferencia que hace la decodificación, compara esta salida con lo que viste en el Paso 1 cuando no aplicamos la decodificación HTTP. Deberías notar que sin decodificación, el mismo tráfico aparecería como datos TCP sin procesar sin la estructura clara de HTTP que vemos aquí.

Guardar el archivo decodificado con -w decoded.pcap

En este paso, guardaremos nuestro tráfico HTTP decodificado en un nuevo archivo. Esto es importante porque preserva todo el trabajo de decodificación de protocolos que hemos realizado mientras mantiene intactos los datos originales de los paquetes. Piénsalo como guardar un documento después de hacer ediciones: quieres mantener ambas versiones.

Primero, asegúrate de que estemos en el directorio de trabajo correcto. El comando cd cambia de directorio, y nos movemos a nuestra carpeta de proyecto:

cd ~/project

Ahora usaremos Tshark para crear un nuevo archivo de captura con nuestro tráfico HTTP decodificado. El comando puede parecer complejo, pero lo desglosaremos parte por parte:

tshark -r capture.pcap -d tcp.port==8080,http -w decoded.pcap

Entendamos cada parte de este comando:

  • -r capture.pcap le dice a Tshark que lea de nuestro archivo de captura original
  • -d tcp.port==8080,http aplica nuestra regla de decodificación especial que trata el tráfico del puerto 8080 como HTTP
  • -w decoded.pcap especifica dónde guardar la nueva versión decodificada

Después de ejecutar esto, debemos comprobar que nuestro nuevo archivo se haya creado correctamente. El comando ls lista los archivos, y -lh muestra los detalles en un formato legible para humanos:

ls -lh decoded.pcap

Verás una salida como esta que muestra tu nuevo archivo:

-rw-r--r-- 1 labex labex 1.2M Sep 15 10:30 decoded.pcap

Este nuevo archivo contiene todos los paquetes originales, pero ahora cualquier tráfico en el puerto 8080 se interpretará correctamente como protocolo HTTP, lo que facilita mucho el análisis del tráfico web en futuras investigaciones.

Resumen

En este laboratorio, has aprendido cómo analizar y decodificar protocolos de red personalizados utilizando tshark. Practicaste la lectura de archivos de captura de paquetes con la bandera -r y la examinación de información detallada de los paquetes utilizando la bandera -V para identificar tráfico HTTP no estándar.

Además, exploraste la decodificación de protocolos aplicando la bandera -d para interpretar el tráfico en el puerto 8080 como HTTP. El laboratorio también cubrió el guardado de la salida decodificada en un nuevo archivo con la bandera -w para su referencia y análisis futuros.