Introducción a Tshark

WiresharkBeginner
Practicar Ahora

Introducción

En este laboratorio, explorarás tshark, la potente contraparte de línea de comandos de Wireshark. Mientras que Wireshark proporciona una interfaz gráfica para el análisis de red, tshark te permite realizar exactamente la misma captura y análisis de paquetes directamente desde la terminal.

Esto es importante porque el análisis de paquetes suele ocurrir en dos niveles diferentes. Herramientas como tcpdump son excelentes para mostrar resúmenes de paquetes sin procesar y aplicar filtros de captura de bajo nivel antes de que los paquetes se almacenen. tshark va un paso más allá al decodificar la estructura del protocolo después de la captura. Esto significa que entiende campos como los métodos HTTP, los nombres de consulta DNS y muchos otros detalles específicos de cada protocolo. En la práctica, los analistas suelen utilizar ambos estilos: captura de bajo nivel para recopilar evidencia de manera eficiente y análisis consciente de protocolos para realizar consultas más detalladas posteriormente.

Aprenderás a capturar tráfico de red en vivo, guardarlo en un archivo y aplicar filtros de visualización que comprenden intrínsecamente las estructuras de los protocolos (como HTTP y DNS). Estos filtros de visualización son mucho más capaces que los filtros estándar de Berkeley Packet Filters (BPF) porque pueden diseccionar el contenido de los paquetes. Finalmente, aprenderás a generar estadísticas de jerarquía de protocolos para obtener una visión general de alto nivel de tu tráfico de red.

Realizar una captura básica

En este paso, aprenderás a capturar tráfico de red en vivo utilizando tshark y a guardarlo en un archivo para su posterior análisis.

Antes de comenzar la captura, debemos asegurarnos de que haya algo de tráfico de red en tu sistema. Ya hay un script en segundo plano ejecutándose en tu entorno, generando continuamente tráfico DNS y HTTP.

En esta etapa, es útil separar la captura del análisis. La captura es el acto de preservar los paquetes exactamente tal como cruzan una interfaz. El análisis es lo que sucede después, cuando decodificas e interpretas esos paquetes. Las investigaciones de seguridad a menudo comienzan capturando de manera amplia, ya que es posible que aún no sepas qué es lo importante. Una vez que los paquetes están preservados en un archivo PCAP, puedes volver a leerlos muchas veces y realizar diferentes consultas sin necesidad de que el tráfico original vuelva a ocurrir.

Ahora, capturemos el tráfico de red. Usaremos tshark para escuchar en todas las interfaces de red disponibles (any) y guardaremos los paquetes capturados en un archivo llamado traffic.pcap. También le indicaremos a tshark que detenga automáticamente la captura después de 5 segundos.

Ejecuta los siguientes comandos para iniciar la captura y guardar el archivo correctamente:

sudo tshark -i any -w /tmp/traffic.pcap -a duration:5
sudo mv /tmp/traffic.pcap ~/project/traffic.pcap
sudo chown labex:labex ~/project/traffic.pcap

Analicemos las opciones utilizadas en el comando tshark:

  • sudo: Ejecuta el comando con privilegios administrativos, lo cual es necesario para capturar tráfico de red.
  • -i any: Especifica que tshark debe capturar tráfico en todas las interfaces de red disponibles.
  • -w /tmp/traffic.pcap: Indica a tshark que escriba temporalmente los datos de paquetes sin procesar capturados en un archivo en el directorio /tmp. Esta es una buena práctica para evitar problemas de permisos al ejecutar tshark como root.
  • -a duration:5: Establece una condición de parada automática (-a) para detener la captura después de una duración de 5 segundos.

Verás una salida similar a esta, que indica que se están capturando paquetes:

Capturing on 'eth0'
24

Una vez que hayan pasado los 5 segundos, tshark se cerrará automáticamente y tu archivo traffic.pcap estará listo para el análisis.

Aplicar filtros de visualización

En este paso, aprenderás a leer el archivo de captura de paquetes que acabas de crear y a aplicar filtros de visualización para aislar tipos específicos de tráfico.

Los filtros de visualización en tshark (y Wireshark) son increíblemente potentes porque entienden la estructura de los protocolos de red. En lugar de solo mirar direcciones IP o números de puerto, puedes filtrar el tráfico basándote en nombres de protocolos como http o dns.

Vale la pena enfatizar esa distinción. Un filtro de captura clásico hace preguntas de bajo nivel como "¿este paquete usa el puerto 53?". Un filtro de visualización puede hacer preguntas de nivel superior como "¿es este paquete una respuesta DNS?" o "¿tiene este paquete HTTP un campo específico?". En otras palabras, los filtros de visualización funcionan después de la disección del protocolo, razón por la cual resultan más expresivos y fáciles de leer.

