Introducción
Imagina que intentas contar todos los coches rojos que pasan por una autopista concurrida en tiempo real. Es estresante y propenso a errores. Ahora imagina que grabas un vídeo de esa autopista, te llevas la cinta a casa y puedes pausar, rebobinar y avanzar rápidamente para contar los coches con total precisión.
En el mundo de la ciberseguridad y la informática forense, los profesionales rara vez analizan el tráfico de red en vivo mientras pasa a gran velocidad. En su lugar, "graban el vídeo". Capturan el tráfico en bruto y lo guardan en un formato estándar conocido como archivo de captura de paquetes (PCAP, por sus siglas en inglés). Este enfoque proporciona un registro permanente e inalterado de los eventos de red, lo que permite un análisis profundo y sin estrés mucho después de que haya ocurrido un incidente.
Esa mentalidad de mantenimiento de registros es esencial porque muchos eventos de seguridad son fugaces. Una conexión sospechosa puede durar solo unos segundos. Una solicitud de malware puede ocurrir una vez y no repetirse nunca. Si no preservaste el tráfico en el momento en que ocurrió, podrías perder la oportunidad de reconstruir el evento más tarde. Por lo tanto, los archivos PCAP desempeñan para la actividad de red el mismo papel que las imágenes de disco y los archivos de registro desempeñan en otras investigaciones forenses.
En este laboratorio, aprenderás el arte esencial de gestionar archivos PCAP utilizando tcpdump. Practicarás cómo escribir tráfico de red en vivo en un archivo de forma silenciosa, cómo leerlo en tu terminal para su revisión offline, cómo aplicar filtros precisos para investigar tráfico antiguo y cómo extraer limpiamente pequeñas porciones de evidencia para compartirlas con otros.
Escribir tráfico en un archivo PCAP
El primer paso en el análisis offline es, efectivamente, grabar los datos. En lugar de permitir que tcpdump sature tu pantalla con texto que se desplaza rápidamente, puedes indicarle que escriba todo directamente en un archivo de almacenamiento de forma silenciosa. Esto se logra utilizando la bandera -w (write, escribir).
Observa la diferencia de propósito entre una captura de pantalla y una captura PCAP. Cuando se imprime en la terminal, tcpdump ya está resumiendo los paquetes para que los lea un humano. Cuando se escribe en un archivo PCAP, se conservan los datos del paquete en una forma que otras herramientas de análisis pueden procesar más tarde. Es por eso que escribir en un archivo suele ser la mejor opción cuando crees que podrías necesitar revisar la evidencia.
Cuando utilizas la bandera -w seguida de un nombre de archivo, tcpdump deja de enviar información a tu pantalla por completo. Captura los datos de los paquetes en bruto directamente desde la interfaz de red y los empaqueta de forma segura en el formato PCAP estándar.
Primero, asegurémonos de que estás en tu directorio principal de proyecto, donde es seguro guardar archivos:
cd ~/project
Ahora, es momento de capturar. Para evitar que el programa grabe indefinidamente y llene tu disco duro, utilizaremos la bandera -c (count, contar) para indicarle que se detenga exactamente después de 50 paquetes. También introduciremos la bandera -i any, que le dice al programa que lance una red amplia y capture el tráfico que se mueve a través de todas las puertas de red disponibles simultáneamente.
Ejecuta el siguiente comando para capturar 50 paquetes y empaquetarlos en un archivo llamado capture.pcap:
sudo tcpdump -i any -c 50 -w capture.pcap
Debido a que tu terminal basada en navegador genera constantemente pequeñas cantidades de tráfico de red en segundo plano para mantenerse conectada, la captura probablemente terminará muy rápido. Verás un breve resumen como este:
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
50 packets captured
52 packets received by filter
0 packets dropped by kernel
Observa la diferencia crucial aquí: no se imprimió absolutamente ningún detalle específico de los paquetes. Todos los datos confidenciales se guardaron silenciosamente en el archivo.
Puedes verificar que tu nueva grabación existe y comprobar su tamaño físico utilizando el comando estándar de listado de Linux:
ls -lh capture.pcap
Ver el archivo capture.pcap listado junto con su tamaño confirma que el tráfico de red en bruto se guardó correctamente y está listo para su análisis.
Leer tráfico desde un archivo PCAP
Ahora que has guardado tu evidencia de forma segura, necesitas una manera de examinarla. Este proceso se conoce comúnmente como análisis offline.
El análisis offline tiene una ventaja práctica importante: separa la recolección de la interpretación. Durante un incidente en vivo, los defensores a menudo aún no saben qué paquetes son importantes. Su primer trabajo es preservar la mayor cantidad posible de evidencia relevante. Solo después, una vez que la situación está estable, comienzan el proceso más lento de hacer preguntas específicas sobre los datos guardados.
Para abrir y leer un archivo PCAP, cambias el interruptor de escritura a lectura utilizando la bandera -r (read, leer), seguida de tu nombre de archivo. La belleza de este comando es que tcpdump procesará el archivo guardado exactamente como si los paquetes estuvieran pasando por la red en vivo en este momento.
Ejecuta el siguiente comando para enviar los paquetes de tu archivo capture.pcap recién creado de vuelta a tu pantalla:
tcpdump -r capture.pcap
Nota: Capturar tráfico en vivo requiere acceso profundo al sistema, por lo que usamos sudo. Sin embargo, leer un archivo normal del que eres propietario no lo requiere. Puedes ejecutar el comando de lectura de forma segura sin privilegios especiales de administrador.
De repente, los 50 paquetes que capturaste silenciosamente antes se mostrarán en tu pantalla, luciendo idénticos a una captura en vivo:
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:25:31.123500 IP 10.0.2.2.54321 > 10.0.2.100.22: Flags [.], ack 100, win 500, length 0
...
Leer desde un archivo estático es un gran alivio para un analista. Debido a que los datos están congelados en el tiempo, puedes ejecutar el comando -r una y otra vez, tomándote todo el tiempo que necesites, sin alterar nunca la evidencia original.
Para agilizar tu análisis, puedes combinar la bandera -r con otras opciones de visualización. Por ejemplo, usar la bandera -n ordena a tcpdump que omita la traducción de direcciones IP a nombres de computadora. Esto evita que la herramienta realice búsquedas adicionales en segundo plano, lo que resulta en una visualización mucho más rápida y una salida mucho más limpia y técnica:
tcpdump -n -r capture.pcap
Aplicar filtros a archivos PCAP existentes
Grabar un gran bloque de tráfico a menudo resulta en archivos masivos llenos de ruido irrelevante. Cuando realizas una investigación, casi nunca querrás leer cada línea de paquete una por una.
Es por eso que una buena recolección de evidencia suele ser amplia, mientras que un buen análisis de evidencia suele ser estrecho. Durante la recolección, a menudo prefieres perder la menor cantidad posible. Durante el análisis, reduces agresivamente el alcance para poder concentrarte en los paquetes que responden a tu pregunta actual. Usar filtros en un PCAP guardado te permite hacer ambas cosas sin repetir la captura original.
La verdadera magia de tcpdump es que todos los potentes filtros de paquetes Berkeley (BPF) que utilizas en redes en vivo funcionan exactamente de la misma manera en archivos guardados. tcpdump leerá rápidamente todo el archivo PCAP en segundo plano, pero solo imprimirá los paquetes específicos que coincidan con el filtro que hayas elegido.
Probemos esto filtrando tu archivo capture.pcap para que muestre exclusivamente tráfico TCP, ignorando todo lo demás. Ejecuta el siguiente comando:
tcpdump -n -r capture.pcap tcp
La salida será notablemente más corta, mostrando solo los paquetes identificados como protocolo TCP.
Puedes ser tan preciso como necesites. Por ejemplo, si sospechas de un problema con el servicio de shell seguro (que se ejecuta intensamente en segundo plano de tu entorno de terminal en el puerto 22), puedes aplicar un filtro de puerto de forma retroactiva.
Ejecuta este comando:
tcpdump -n -r capture.pcap port 22
La salida en tu pantalla mostrará estrictamente los paquetes donde el origen o el destino coincidan con el puerto 22:
reading from file capture.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144
10:25:31.123456 IP 10.0.2.100.22 > 10.0.2.2.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
...
Esta capacidad de aplicar filtros después del hecho es posiblemente la habilidad más crítica en la informática forense. En una crisis del mundo real, los defensores lanzarán una red amplia y usarán -w para grabar indiscriminadamente todo en la red. Una vez que el polvo se asienta, usan -r y filtros BPF complejos para examinar con calma la montaña de evidencia, localizando el momento exacto en que un atacante vulneró el sistema.
Extraer tráfico específico a un nuevo PCAP
A veces, descubrirás que un archivo de captura es simplemente demasiado grande para transferirlo fácilmente a otra computadora, o podrías necesitar aislar algunos paquetes altamente sospechosos para enviarlos a un equipo de seguridad especializado.
Esta práctica es común en investigaciones reales porque la evidencia a menudo necesita moverse entre equipos. Un analista de primera línea puede capturar un archivo enorme y luego extraer solo el tráfico sospechoso para los analistas de malware, los encargados de respuesta a incidentes o los desarrolladores. Los PCAP más pequeños y enfocados son más fáciles de compartir, más rápidos de inspeccionar y menos propensos a exponer datos de fondo no relacionados que otros equipos no necesitan.
Al combinar brillantemente las funciones de lectura (-r), filtrado y escritura (-w) en un solo comando, puedes extraer solo los paquetes relevantes y guardarlos permanentemente como un archivo PCAP nuevo y altamente enfocado.
Actuemos como analistas forenses y extraigamos solo los paquetes TCP de nuestro archivo de evidencia original capture.pcap. Canalizaremos esos paquetes específicos hacia un nuevo archivo llamado tcp_only.pcap.
Ejecuta el siguiente comando:
tcpdump -r capture.pcap tcp -w tcp_only.pcap
Cuando ejecutes esto, tu terminal permanecerá una vez más en completo silencio. tcpdump lee el archivo original, aplica silenciosamente el filtro tcp y escribe de forma segura los paquetes aprobados directamente en el nuevo archivo tcp_only.pcap sin mostrar nada en la pantalla.
Puedes verificar que tu nuevo archivo de evidencia altamente específico se creó correctamente listando los archivos:
ls -lh capture.pcap tcp_only.pcap
Verás ambos archivos uno al lado del otro. Dependiendo del tráfico de fondo que estuviera ocurriendo durante tu captura inicial, tcp_only.pcap probablemente será un poco más pequeño que el archivo maestro capture.pcap, ya que eliminó con éxito cualquier ruido no TCP irrelevante.
Para garantizar que tu nuevo archivo solo contenga los datos previstos, simplemente puedes leerlo de nuevo:
tcpdump -n -r tcp_only.pcap
Esta sencilla técnica de extracción es inmensamente valiosa para organizar datos caóticos y compartir de forma segura solo las piezas necesarias de una investigación.
Resumen
¡Felicidades! Has dominado con éxito los fundamentos de la gestión de archivos PCAP.
En este laboratorio, aprendiste a tratar el tráfico de red como evidencia grabada. Practicaste cómo capturar de forma segura eventos de red en vivo en un archivo de almacenamiento utilizando la bandera -w. Hiciste la transición a una mentalidad de análisis offline, leyendo los paquetes guardados de vuelta en tu terminal usando la bandera -r. Demostraste cómo aplicar filtros BPF de forma retroactiva a archivos de captura existentes para eliminar rápidamente el ruido y, finalmente, aprendiste a extraer datos altamente específicos en un nuevo archivo PCAP para una investigación concisa y dirigida.
Estas técnicas de gestión de archivos son el procedimiento operativo estándar absoluto para la informática forense, la respuesta a incidentes y la resolución avanzada de problemas de red. Ahora posees las habilidades principales para capturar y analizar correctamente los flujos de datos invisibles que impulsan el mundo moderno.

