arrow_back

Introducción a tcpdump

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Introducción a tcpdump

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Introducción

En este lab, presentaremos "tcpdump" y algunas de sus funciones. "tcpdump" es la herramienta de análisis de red más importante para los profesionales de redes y seguridad de la información. Como especialista en asistencia de TI, es fundamental que conozca bien esta aplicación si desea entender TCP/IP. "tcpdump" lo ayudará a mostrar el tráfico de red de una manera más fácil para analizar y solucionar problemas.

Tendrá 60 minutos para completar este lab.

Actividades

  • Aspectos básicos del comando: Aprenderá cómo usar "tcpdump" y qué función tienen algunas de sus marcas, además de cómo interpretar el resultado.
  • Capturas de paquete: Practicará cómo guardar capturas de paquetes en archivos y volver a leerlas.

Algunas partes de este lab requerirán que más de una terminal esté abierta al mismo tiempo. Por lo tanto, asegúrese de tener una terminal con otra terminal de conexión abierta. De esta manera, puede usar SSH en una VM más de una vez.

Cómo configurar el lab

Comience el lab

Para poder acceder al material del SO de la máquina virtual, tendrá que comenzar el lab. Para ello, haga clic en el botón "Comenzar lab" en la parte superior de la pantalla.

Nota: Para este lab, tendrá que acceder a la VM de Linux mediante su cliente SSH local, y no usar Google Console (el botón Abrir GCP Console no está disponible para este lab).

Comenzar lab

Después de hacer clic en el botón "Comenzar lab", verá los detalles de la conexión SSH en la parte izquierda de la pantalla. Debería ver una pantalla parecida a la siguiente:

Detalles de la conexión

Acceda a la máquina virtual

Busque una de las siguientes funciones según el sistema operativo de su dispositivo.

Nota: Trabajar con Qwiklabs puede ser similar al trabajo que realiza como Especialista de Asistencia Informatica ; se enfrentara con tecnologia de punta que requiere multiples pasos para acceder, y tal vez muchas dosis de paciencia y persistencia! Tambien estara usando SSH para acceder a los laboratorios -- Una calificacion critica Asistencia Informatica que practicara a travez de los laboratorios.

Opción 1: Usuarios de Windows: Conéctese a su VM

En esta sección, usará el cliente Secure Shell (SSH) de PuTTY y la dirección IP externa de su VM para conectarse.

Descargue su archivo de clave PPK

Puede descargar el archivo de clave privada de la VM en formato PPK compatible con PuTTY de la página de inicio del lab de Qwiklabs. Haga clic en Descargar PPK.

PPK

Conéctese a su VM mediante SSH y PuTTY

  1. Haga clic aquí para descargar Putty.

  2. En el campo Host Name (or IP address), ingrese username@external_ip_address.

Nota: Reemplace username y external_ip_address con los valores proporcionados en el lab.

Putty_1

  1. En la lista Category, expanda SSH.

  2. Haga clic en Auth (sin expandir).

  3. En el cuadro Private key file for authentication, busque el archivo PPK que descargó y haga clic en él.

  4. Haga clic en el botón Open.

Nota: El archivo PPK se importa a la herramienta PuTTY mediante la opción de exploración disponible en ella. No debería abrirse directamente, solo mediante PuTTY.

Putty_2

  1. Cuando se le solicite permitir una primera conexión al servidor remoto de SSH, haga clic en Yes. Como utiliza un par de claves para la autenticación, no se le pedirá una contraseña.

Problemas comunes

Si PuTTY no puede conectarse a su VM de Linux, compruebe lo siguiente:

  • Ingresó <username>@<external ip address> en PuTTY.

  • Descargó el nuevo archivo PPK para este lab de Qwiklabs.

  • Usa el archivo PPK descargado en PuTTY.

Opción 2: Usuarios de OSX y Linux: Conéctese a su VM mediante SSH

Descargue el archivo de clave privada de su VM

