← Volver al inicio
Wireshark Forense PCAP TShark Sniffing Blue Team
Avanzado

Wireshark y TShark: Análisis de Tráfico

20/03/2022

Wireshark es el analizador de protocolos de red (sniffer) más utilizado del mundo. Captura el tráfico de la red en tiempo real y lo desglosa capa por capa (según el modelo OSI), permitiéndote ver exactamente qué está ocurriendo a nivel microscópico. En ciberseguridad, se utiliza para análisis forense de incidentes (DFIR), análisis de malware, y detección de fugas de datos.

1. Arquitectura y Captura de Tráfico

Para capturar tráfico, tu tarjeta de red debe ponerse en Modo Promiscuo (escuchar todos los paquetes que viajan por el cable/aire, no solo los dirigidos a ti). Las capturas se guardan en archivos .pcap o el más moderno .pcapng.

# Captura desde la terminal usando tshark (La versión CLI de Wireshark):
tshark -i eth0

# Capturar y guardar en un archivo para análisis posterior:
tshark -i eth0 -w captura_incidente.pcapng

# Leer un archivo .pcapng:
tshark -r captura_incidente.pcapng

Filtros de Captura (BPF - Berkeley Packet Filter)

Se aplican ANTES de capturar. Sirven para no llenar el disco duro si estás en una red de 10Gbps. Si el paquete no coincide, se descarta y nunca se guarda.

# Capturar solo tráfico hacia o desde el servidor web:
tshark -i eth0 -f "host 192.168.1.50"

# Capturar solo tráfico TCP (ignorando UDP y ARP):
tshark -i eth0 -f "tcp"

# No capturar mi propia conexión SSH para evitar ruido infinito:
tshark -i eth0 -f "not port 22"

2. Filtros de Visualización (Display Filters)

Se aplican DESPUÉS de capturar, directamente en la barra superior de Wireshark. Son el bisturí del analista forense. No borran paquetes, solo ocultan los que no coinciden.

# Filtros por Dirección IP:
ip.addr == 192.168.1.100       # Origen o Destino
ip.src == 10.0.0.5             # Solo si es Origen (Source)
ip.dst == 8.8.8.8              # Solo si es Destino (Destination)
ip.addr >= 192.168.1.1 and ip.addr <= 192.168.1.50 # Rangos

# Filtros por Protocolo y Puerto:
tcp.port == 443                # HTTPS
udp.dstport == 53              # Consultas DNS
http                           # Todo el tráfico HTTP (en claro)

# Filtrar por contenido del Payload (Búsqueda de cadenas de texto):
frame contains "password"
http.request.uri contains "admin"
tcp.payload contains "MZ"      # Detectar firmas de ejecutables Windows (.exe)

🔴 Analista Forense (DFIR)

Tienes un archivo PCAP de 2GB de un incidente. Sabes que la IP infectada 192.168.1.100 estableció una conexión segura y exfiltró datos al puerto 443. Escribe el Display Filter exacto para aislar únicamente el paquete que inició esta conexión (el paquete TCP SYN).

>_ INICIAR RETO CTF 20

3. Desencriptar Tráfico HTTPS (SSL/TLS)

Hoy en día, casi todo viaja cifrado. Wireshark solo verá "Application Data" incomprensible. Sin embargo, si tienes control sobre el cliente o el servidor, puedes desencriptarlo.

# 1. Configurar la variable de entorno en el equipo víctima antes de que abra el navegador:
export SSLKEYLOGFILE=/tmp/sslkeylog.log

# 2. El navegador (Chrome/Firefox) guardará las claves criptográficas simétricas ahí.
# 3. En Wireshark ve a: Edit -> Preferences -> Protocols -> TLS
# 4. En el campo "(Pre)-Master-Secret log filename", carga el archivo sslkeylog.log.
# ¡Magia! El tráfico HTTPS ahora aparecerá como HTTP normal en texto claro.

4. Extracción de Archivos (Malware/Documentos)

Si un usuario descargó un malware por HTTP o FTP sin cifrar, el archivo viaja fragmentado en los paquetes. Wireshark puede reconstruirlo.

5. Análisis del TCP 3-Way Handshake y Anomalías

Para detectar escaneos de Nmap o ataques DoS, debes entender los "Flags" de TCP. Toda conexión normal empieza con SYN -> SYN,ACK -> ACK.

# Detectar un escaneo sigiloso (Nmap SYN Scan):
tcp.flags.syn == 1 and tcp.flags.ack == 0

# Detectar un ataque de denegación de servicio o caída de red (Paquetes Reset):
tcp.flags.reset == 1

# Ver retransmisiones (indica congestión o pérdida de paquetes en la red):
tcp.analysis.retransmission

6. TShark: Análisis Estadístico en CLI

A veces un PCAP es tan grande (varios Gigabytes) que abrirlo en la interfaz gráfica congela el ordenador. tshark te permite parsear datos masivos extrayendo solo lo necesario.

# Mostrar solo IPs de origen y URLs visitadas (Ideal para sacar un listado de dominios):
tshark -r captura.pcap -Y "http.request" -T fields -e ip.src -e http.host

# Jerarquía de protocolos (¿De qué está compuesto este PCAP?):
tshark -r captura.pcap -q -z io,phs

# Top Talkers (¿Qué IP generó más tráfico?):
tshark -r captura.pcap -q -z endpoints,ip