Parte: 9 — Forense digital y respuesta a incidentes · Fuente: NIST SP 800-86 y documentación de Wireshark/Zeek ⏱️ Duración estimada: 130 min · Nivel: Avanzado
Aprender a reconstruir lo que pasó en la red durante un incidente a partir de capturas de paquetes (PCAP) y registros de flujo. Al terminar podrás identificar exfiltración, canales de mando y control (C2), tunneling y movimiento lateral usando Wireshark, tshark, Zeek y NetworkMiner.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Fuentes: PCAP vs. flujo (NetFlow) | Detalle vs. escala |
| 2 | Filtros de captura y display | Encontrar la aguja |
| 3 | Reensamblado de sesiones TCP | Reconstruir lo que el sensor alcanzó a capturar |
| 4 | Extracción de archivos | Recuperar lo transferido |
| 5 | Detección de C2 y beaconing | Formular hipótesis a partir de periodicidad y contexto |
| 6 | Exfiltración por DNS/HTTP | Reconocer señales y corroborarlas con otras fuentes |
| 7 | Zeek (logs de red) | Análisis a gran escala |
| 8 | TLS y tráfico cifrado | Metadatos cuando no hay claro |
La forense de red reconstruye comunicaciones desde capturas y metadatos. PCAP ofrece detalle pero solo donde existió sensor; flow resume relaciones; Zeek interpreta protocolos. NAT, balanceadores, VPN y cifrado pueden ocultar identidad o contenido, por lo que topología y posición del sensor forman parte de la evidencia.
La tupla de red identifica una conversación en un punto, no necesariamente al usuario final. La reconstrucción TCP considera retransmisión, pérdida y orden. Extraer un objeto de HTTP no demuestra que se ejecutó; se corrobora en endpoint. Bajo TLS se analizan destino, tiempos, tamaños y handshake disponible, expresando límites de visibilidad.
Un PCAP puede conservar cabeceras y carga útil, pero únicamente de los paquetes que llegaron al sensor. Un flujo NetFlow/IPFIX resume extremos, puertos, duración y volumen; sacrifica contenido para cubrir más tiempo o más enlaces. Zeek ocupa otro nivel: interpreta protocolos y produce registros como conn.log, dns.log o http.log. Ninguna fuente es universal. Para saber qué archivo atravesó HTTP puede hacer falta PCAP; para descubrir que un host habló con miles de destinos durante una semana, los flujos suelen ser más prácticos.
Antes de atribuir una IP a una persona se dibuja el camino observado: VLAN, punto de captura, NAT, proxy, VPN, balanceador y resolución temporal de DHCP. La IP que aparece como origen en un sensor perimetral puede ser la dirección traducida de muchos equipos. Esta limitación no invalida la evidencia: define qué fuentes adicionales —DHCP, proxy, EDR o identidad— son necesarias.
Wireshark distingue filtros de captura y filtros de visualización. El primero decide qué paquetes se conservan y, por tanto, puede producir una pérdida irreversible; el segundo cambia solamente la vista sobre una captura ya guardada. Durante una investigación conviene preservar el PCAP original y trabajar con vistas o copias derivadas. Al seguir una secuencia TCP, la herramienta reordena segmentos disponibles, pero no puede inventar paquetes perdidos ni descifrar TLS sin material criptográfico autorizado.
La extracción de objetos es un paso analítico, no una conclusión. Se registra flujo, offset o número de paquete, método de extracción y hash del objeto. Después se valida tipo real, estructura y relación con DNS, HTTP y endpoint. Un ejecutable descargado demuestra transferencia observada; Prefetch, Amcache, memoria u otro artefacto son los que pueden apoyar una conclusión sobre ejecución.
Beaconing describe contactos repetidos que pueden ser compatibles con C2, pero servicios de actualización, telemetría y monitoreo también generan periodicidad. Se comparan intervalos, jitter, volumen, edad y reputación del destino, horario, certificado y comportamiento del proceso originador. De igual modo, subdominios largos o consultas TXT pueden aparecer en servicios legítimos. Una hipótesis de túnel DNS gana fuerza cuando se combinan alta entropía, volumen, direccionalidad, dominio inusual y correlación con un host comprometido.
En TLS, SNI —cuando está disponible—, versiones, suites, certificados, tamaños y tiempos aportan contexto, pero una huella como JA3 no identifica por sí sola a una familia o usuario: varias aplicaciones pueden compartirla y una actualización puede cambiarla. El lenguaje del informe debe reflejar esa incertidumbre.
Un host contacta cada cinco minutos a un dominio recién observado y descarga respuestas de tamaño similar. Esa periodicidad permite priorizar la sesión, no declararla maliciosa. El analista verifica primero si el destino pertenece a una plataforma de actualización, compara el patrón con otros equipos y revisa DNS, certificado, SNI y volumen. Luego relaciona la hora con el EDR y descubre que las conexiones proceden de un proceso ejecutado desde el perfil temporal del usuario.
La captura permite sostener que hubo comunicaciones y cuantificar los bytes transferidos. Si se recupera un objeto, su hash y estructura respaldan qué contenido atravesó el sensor. Para afirmar ejecución se necesita evidencia del host o memoria. El caso enseña a separar tres conclusiones diferentes: transferencia observada, patrón compatible con C2 y ejecución corroborada.
Dominas la clase cuando puedes seleccionar PCAP, flujo o logs Zeek según una pregunta; explicar la influencia del sensor, NAT, cifrado y pérdida; conservar trazabilidad de un objeto extraído; y defender una hipótesis de C2 o exfiltración con al menos dos señales independientes y una alternativa legítima evaluada.
tcpdump, dumpcap.Usa un PCAP propio o una muestra pública de entrenamiento.
bash
tshark -r captura.pcap -q -z conv,tcp
bash
tshark -r captura.pcap -Y "http.request" -T fields -e http.host -e http.request.uri
File → Export Objects → HTTP.
- NetworkMiner: carga el PCAP y revisa la pestaña Files.bash
tshark -r captura.pcap -Y "dns" -T fields -e dns.qry.name | sort | uniq -c | sort -rn | head
bash
zeek -r captura.pcap
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p duration
conn.log con RITA o calcula intervalos regulares hacia una misma IP externa.ssl.log y las huellas JA3 para identificar clientes anómalos.Dado un PCAP que contiene un canal C2 con beaconing y una exfiltración de datos, identifica la IP del C2, el intervalo de beaconing y qué se exfiltró.
Criterio de aceptación: reportas la IP/puerto del C2, el intervalo aproximado del beacon (con evidencia de la periodicidad), el método de exfiltración (DNS/HTTP) y, si es posible, el contenido o el tamaño de lo exfiltrado.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| No ves contenido, solo cifrado | Es TLS. Analiza metadatos (SNI, JA3, tamaños) en vez del claro. |
| Wireshark se cuelga con PCAP grande | Demasiado en memoria. Filtra con tshark o divide con editcap. |
| No detectas el beacon | Jitter aleatorio del malware. Analiza distribución de intervalos, no valores exactos. |
| Export Objects vacío | El archivo va fragmentado o cifrado. Prueba NetworkMiner o reensamblado manual. |
| Zeek no genera logs | Ruta o versión incorrecta. Verifica instalación y permisos de escritura. |
❓ ¿PCAP o NetFlow? PCAP puede aportar contenido y cabeceras con mayor detalle, pero consume más almacenamiento; NetFlow resume conversaciones y facilita cobertura temporal. Se elige una o ambas fuentes según pregunta, sensor, retención y disponibilidad.
❓ ¿Puedo descifrar TLS?
Solo si tienes las claves o el SSLKEYLOGFILE. Sin ellas, trabajas con metadatos: SNI, certificados, JA3, tamaños y tiempos.
❓ ¿Cómo se ve un túnel DNS? Muchas consultas a un mismo dominio con subdominios largos y aleatorios, a menudo tipo TXT o NULL.
❓ ¿Zeek reemplaza a Wireshark? No: Zeek resume a escala; Wireshark inspecciona a fondo. Se complementan.
Clase 207 — Forense de memoria RAM con Volatility