← Blog

Tcpdump — Captura y Análisis de Paquetes

Captura de tráfico con tcpdump: filtros por host/puerto, lectura de PCAPs, extracción de IPs con awk/sort/uniq, inspección de flags TCP (tcp[13]) y volcado a fichero.

1. Operational Scope & Technical Objective

tcpdump captura y analiza paquetes en la interfaz o en ficheros .pcap. En operaciones cumple dos roles: recon pasivo (leer credenciales o protocolos en claro, mapear hosts) y forense (leer capturas del objetivo, extraer IPs y reconstruir conversaciones). El filtro BPF define qué se captura; los flags de salida (-n, -A, -X, -S) deciden cuánto se revela de cada paquete. La inspección de bytes TCP (tcp[13]) permite filtrar por flags concretos, la base del análisis fino de handshakes y sesiones.

2. High-Impact Syntax & Command Cheatsheet

# Captura en vivo: paquetes TCP hacia dos destinos
tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.5.5.252 21
#   filtro BPF: captura los TCP con dst IP y puerto indicados (and combina)

# Leer un fichero pcap
tcpdump -r passwordz.pcap

# Mostrar IPs y filtrar/sort (análisis de tráfico)
tcpdump -n -r passwordz.pcap | awk -F" " '{print $3}' | sort -u | head
#   -n        -> sin resolución DNS (más rápido y preciso)
#   $3        -> par src->dst de cada línea; sort -u -> destinos únicos

# Capturar el puerto 80 en la interfaz eth0 y volcarlo a pcap
tcpdump tcp port 80 -w output.pcap -i eth0
#   -w -> escribe a fichero (no a stdout); -i -> interfaz

# Filtrar por flags TCP usando el byte de offset 13 (TCP header)
tcpdump -A -n 'tcp[13] = 24' -r passwordz.pcap
#   tcp[13] = 24 -> ACK(0x10) + PSH(0x08) = 0x18 = 24: paquetes con datos de app
#   -A -> imprime cada paquete en ASCII (ver el payload)

# Filtros por dirección/puerto
tcpdump -n src host <ip> -r password_cracking_filtered.pcap
tcpdump -n dst host <ip> -r password_cracking_filtered.pcap
tcpdump -n port <port> -r password_cracking_filtered.pcap

# Flags de salida importantes
#   -nn  -> evita también la resolución de nombres de servicio (más rápido)
#   -X   -> hex + ASCII de cada paquete; -XX: incluye el header Ethernet
#   -A   -> solo ASCII (payloads de texto: credenciales, HTTP)
#   -S   -> números de secuencia absolutos (no relativos)
#   -s 0 -> snap-length completo (captura el paquete entero, sin truncar)

3. Real-World Offensive/Defensive Scenarios

Caza de credenciales en claro. Un pcap del objetivo (o una captura propia durante el test) se filtra con tcp[13] = 24 (ACK+PSH, donde van los datos) y -A: HTTP, FTP, SMTP, Telnet y protocolos sin TLS exponen usuarios y contraseñas directamente en ASCII.

Reconstrucción de hosts desde una captura. tcpdump -n -r cap.pcap | awk '{print $3}' | sort -u devuelve todos los pares de comunicación: el mapa de qué hosts hablan con qué, útil para mapear la red interna desde el pcap sin tocar la infraestructura.

Defensa (forense). El Blue Team usa tcpdump -s 0 -w <fecha>.pcap -i any como captura de referencia (snap-length completo para no perder payloads) y -nn para análisis rápidos de anomalías. Los -S absolutos son imprescindibles para correlacionar paquetes duplicados/retransmisiones en un incidente.