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