Network Forensics: Analisis de PCAP con Wireshark y Zeek
Guia practica de forense de red: captura y analisis de trafico con PCAP, Wireshark y Zeek. Tecnicas de analisis de flujos, deteccion de C2, exfiltracion de datos y reconstruccion de sesiones de red en investigaciones DFIR.
La red como fuente de evidencia
Cuando un atacante compromete un sistema, necesita comunicarse con el exterior: descargar herramientas, recibir comandos, exfiltrar datos. Cada una de estas acciones genera trafico de red que puede capturarse, almacenarse y analizarse.
La forense de red complementa la forense de host. Mientras que los artefactos del sistema operativo muestran que paso en el endpoint, la captura de red muestra que se comunico con quien, cuantos datos se transfirieron y que protocolos se usaron. En muchos casos, la evidencia de red es la unica disponible, especialmente cuando el atacante ha limpiado los artefactos del host o cuando los sistemas comprometidos son dispositivos IoT o appliances sin capacidad forense de host.
Captura de trafico: PCAP y alternativas
Formato PCAP
PCAP (Packet Capture) es el formato estandar para almacenar capturas de trafico de red. Un fichero PCAP contiene la copia completa de cada paquete capturado, incluyendo las cabeceras de todos los niveles del modelo OSI y el payload.
El formato PCAP-NG (Next Generation) es una evolucion que soporta multiples interfaces de captura, comentarios, metadatos y resolucion de nombres. La mayoria de herramientas modernas soportan ambos formatos.
Puntos de captura
La ubicacion del punto de captura determina que trafico es visible:
En el endpoint (host-based): tcpdump, Wireshark o el agente de un EDR capturan el trafico del host especifico. Util para investigar un sistema comprometido concreto, pero no proporciona visibilidad de la red completa.
En el switch (SPAN port / port mirroring): un puerto del switch duplica el trafico de otros puertos o VLANs. Permite capturar trafico de multiples hosts sin instalar agentes.
En el TAP de red: un dispositivo fisico que copia el trafico de un segmento de red sin introducir latencia ni puntos de fallo. Es la opcion preferida para captura forense porque garantiza que no se pierden paquetes.
En el firewall o proxy: muchos firewalls de siguiente generacion pueden capturar trafico en formato PCAP. Los proxies proporcionan visibilidad del trafico HTTP/HTTPS descifrado.
Captura con tcpdump
# Captura basica en la interfaz eth0
tcpdump -i eth0 -w captura.pcap
# Captura con filtro (solo trafico hacia/desde una IP sospechosa)
tcpdump -i eth0 host 45.33.32.156 -w sospechoso.pcap
# Captura con rotacion de ficheros (100 MB por fichero, max 50 ficheros)
tcpdump -i eth0 -w captura_%Y%m%d_%H%M%S.pcap -C 100 -W 50
# Captura sin resolucion DNS (mas rapido y no genera trafico DNS adicional)
tcpdump -i eth0 -nn -w captura.pcap
# Captura con filtro BPF avanzado
tcpdump -i eth0 'tcp port 443 and not host 192.168.1.0/24' -w https_externo.pcap
Analisis con Wireshark
Wireshark es la herramienta de referencia para analisis visual de capturas de red. Su interfaz grafica permite explorar paquetes individuales, seguir flujos de comunicacion y aplicar filtros complejos.
Filtros de visualizacion esenciales para DFIR
# Trafico DNS (buscar tunneling o consultas sospechosas)
dns
# Trafico HTTP (requests y responses)
http
# Trafico hacia/desde una IP especifica
ip.addr == 45.33.32.156
# Conexiones TCP nuevas (SYN)
tcp.flags.syn == 1 and tcp.flags.ack == 0
# Trafico TLS con SNI (Server Name Indication)
tls.handshake.extensions_server_name
# Trafico DNS con respuesta NXDOMAIN (dominio no existe)
dns.flags.rcode == 3
# Paquetes grandes (posible exfiltracion)
frame.len > 1400
# Trafico en puertos no estandar
tcp.port != 80 and tcp.port != 443 and tcp.port != 22 and tcp.port != 53
Follow TCP Stream
La funcion Follow TCP Stream (click derecho sobre un paquete, Follow, TCP Stream) reconstruye la conversacion completa entre dos endpoints. Esto permite ver el contenido de sesiones HTTP, FTP, SMTP y otros protocolos en texto plano.
Para protocolos cifrados (HTTPS, SSH), Follow Stream muestra datos cifrados que no son directamente legibles. Sin embargo, los metadatos de la conexion (IPs, puertos, timestamps, tamano de paquetes, SNI en TLS) siguen siendo visibles.
Exportacion de objetos
Wireshark puede extraer ficheros transferidos a traves de protocolos que entiende. File, Export Objects permite exportar ficheros de HTTP, SMB, TFTP e IMF (emails). Los ficheros extraidos pueden analizarse con sus respectivas herramientas forenses.
Estadisticas de red
El menu Statistics de Wireshark proporciona vistas agregadas utiles:
Conversations: lista todas las conversaciones entre pares de IPs con bytes totales, duracion y paquetes. Util para identificar las comunicaciones con mayor volumen.
Protocol Hierarchy: muestra la distribucion de protocolos en la captura. Un porcentaje alto de DNS puede indicar tunneling DNS.
IO Graphs: grafica el trafico a lo largo del tiempo. Picos de trafico en horas inusuales son sospechosos.
Endpoints: lista todas las IPs que aparecen en la captura con el volumen de trafico de cada una.
Analisis con Zeek
Zeek (anteriormente Bro) es un framework de analisis de trafico de red que genera logs estructurados a partir de capturas PCAP o de trafico en vivo. A diferencia de Wireshark, que se centra en paquetes individuales, Zeek se centra en conexiones y transacciones de protocolos de alto nivel.
Procesamiento de PCAP con Zeek
# Procesar un fichero PCAP con Zeek
zeek -r captura.pcap
# Zeek genera varios ficheros de log:
# conn.log - Todas las conexiones (IP origen/destino, puertos, bytes, duracion)
# dns.log - Consultas y respuestas DNS
# http.log - Transacciones HTTP (method, URI, status, user-agent)
# ssl.log - Handshakes TLS (SNI, certificado, version, cipher)
# files.log - Ficheros transferidos (hash, tipo MIME, tamano)
# x509.log - Certificados X.509 observados
# notice.log - Alertas generadas por las reglas de Zeek
Analisis de conn.log
conn.log es el log mas fundamental de Zeek. Cada linea representa una conexion TCP/UDP con campos estructurados:
# Conexiones con mayor duracion (posible C2 persistente)
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p duration orig_bytes resp_bytes | \
sort -t$'\t' -k4 -rn | head -20
# Conexiones con mayor transferencia de datos saliente (posible exfiltracion)
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p orig_bytes | \
sort -t$'\t' -k4 -rn | head -20
# Conexiones a puertos no estandar
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto service | \
awk '$3 != 80 && $3 != 443 && $3 != 53 && $3 != 22'
Analisis de DNS
El log DNS de Zeek es critico para detectar tunneling DNS y consultas a dominios de C2:
# Consultas DNS unicas ordenadas por frecuencia
cat dns.log | zeek-cut query | sort | uniq -c | sort -rn | head -50
# Consultas con subdominios largos (posible DNS tunneling)
cat dns.log | zeek-cut query | awk 'length > 50' | sort | uniq -c | sort -rn
# Consultas con respuesta NXDOMAIN (DGA - Domain Generation Algorithm)
cat dns.log | zeek-cut query rcode | grep NXDOMAIN | awk '{print $1}' | \
sort | uniq -c | sort -rn | head -20
# Consultas DNS tipo TXT (usado en DNS tunneling)
cat dns.log | zeek-cut query qtype answers | grep TXT
Analisis de TLS/SSL
# Certificados TLS con SNI (nombres de servidores accedidos)
cat ssl.log | zeek-cut server_name | sort | uniq -c | sort -rn | head -50
# Certificados self-signed o con errores de validacion
cat ssl.log | zeek-cut server_name validation_status | grep -v "ok"
# JA3 fingerprints (identificacion de clientes TLS)
cat ssl.log | zeek-cut ja3 server_name | sort | uniq -c | sort -rn
Los fingerprints JA3 son especialmente utiles porque identifican la implementacion TLS del cliente independientemente de la IP o el dominio. Un JA3 hash asociado a Cobalt Strike o Metasploit en la inteligencia de amenazas es un indicador fuerte de actividad maliciosa.
Deteccion de patrones maliciosos
Beaconing
El beaconing es el patron de comunicacion tipico de implantes C2: conexiones periodicas a intervalos regulares (o semi-regulares con jitter) a un servidor de comando y control.
Para detectar beaconing, analiza la regularidad de las conexiones a cada destino:
# Extraer timestamps de conexiones a un destino especifico
cat conn.log | zeek-cut ts id.resp_h id.resp_p | \
grep "45.33.32.156" | awk '{print $1}'
# Calcular intervalos entre conexiones consecutivas
# (requiere procesamiento adicional con Python o awk)
Herramientas especializadas como RITA (Real Intelligence Threat Analytics) automatizan la deteccion de beaconing analizando los logs de Zeek y aplicando analisis estadistico a los intervalos de conexion.
DNS tunneling
El tunneling DNS utiliza consultas y respuestas DNS para transmitir datos. Los indicadores incluyen:
Gran volumen de consultas DNS a un mismo dominio.
Subdominios inusualmente largos (los datos se codifican como subdominios).
Alto porcentaje de consultas tipo TXT (usadas para respuestas con datos codificados).
Ratio alto de bytes DNS frente al trafico total de un host.
Exfiltracion de datos
La exfiltracion se detecta por volumen anormal de trafico saliente. Busca:
Hosts internos que envian mas datos de los que reciben a destinos externos.
Transferencias grandes en horarios inusuales (madrugada, fines de semana).
Uso de protocolos poco comunes para la transferencia (DNS, ICMP).
Conexiones a servicios de almacenamiento cloud (Dropbox, Google Drive, OneDrive) desde hosts que normalmente no los usan.
Flow data: NetFlow e IPFIX
Cuando no hay captura de paquetes completa, los datos de flujo (flow data) proporcionan una vista de alto nivel del trafico de red. NetFlow (Cisco), IPFIX (estandar IETF) y sFlow registran metadatos de cada conexion sin almacenar el contenido.
Los campos tipicos de un flujo son: IP de origen y destino, puertos de origen y destino, protocolo, bytes transferidos, paquetes, timestamps de inicio y fin, y flags TCP.
Flow data es suficiente para detectar beaconing, exfiltracion por volumen, escaneo de puertos y movimiento lateral, pero no permite reconstruir el contenido de las comunicaciones.
Herramientas como nfdump, SiLK y Argus procesan datos de flujo para analisis forense.
Herramientas complementarias
NetworkMiner: herramienta forense que extrae ficheros, imagenes, credenciales y certificados del trafico de red. Especialmente util para reconstruir sesiones HTTP completas.
Arkime (anteriormente Moloch): plataforma de captura y busqueda de trafico a gran escala. Indexa PCAPs en Elasticsearch para busqueda rapida. Ideal para organizaciones que capturan trafico continuamente.
Suricata: motor IDS/IPS que puede procesar PCAPs offline y aplicar reglas de deteccion (Emerging Threats, Proofpoint) para identificar trafico malicioso conocido.
CapLoader: herramienta para analisis rapido de grandes PCAPs, con identificacion automatica de protocolos y separacion de flujos.
Metodologia de analisis de red
Un analisis forense de red sistematico sigue estos pasos:
Primero, obtener una vision general: procesa la captura con Zeek para generar los logs estructurados. Revisa las estadisticas de Wireshark (Conversations, Protocol Hierarchy, Endpoints) para identificar los hosts y protocolos mas relevantes.
Segundo, identificar comunicaciones externas sospechosas. Busca conexiones a IPs o dominios de C2 conocidos (cruza con feeds de inteligencia), beaconing, y conexiones a puertos o servicios inusuales.
Tercero, analizar el DNS. Busca tunneling, DGA y consultas a dominios maliciosos.
Cuarto, cuantificar las transferencias de datos. Identifica hosts con volumenes de transferencia saliente anormales para detectar exfiltracion.
Quinto, profundizar en conexiones especificas. Usa Wireshark para reconstruir sesiones individuales (Follow Stream), extraer ficheros transferidos y analizar el contenido en detalle.
Sexto, correlacionar con artefactos de host. Los timestamps de las conexiones de red deben correlacionarse con la ejecucion de procesos, accesos a ficheros y eventos del sistema en los endpoints involucrados.
Conclusion
La forense de red proporciona una perspectiva unica que no puede obtenerse solo con el analisis de host. Las comunicaciones de red son la huella de las acciones del atacante que cruzan las fronteras del sistema individual: descargas de herramientas, comunicaciones C2, movimiento lateral y exfiltracion.
Wireshark y Zeek son complementarios: Wireshark excels en el analisis detallado de paquetes individuales y la reconstruccion de sesiones, mientras que Zeek automatiza la generacion de logs estructurados que facilitan el analisis de patrones a escala. La combinacion de ambos, junto con los datos de flujo y las herramientas especializadas, proporciona la cobertura completa necesaria para una investigacion de red rigurosa.
Preguntas frecuentes
Libros recomendados
Artículos relacionados
Timeline Analysis: Como Reconstruir un Incidente Paso a Paso
Estrategias de Contencion: Red y Host en Respuesta a Incidentes
Herramientas DFIR Open Source: Guia Completa 2026
Que es Memory Forensics y Por Que es Esencial en DFIR
Threat Hunting con Zeek: Analisis de Trafico de Red para Detectar Amenazas
Adquisicion de Memoria RAM: Herramientas y Mejores Practicas
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.