Puede descargarlo en formato PEM de la página de inicio del lab de Qwiklabs. Haga clic en Descargar PEM.

PEM

Conéctese a la VM mediante la aplicación local de la terminal

Un terminal es un programa que proporciona una interfaz de texto para escribir comandos. Aquí usará su terminal como cliente SSH para conectarse con VM de Linux proporcionada en el lab.

  1. Abra la aplicación del terminal.

    • Para abrir el terminal en Linux, use la combinación de teclas Ctrl + Alt + t.

    • Para abrir el terminal en Mac (OSX), ingrese cmd + space y busque terminal.

  2. Ingrese los siguientes comandos.

Nota: Reemplace ruta/nombre de archivo por el archivo PEM que descargó, el username y la External IP address.

Es probable que encuentre el archivo PEM en Downloads. Si no cambió la configuración de descargas de su sistema, la ruta de la clave PEM será ~/Downloads/qwikLABS-XXXXX.pem.

chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem username@external_ip_address

SSH

Opcion 3: Usuarios de Chrome OS: Conectando su VM via SSH

Nota: Asegúrese de que no está en modo Incognito/Private mientras lanza la aplicación.

Descargue el archivo de clave privada de su VM

Puede descargar su archivo de clave privada en formato PEM desde la página de inicio de Qwiklabs. Haga clic en Download PEM.

PEM

Conectese a su VM

  1. Agregue Secure Shell desde aquí a su navegador Chrome.

  2. Abra la aplicación Secure Shell y haga clic en [New Connection].

nuevo-botón-de-conexión

  1. En la sección username, ingrese el nombre de usuario dado en el panel de detalles de conexión del laboratorio. Y para la sección hostname, ingrese la IP externa de su instancia VM que también se encuentra en el panel de detalles de conexión del laboratorio.

nombre de usuario-Nombre de host-Campos

  1. En la sección Identity, importe la clave PEM que descargo haciendo clic en el botón Import... que se encuentra al lado. Seleccione su clave PEM y haga clic en el botón OPEN.

Nota: Si la clave no está aún disponible después de importarla, refresque la aplicación, y selecciónela desde el menú desplegable Identity.

  1. Una vez que la clave está cargada, haga clic en el botón [ENTER] Connect de abajo.

botón-importar

  1. Si se le pregunta algo, escriba yes para continuar.

  2. Ahora está conectado exitosamente a su Linux VM.

¡Está listo para continuar con su laboratorio!

Cómo usar "tcpdump"

Ahora, usará "tcpdump" para realizar algunas tareas. Comenzaremos con el uso básico y continuaremos con temas un poco más avanzados.

Uso básico

Para comenzar, ingresaremos "tcpdump" y lo ejecutaremos sin ninguna opción. Tenga en cuenta que, como tcpdump requiere privilegios de administrador para capturar el tráfico, todos los comandos deben comenzar con sudo. Como mínimo, debe especificar una interfaz en la que buscar con la marca -i. Recomendamos usar ip link para verificar el nombre de la interfaz de red principal. En este caso, usaremos la interfaz ens4 para todos los ejemplos, aunque no es necesariamente la que usaría en su propia máquina.

Si desea usar tcpdump para comenzar a buscar los paquetes en la interfaz, ingrese el siguiente comando.

Aviso: Este comando llenará su terminal con un flujo de texto constante a medida que se leen los paquetes nuevos. No se detendrá hasta que presione Ctrl + C.

sudo tcpdump -i ens4

Como resultado, se mostrará información básica sobre los paquetes que ve directamente en la salida estándar. El proceso continuará hasta que se le indique que se detenga. Presione Ctrl + C para detener el flujo en cualquier momento.

Puede ver que, una vez que tcpdump termina, se muestra un resumen de la captura realizada, incluida la cantidad de paquetes capturados, filtrados o quitados:

e62459231285086a.png