Para leer un archivo de captura en lugar de capturar tráfico en vivo, utilizas la opción -r. Para aplicar un filtro de visualización, utilizas la opción -Y seguida de la cadena de filtro.

Primero, filtremos el archivo de captura para mostrar solo el tráfico HTTP. Ejecuta el siguiente comando:

tshark -r ~/project/traffic.pcap -Y "http"

Deberías ver una salida similar a esta, que muestra solo la solicitud HTTP GET y la respuesta HTTP OK correspondiente:

    4 0.012345678 10.0.2.15 → 93.184.216.34 HTTP 143 GET / HTTP/1.1
    8 0.045678901 93.184.216.34 → 10.0.2.15 HTTP 403 HTTP/1.1 200 OK  (text/html)

A continuación, filtremos el archivo de captura para mostrar solo el tráfico DNS. DNS (Domain Name System) es el protocolo utilizado para traducir nombres de dominio como example.com a direcciones IP.

Ejecuta el siguiente comando para aplicar el filtro de visualización DNS:

tshark -r ~/project/traffic.pcap -Y "dns"

La salida mostrará las consultas y respuestas DNS que ocurrieron durante tu ventana de captura:

    1 0.000000000 10.0.2.15 → 10.0.2.3 DNS 73 Standard query 0x1a2b A example.com
    2 0.001234567 10.0.2.3 → 10.0.2.15 DNS 89 Standard query response 0x1a2b A example.com A 93.184.216.34

Al usar la opción -Y, puedes examinar fácilmente miles de paquetes para encontrar exactamente lo que estás buscando.

Ver estadísticas de jerarquía de protocolos

En este paso, aprenderás a generar un resumen estadístico de los protocolos presentes en tu archivo de captura.

Al analizar un archivo de captura grande, a menudo es útil obtener un resumen de alto nivel del tipo de tráfico que contiene antes de profundizar en los paquetes individuales. tshark proporciona una función llamada "Estadísticas de jerarquía de protocolos" (Protocol Hierarchy Statistics), que calcula el porcentaje y el número de paquetes para cada protocolo.

Esta vista de arriba hacia abajo es una técnica de investigación común. Antes de dedicar tiempo a paquetes individuales, los analistas suelen hacer preguntas generales primero: ¿Qué protocolos dominan esta captura? ¿El tráfico es principalmente web, resolución de nombres o algo inusual? ¿Las proporciones coinciden con el rol esperado del sistema? Ese contexto de alto nivel te ayuda a decidir dónde vale la pena realizar una inspección más profunda.

Para generar estadísticas, utilizas la opción -z seguida de la estadística específica que deseas calcular. Para las estadísticas de jerarquía de protocolos, la palabra clave es io,phs.

Además, como solo queremos ver el informe estadístico y no los detalles de los paquetes individuales, utilizaremos la opción -q (quiet).

Ejecuta el siguiente comando para ver la jerarquía de protocolos de tu archivo de captura:

tshark -r ~/project/traffic.pcap -q -z io,phs

Verás una salida en forma de árbol que resume el tráfico:

===================================================================
Protocol Hierarchy Statistics
Filter:

eth                                      frames:24 bytes:2340
  ipv4                                   frames:24 bytes:2340
    udp                                  frames:2 bytes:162
      dns                                frames:2 bytes:162
    tcp                                  frames:12 bytes:1338
      http                               frames:2 bytes:546
    icmp                                 frames:10 bytes:840
===================================================================

Esta salida te indica exactamente cuántas tramas (paquetes) y bytes pertenecen a cada protocolo. Por ejemplo, puedes ver que la capa Ethernet (eth) contiene tráfico IPv4, que a su vez se desglosa en UDP (que contiene DNS), TCP (que contiene HTTP) e ICMP (el tráfico de ping que generamos).

Esta vista estadística es un excelente punto de partida para cualquier tarea de resolución de problemas de red o análisis de seguridad.

Resumen

¡Felicidades! Has completado con éxito el laboratorio de Introducción a Tshark.

En este laboratorio, aprendiste a:

  • Capturar tráfico de red en vivo y guardarlo en un archivo .pcap usando tshark.
  • Leer un archivo de captura y aplicar filtros de visualización conscientes de los protocolos para aislar el tráfico HTTP y DNS.
  • Generar y analizar estadísticas de jerarquía de protocolos para obtener una visión general de la actividad de la red.

Estas habilidades fundamentales forman la base del análisis de red y la resolución de problemas mediante línea de comandos en entornos Linux.