TSHARK - Analisis de Trafico de Red

TSHARK - Analisis de Trafico de Red

1. Introduccion

TSHARK es la version de linea de comandos de Wireshark. Permite capturar y analizar trafico de red desde la terminal con capacidades avanzadas de filtrado y extraccion de datos. Es una herramienta esencial para penetration testing y analisis forense.

Esta guia cubre instalacion, filtros, extraccion de datos y ejemplos practicos para el uso efectivo de tshark.


2. Instalacion

2.1. Arch Linux

sudo pacman -S wireshark-cli

2.2. Kali/Parrot

sudo apt install tshark

2.3. Requisitos

# Verificar instalacion
tshark -v

# Ver permisos
ls -la /usr/bin/tshark

3. Sintaxis Basica

3.1. Forma General

tshark [opciones] [filtro]

3.2. Listar Interfaces

# Listar todas las interfaces
tshark -D

3.3. Captura Basica

# Capturar en interfaz
tshark -i eth0

# Capturar con limite
tshark -i eth0 -c 100

4. filtros de Captura (-f)

Los filtros de captura (-f) usan la sintaxis de filtros de captura de libpcap y se aplican durante la captura para reducir el tamano de la captura.

4.1. Por Protocolo

# Solo TCP
tshark -i eth0 -f tcp

# Solo UDP
tshark -i eth0 -f udp

# Solo ICMP
tshark -i eth0 -f icmp

# Solo ARP
tshark -i eth0 -f arp

4.2. Por Host

# Filtrar por host
tshark -i eth0 -f "host 192.168.1.1"

# Solo origen
tshark -i eth0 -f "src host 192.168.1.1"

# Solo destino
tshark -i eth0 -f "dst host 192.168.1.1"

4.3. Por Puerto

# Puerto especifico
tshark -i eth0 -f "port 80"

# Puerto origen
tshark -i eth0 -f "src port 22"

# Puerto destino
tshark -i eth0 -f "dst port 443"

# Rango de puertos
tshark -i eth0 -f "portrange 20-25"

4.4. Por Red

# Red especifica
tshark -i eth0 -f "net 192.168.1.0/24"

# Red origen
tshark -i eth0 -f "src net 10.0.0.0/8"

# Red destino
tshark -i eth0 -f "dst net 10.0.0.0/8"

4.5. Combinaciones

# TCP en puerto 80
tshark -i eth0 -f "tcp and port 80"

# host especifico + puerto
tshark -i eth0 -f "tcp and host 192.168.1.1 and port 443"

# Excluir puerto
tshark -i eth0 -f "not port 22"

# Multiples puertos
tshark -i eth0 -f "port 80 or port 443"

5. filtros de Visualizacion (-Y)

Los filtros de visualizacion (-Y) usan la sintaxis de filtros de Wireshark y se aplican a paquetes ya capturados o en tiempo real.

5.1. Por Protocolo

# Filtrar TCP
tshark -i eth0 -Y tcp

# Filtrar UDP
tshark -i eth0 -Y udp

# Filtrar HTTP
tshark -i eth0 -Y http

# Filtrar DNS
tshark -i eth0 -Y dns

5.2. Por Direccion IP

# Por IP (source o destination)
tshark -i eth0 -Y "ip.addr == 192.168.1.1"

# IP origen
tshark -i eth0 -Y "ip.src == 192.168.1.1"

# IP destino
tshark -i eth0 -Y "ip.dst == 192.168.1.1"

# Multiple IPs
tshark -i eth0 -Y "ip.addr == 192.168.1.1 or ip.addr == 10.0.0.1"

5.3. Por Puerto

# Puerto TCP
tshark -i eth0 -Y "tcp.port == 80"

# Puerto origen TCP
tshark -i eth0 -Y "tcp.srcport == 22"

# Puerto destino TCP
tshark -i eth0 -Y "tcp.dstport == 443"

# Puerto UDP
tshark -i eth0 -Y "udp.port == 53"

5.4. Por Protocolos Aplicacion

# HTTP requests
tshark -i eth0 -Y "http.request"

# HTTP responses
tshark -i eth0 -Y "http.response"

# HTTP POST
tshark -i eth0 -Y "http.request.method == POST"

# DNS queries
tshark -i eth0 -Y "dns"

# TLS/SSL
tshark -i eth0 -Y "tls"

5.5. Por TCP Flags

# Solo SYN
tshark -i eth0 -Y "tcp.flags.syn == 1"

# Solo ACK
tshark -i eth0 -Y "tcp.flags.ack == 1"

# SYN-ACK
tshark -i eth0 -Y "tcp.flags.syn == 1 and tcp.flags.ack == 1"

# RST
tshark -i eth0 -Y "tcp.flags.reset == 1"

6. Format de Salida