De manera predeterminada, "tcpdump" realizará un análisis de protocolo básico. Para habilitar un análisis más completo, use la marca -v a fin de activar el resultado detallado. De manera predeterminada, "tcpdump" también intentará realizar búsquedas de DNS inversas a fin de resolver las direcciones IP en nombres de host, además de reemplazar los números de puerto con nombres de servicios comúnmente asociados. Puede usar la marca -n para inhabilitar este comportamiento. Recomendamos usar esta marca para evitar generar tráfico adicional a partir de las búsquedas de DNS y a fin de acelerar el análisis. Ingrese el siguiente comando para probarlo:

Aviso: Este comando llenará su terminal con un flujo constante de texto a medida que se leen los paquetes nuevos. No se detendrá hasta que presione Ctrl + C.

sudo tcpdump -i ens4 -vn

Puede ver que ahora el resultado proporciona más detalles sobre cada paquete:

e74637cc70c05cc3.png

Sin la marca de resultado detallado, "tcpdump" solo proporciona lo siguiente:

  • el protocolo de Layer-3, las direcciones y los puertos de origen y destino
  • detalles de TCP, como marcas, secuencia y números de ack, el tamaño de la ventana y las opciones

Si activa la marca de resultado detallado, también obtendrá toda la información sobre el encabezado de IP, como el tiempo de vida, el número de ID de IP, las opciones de IP y las marcas de IP.

Filtrado

A continuación, analizaremos brevemente el lenguaje de filtrado de tcpdump, junto con el análisis de protocolo. tcpdump admite un lenguaje potente para el filtrado de paquetes que le permite capturar solo el tráfico que le interesa o que desea analizar. Las reglas de filtrado van al final del comando, después de especificar el resto de las marcas. Solo usaremos el filtrado para capturar tráfico de DNS a un servidor DNS específico. A continuación, generaremos tráfico de DNS a fin de demostrar la capacidad de "tcpdump" de interpretar consultas y respuestas de DNS.

Ingrese el comando ahora. Al igual que el comando anterior, este se ejecutará hasta que lo detenga con Ctrl + C, pero todavía no debería ver ningún resultado.

sudo tcpdump -i ens4 -vn host 8.8.8.8 and port 53

Analicemos cómo está formado este filtro y qué hace exactamente. Host 8.8.8.8 especifica que solo queremos paquetes cuya dirección IP de origen o destino coincida con lo que indicamos (en este caso, 8.8.8.8). Si solo queremos tráfico en una dirección, también podríamos agregar un calificador de dirección, como dst o src (para las direcciones IP de destino y origen respectivamente). Sin embargo, si no incluye el calificador, se captará el tráfico en cualquier dirección.

La parte port 53 indica que solo queremos ver paquetes cuyo puerto de origen o destino coincida con lo que especificamos (en este caso, DNS). Estos dos filtros se unen mediante el operador lógico "and", lo que significa que ambas partes deben ser verdaderas para que nuestro filtro capture un paquete.

A continuación, siga las instrucciones en la sección Acceda a la máquina virtual para conectar la segunda terminal. Haga clic en Acceda a la máquina virtual en el panel de navegación a la derecha y, allí, ejecute este comando:

dig @8.8.8.8 A example.com

Debería ver el siguiente resultado en la pantalla:

e5f29bb1a837ebc6.png

Este comando usa la herramienta dig para consultar un servidor DNS específico (en este caso, 8.8.8.8) y le pide el A record del dominio especificado (en este caso, "example.com").

En la terminal original, debería ver dos paquetes capturados, ya que nuestras reglas de filtrado deberían filtrar cualquier otro tipo de tráfico:

b6a4cefaba5b53ef.png

El primero es la consulta de DNS, que es nuestra pregunta (de la segunda terminal) que va al servidor. Tenga en cuenta que, en este caso, el tráfico es UDP. El análisis que tcpdump hace de la consulta de DNS comienza inmediatamente después del campo checksum de UDP. Empieza con el número de ID de DNS, seguido por algunas opciones de UDP y, por último, el tipo de consulta (en este caso, A?, que indica que pedimos un A record). A continuación, sigue el nombre de dominio que nos interesa (example.com).

