Introducción
¡Bienvenido al laboratorio de Interfaz de red y captura básica!
Imagina que tu computadora es una casa y que el tráfico de red es el correo que se recibe y se envía. Para entender lo que sucede, necesitarías una cámara de seguridad vigilando el buzón. En el mundo de Linux, tcpdump actúa como esa potente cámara de seguridad para tu red. Es una herramienta de línea de comandos que te permite inspeccionar los datos que fluyen dentro y fuera de tu sistema, ayudándote a solucionar problemas de conectividad y a detectar actividades sospechosas.
Antes de continuar, es útil definir el objeto básico que estamos observando. La comunicación de red se divide en pequeñas unidades llamadas paquetes. Un paquete es un pequeño conjunto de información que contiene tanto instrucciones de entrega como el contenido real. Las instrucciones de entrega residen en los encabezados, que contienen detalles como la dirección de origen, la dirección de destino, el protocolo y la información del puerto. El contenido real se denomina carga útil (payload). En este primer laboratorio, no se espera que decodifiques cada campo todavía. El objetivo es que te sientas cómodo con la idea de que tcpdump te permite observar estos paquetes a medida que se mueven a través de tu sistema.
En este laboratorio, aprenderás los conceptos básicos del uso de tcpdump. Comenzaremos identificando las "puertas" de tu computadora (interfaces de red). Luego, practicarás la captura de tráfico de red en vivo, controlarás cuánta información recopilas y, finalmente, guardarás esas capturas para revisarlas más tarde, tal como si fuera un video grabado.
Identificar interfaces de red
Antes de que podamos configurar nuestra "cámara de seguridad" para observar el tráfico, necesitamos saber dónde están las puertas. En redes, estas puertas se llaman "interfaces de red". Una interfaz de red es el punto de conexión entre tu computadora y la red externa. Por ejemplo, una conexión cableada normal suele llamarse eth0, mientras que una conexión de bucle local (donde la computadora habla consigo misma) se llama lo.
Esta distinción es importante porque tcpdump no captura "internet" en un sentido global vago. Escucha en un punto de observación específico dentro del sistema operativo. Si conectas tu captura a la interfaz incorrecta, es posible que no veas nada útil incluso cuando la máquina esté muy ocupada. Aprender a elegir la interfaz correcta es uno de los primeros hábitos prácticos del análisis de paquetes.
Para averiguar qué interfaces están disponibles en tu máquina, tcpdump proporciona un comando de descubrimiento sencillo. La bandera -D significa "Discover" (Descubrir) o "Display" (Mostrar).
Dado que espiar el tráfico de red es una acción privilegiada, debemos usar el comando sudo para ejecutar tcpdump con poderes de administrador (superusuario).
Ejecuta el siguiente comando en tu terminal para listar las interfaces:
sudo tcpdump -D
Deberías ver una salida similar a esta:
1.eth0 [Up, Running, Connected]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
Al observar esta lista, eth0 (o eth1, dependiendo de tu entorno de máquina virtual específico) es la puerta principal que conecta tu máquina virtual a la red externa. La interfaz lo se utiliza puramente para la comunicación interna. También notarás un pseudodispositivo especial llamado any, que es un atajo muy útil si deseas capturar tráfico que cruza todas las puertas activas al mismo tiempo.
Nota: Si tu interfaz principal es
eth1en lugar deeth0, por favor reemplazaeth0poreth1en todos los comandos subsiguientes a lo largo de este laboratorio.
Capturar tráfico en vivo
Ahora que sabes dónde están ubicadas tus puertas de red, puedes comenzar a capturar los paquetes (el correo) que pasan a través de ellas. Nos centraremos en la interfaz eth0 ya que maneja la conexión de red principal.
Cuando las personas usan tcpdump por primera vez, la salida puede parecer intimidante porque cada línea es un resumen compacto de un paquete. Piensa en cada línea como una entrada rápida en un registro de incidentes. Todavía no muestra cada byte, pero generalmente muestra lo suficiente para responder preguntas de alto nivel, como quién habló con quién, qué protocolo se utilizó y cuántos datos se movieron. En el trabajo de seguridad, esa vista resumida suele ser la forma más rápida de detectar si un sistema se está comportando de manera normal o extraña.
Para indicarle a tcpdump qué interfaz específica monitorear, utilizas la bandera -i, que simplemente significa "interface".
Ejecuta el siguiente comando para comenzar a capturar tráfico en eth0:
sudo tcpdump -i eth0
Una vez que ejecutes este comando, tcpdump comenzará inmediatamente a imprimir información sobre cada paquete directamente en tu terminal. Se verá como una matriz de texto de desplazamiento rápido:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:23:45.123456 IP 192.168.1.10.22 > 192.168.1.20.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:23:45.124567 IP 192.168.1.20.54321 > 192.168.1.10.22: Flags [.], ack 100, win 499, length 0
...
El programa se ejecutará continuamente, intentando capturar todo hasta que le indiques explícitamente que se detenga. Este es un comportamiento común para las herramientas de monitoreo en Linux.
Para detener la captura y recuperar el control de tu terminal, mantén presionada la tecla Ctrl y presiona C. Este atajo de teclado (Ctrl+C) se utiliza universalmente en Linux para interrumpir y cancelar un programa en ejecución.
Después de detenerlo, tcpdump finalizará correctamente y proporcionará un breve resumen de lo que vio, incluyendo cuántos paquetes fueron capturados con éxito y cuántos fueron descartados.
Gestionar la longitud de captura (conteo de paquetes)
Detener manualmente una captura de paquetes con Ctrl+C es una buena habilidad, pero no siempre es práctica. En una red ocupada, tu pantalla podría inundarse con miles de líneas en solo unos segundos. A veces, solo necesitas una pequeña muestra del tráfico para ver qué está sucediendo.
Esto introduce una mentalidad importante para el analista: recopilar datos no es automáticamente útil a menos que se mantenga manejable. En entornos reales, una captura mal planificada puede saturar tu pantalla, llenar el almacenamiento o enterrar el evento interesante bajo miles de paquetes no relacionados. Limitar el conteo de paquetes es una forma sencilla de control de alcance. Los buenos investigadores reducen constantemente su recolección para poder pensar con claridad sobre lo que están viendo.
Para resolver esto, tcpdump ofrece la bandera -c, que significa "count" (conteo). Esta bandera te permite establecer un límite estricto en la cantidad de paquetes que deseas capturar. Una vez que se alcanza ese número, la herramienta se detiene automáticamente.
Ejecuta el siguiente comando para capturar exactamente 5 paquetes en la interfaz eth0:
sudo tcpdump -i eth0 -c 5
Verás exactamente 5 paquetes impresos en tu pantalla. Después, el símbolo del sistema volverá a aparecer automáticamente sin necesidad de presionar Ctrl+C.
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:28:12.345678 IP 10.0.0.5.443 > 10.0.0.2.34567: Flags [P.], seq 1:50, ack 1, win 256, length 49
...
5 packets captured
5 packets received by filter
0 packets dropped by kernel
Usar la bandera -c es un hábito excelente al explorar redes desconocidas. Evita que tu terminal se sature y te proporciona una parte manejable de datos para analizar a tu propio ritmo.
Detener y revisar la salida
Ver cómo el texto se desplaza en tiempo real es un desafío, especialmente cuando intentas detectar un detalle específico. Un enfoque mucho mejor es grabar el tráfico de red en un archivo para que puedas revisarlo cuidadosamente más tarde. Esto es exactamente como grabar imágenes de seguridad en una cinta.
Este cambio de la visualización en vivo a la evidencia guardada es un punto de inflexión importante en el trabajo de ciberseguridad. La captura en vivo es útil para la resolución de problemas inmediata, pero la captura guardada es lo que hace posible un análisis cuidadoso, la colaboración y la reconstrucción de incidentes. Una vez que el tráfico se conserva en un archivo, puedes reproducirlo repetidamente, compartirlo con compañeros de equipo y aplicar nuevos filtros más tarde sin necesidad de que el evento original vuelva a ocurrir.
Estas grabaciones se guardan normalmente con una extensión .pcap, que significa "packet capture" (captura de paquetes).
Un archivo PCAP no es solo un registro de texto. Almacena los datos del paquete en un formato binario estructurado que las herramientas de análisis comprenden. Es por eso que los profesionales prefieren PCAP en lugar de copiar la salida de la terminal en notas. El archivo conserva el tiempo original y los bytes sin procesar lo suficientemente cerca como para que otras herramientas puedan reinterpretar la misma evidencia de diferentes maneras más adelante.
Para guardar la salida, usarás la bandera -w, que significa "write" (escribir). Combinaremos esto con nuestra útil bandera -c para obtener una muestra rápida de 5 paquetes y escribirlos en un archivo llamado capture.pcap.
Ejecuta el siguiente comando:
sudo tcpdump -i eth0 -c 5 -w capture.pcap
Esta vez, la terminal parecerá inusualmente silenciosa. tcpdump no imprime los detalles del paquete en la pantalla cuando usas -w. En su lugar, escribe silenciosamente los datos binarios sin procesar directamente en el archivo capture.pcap en tu directorio actual.
Ahora que el tráfico está guardado, puedes reproducirlo. Usarás la bandera -r, que significa "read" (leer), para abrir el archivo. Debido a que simplemente estás leyendo un archivo que te pertenece, no necesitas privilegios de sudo para este paso.
Ejecuta el siguiente comando para leer tus paquetes guardados:
tcpdump -r capture.pcap
Los 5 paquetes que capturaste anteriormente se imprimirán limpiamente en tu terminal, dándote todo el tiempo que necesites para examinarlos:
reading from file capture.pcap, link-type EN10MB (Ethernet), snapshot length 262144
10:35:22.111222 IP 10.0.0.2.22 > 10.0.0.5.55555: Flags [P.], seq 1:100, ack 1, win 300, length 99
...
Guardar capturas en un archivo PCAP es una piedra angular del análisis de red profesional. Te permite mantener registros confiables, pausar la acción y compartir fácilmente los registros de tráfico con tus compañeros de equipo al investigar problemas complejos.
Resumen
¡Felicidades! Has completado con éxito tus primeros pasos en el análisis de red.
En este laboratorio, aprendiste cómo implementar tcpdump como una poderosa herramienta de observación. Practicaste la identificación de interfaces de red usando la bandera -D y la captura de tráfico en vivo en una interfaz específica usando la bandera -i. También aprendiste cómo mantener el control sobre el volumen de salida limitando el conteo de paquetes con la bandera -c. Finalmente, descubriste cómo guardar datos de red sin procesar en un archivo .pcap permanente usando la bandera -w y leerlos para una revisión cuidadosa usando la bandera -r.
Estos comandos fundamentales son la base absoluta de la resolución de problemas de red y las investigaciones de seguridad. Al dominar estos conceptos básicos, estás bien encaminado para comprender las conversaciones invisibles que ocurren en tus sistemas. ¡Sigue practicando y los datos que fluyen pronto comenzarán a tener todo el sentido del mundo!