6.1. Campos (-T y -e)

Parametro Descripcion
-T Formato de salida (fields, json, etc.)
-e Campo a extraer

6.2. Extraccion de Campos

# IP origen y destino
tshark -r captura.pcap -T fields -e ip.src -e ip.dst

# Cabecera HTTP request
tshark -r captura.pcap -T fields -e http.request.method -e http.request.uri

# Usuario HTTP basic auth
tshark -r captura.pcap -T fields -e http.authorization

# Datos HTTP (POST body)
tshark -r captura.pcap -T fields -e http.file_data

# User-Agent
tshark -r captura.pcap -T fields -e http.user_agent

# IP source + HTTP request method + URI
tshark -r captura.pcap -T fields -e ip.src -e http.request.method -e http.request.uri

6.3. Formato JSON

# Salida JSON
tshark -r captura.pcap -T json

# Filtrar + JSON
tshark -r captura.pcap -Y "http" -T json

7. Estadisticas (-z)

7.1. Modulos Disponibles

Modulo Descripcion
conv Conversaciones entre hosts
conv,tcp Conversaciones TCP
conv,udp Conversaciones UDP
ip Estadisticas IP
endpoints Endpoints encontrados
endpoints,tcp Endpoints TCP
io,phs Historial de protocolos
io,stats Estadisticas I/O
smb Estadisticas SMB
http Estadisticas HTTP

7.2. Uso

# Conversaciones
tshark -r captura.pcap -q -z conv,ip

# Endpoints
tshark -r captura.pcap -q -z endpoints,ip

# Estadisticas de protocolo
tshark -r captura.pcap -q -z io,phs

# Estadisticas HTTP
tshark -r captura.pcap -q -z http

8. Guardar Capturas

8.1. Guardar a Archivo

# Guardar pcap
tshark -i eth0 -w captura.pcap

# Guardar con filtros
tshark -i eth0 -f "tcp" -w captura.pcap

8.2. Leer desde Archivo

# Leer archivo
tshark -r captura.pcap

# Leer con filtros
tshark -r captura.pcap -Y "http"

9. Ejemplos Practicos

9.1. Captura Basica

# Captura basica
tshark -i eth0

# Captura con cantidad
tshark -i eth0 -c 100

9.2. Extraccion de Datos

# Extraer todas las URLs
tshark -r captura.pcap -T fields -e http.request.uri

# Extraer credenciales
tshark -r captura.pcap -Y "http.request.method == POST" -T fields -e http.file_data

# Extraer user-agents
tshark -r captura.pcap -T fields -e http.user_agent

9.3. Analisis

# Ver flujo TCP
tshark -i eth0 -Y "tcp.stream eq 0"

# Ver conversaciones
tshark -r captura.pcap -q -z conv,tcp

# Ver requests HTTP especificos
tshark -r captura.pcap -Y "http.request.uri matches /admin"

9.4. Estadisticas

# Trafico por protocolo
tshark -r captura.pcap -q -z io,phs

# Hosts mas activos
tshark -r captura.pcap -q -z endpoints,ip

# Puerto mas usado
tshark -r captura.pcap -q -z io,stats

10. Casos de Uso

10.1. Analisis de HTTP

# GET requests
tshark -i eth0 -Y "http.request.method == GET"

# POST requests
tshark -i eth0 -Y "http.request.method == POST"

# Requests a dominio
tshark -i eth0 -Y "http.host == example.com"

10.2. Detectar Escaneos

# Puertos SYN
tshark -i eth0 -Y "tcp.flags.syn == 1 and tcp.flags.ack == 0"

# Conexiones incompletas
tshark -i eth0 -Y "tcp.flags.syn == 1"

10.3. Credential Stuffing

# Buscar passwords en claro
tshark -i eth0 -Y "http contains password" -T fields -e http.file_data

# Buscar Basic Auth
tshark -i eth0 -Y "http.authorization" -T fields -e http.authorization

11. Comparativa con tcpdump

Caracteristica tcpdump tshark
Facilidad de uso Alta Media
filtros Basic Avanzados (Wireshark)
Extraccion de campos Limitada Completa
Estadisticas No Si
GUI No No
Output formateado Basic Multiple

Recomendacion:

  • Usar tcpdump para capturas rapidas
  • Usar tshark para analisis detallado

12. Feedback

12.1. Lo Que Esta Bien

  • filtros avanzados de Wireshark
  • Extraccion de campos completa
  • Estadisticas integradas
  • Salida JSON / fields

12.2. Lo Que Falta

  • Casos de studio avanzados
  • filtros de protocolos adicionales
  • Documentacion de optimizacion

12.3. Mejoras Recomendadas

  • Agregar analisis de protocolos modernos
  • Documentar extraccion de credenciales
  • Agregar ejemplos de malware analysis