49bfc7a0a335ca52.png

El segundo paquete es la respuesta del servidor, que incluye el mismo ID de DNS de la consulta original, seguido de la consulta original. A continuación, se encuentra la respuesta a la consulta, que contiene la dirección IP asociada con el nombre de dominio.

8df52ed65c9b5f66.png

Para detener la sesión de "tcpdump" en la terminal original, presione Ctrl + C. Asegúrese de dejar abierta la ventana de la segunda terminal, ya que la necesitará pronto.

A continuación, aprenderemos sobre la capacidad de tcpdump de guardar capturas de paquetes en un archivo y, luego, volver leerlas.

Cómo guardar paquetes capturados

En una de sus terminales, ejecute el siguiente comando:

sudo tcpdump -i ens4 port 80 -w http.pcap

Especifique el puerto "80" para comenzar una captura en nuestra interfaz "ens4" que solo filtre el tráfico de HTTP. La marca -w indica que queremos guardar los paquetes capturados en un archivo llamado http.pcap. Al igual que las otras capturas, se ejecutará hasta que fuerce la detención con Ctrl + C.

Una vez que se esté ejecutando, vuelva a la segunda terminal, en la que generará algo de tráfico http que se capturará en la terminal original. Todavía no detenga la captura que comenzó con el comando anterior (si ya lo hizo, puede reiniciar ahora).

En la ventana de la segunda terminal, ejecute el siguiente comando para generar algo de tráfico:

curl example.com

Este comando obtiene el HTML de example.com y lo muestra en la pantalla. Debería verse de la siguiente manera (tenga en cuenta que aquí solo se muestra la primera parte del resultado).

d261699311c8cdba.png

Una vez que haya terminado, cierre la ventana de la segunda terminal y vuelva a la terminal original donde se está ejecutando la captura. Detenga la captura con Ctrl + C. Debería mostrarse un resumen del número de paquetes capturados:

aeacf2f21c2dea4f.png

También se habrá creado un archivo binario, llamado http.pcap, que contiene los paquetes que acabamos de capturar. No intente mostrar el contenido de este archivo en la pantalla. Como es un archivo binario, se mostrará como texto confuso que no podrá leer.

6649a448a7faef33.png

En algún lugar del archivo, hay información sobre los paquetes creados cuando extrajo el HTML de example.com. Ahora podemos usar el siguiente comando para leer el texto de este archivo con tcpdump:

tcpdump -r http.pcap -nv

5b2f12f38410cce2.png

Tenga en cuenta que no necesitamos usar sudo para leer paquetes de un archivo. Recuerde, además, que "tcpdump" guarda paquetes completos en el archivo, no solo el análisis basado en texto que se muestra en la pantalla cuando está funcionando normalmente. Por ejemplo, en algún lugar del resultado debería ver el HTML que se mostró como cuerpo de la búsqueda original en la otra terminal:

6d7bb5d7e908c6e.png

Haga clic en "Revisar mi progreso" para verificar el objetivo.

Guarde paquetes en un archivo

Conclusión

¡Felicitaciones! Usó "tcpdump" correctamente para realizar tareas básicas de supervisión de red, incluido el filtrado de tráfico específico. También aprendió a interpretar la información que "tcpdump" muestra sobre un paquete, además de guardar y cargar resúmenes de los paquetes que se capturaron durante una sesión.

Finaliza tu lab

Cuando hayas completado tu lab, haz clic en Finalizar lab. Qwiklabs quitará los recursos que usaste y limpiará la cuenta.

Tendrás la oportunidad de calificar tu experiencia en el lab. Selecciona la cantidad de estrellas que corresponda, ingresa un comentario y haz clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puedes cerrar el cuadro de diálogo si no deseas proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, usa la pestaña Asistencia.