Capturando paquetes con Tcpdump y analizándolos con Wireshark en Ubuntu

Acceso al host 2 con SSH

En esta guía, le mostraré cómo analizar paquetes de red en Linux. Usaré las Herramientas Tcpdump y Wireshark. Este tutorial usa Ubuntu como sistema operativo, pero también es aplicable a otras distribuciones de Linux.

¿Por qué necesita Tcpdump?

Una pregunta obvia que puede surgir es por qué preocuparse por Tcpdump cuando puede hacer casi todo con Wireshark. Bueno, aquí está la respuesta para esto: a veces es más conveniente usar Tcpdump para la captura de paquetes en comparación con Wireshark. Por ejemplo, si la máquina de destino en la que está capturando el paquete es una remota sin Wireshark instalado o es simplemente una máquina remota sin interfaz, en ambos casos, Tcpdump es muy útil. Para ver varias opciones que se pueden usar con Tcpdump, busque las páginas man.

¿Qué es Tcpdump?

Tcpdump es una alternativa de línea de comandos a Wireshark. Tiene el mismo propósito que Wireshark, que captura y analiza el tráfico. Tcpdump es una aplicación separada y no debe considerarse como una interfaz de línea de comandos de Wireshark. Dado que se basa en la interfaz de línea de comandos, no es tan fácil de manejar como Wireshark. Los nuevos usuarios pueden encontrarlo desalentador al principio cuando comienzan a usarlo y pueden encontrar muchos comandos y sintaxis difíciles de recordar.

Esquema de este tutorial

Pasemos ahora al propósito principal de esta guía. En esta guía, veremos cómo podemos interactuar Tcpdump con Wireshark. Aquí estamos señalando el trabajo que vamos a hacer en esta guía:

  1. Conexión con la máquina remota (Host 2) con SSH.
  2. Capturando tráfico con Tcpdump y guardando el Capture.
  3. Enviar el archivo de captura a la máquina en el sitio (Host 1) en la que está instalado Wireshark.
  4. Uso de Wireshark para analizar la sesión de Tcpdump capturada.

Comprobación previa al vuelo

Para este tutorial, estamos usando dos máquinas con Ubuntu 20.04. Necesita configurarlos por su cuenta. Nuestra configuración de IP es la siguiente:

Anfitrión 1 (máquina en el sitio): 192.168.186.150

Anfitrión 2 (Máquina remota): 192.168.186.201

Se supone que los pasos mencionados en esta guía funcionan en cualquier sistema Linux que cumpla los siguientes requisitos:

  1. Host en el sitio (Host 1) con Wireshark instalado y SSH configurado.
  2. Acceso SSH desde el host en el sitio (Host 1) al host remoto (Host 2).
  3. Tcpdump y SSH configurados en el host remoto (Host 2).
  4. Cuenta de usuario ‘sudo’ en el Host 2 para ejecutar Tcpdump y también en el Host 1 (depende de cómo esté configurado Wireshark).

Vamos a empezar…

Para continuar, conéctese desde su máquina en el sitio (Host 1) a la máquina remota (Host 2) con el protocolo de acceso SSH. Ya hemos configurado la conexión SSH entre las dos máquinas. Así que usaremos el siguiente comando desde el terminal Host 1 para conectarnos al Host 2:

$ ssh ‘nombre_usuario’@’IP_of_Host2’

Aquí reemplace ‘user_name’ con el nombre de usuario del Host 2 al que nos estamos conectando y ‘IP_of_Host2’ es la dirección IP del Host 2. Vea la imagen a continuación como referencia:

Acceso al host 2 con SSH
Ahora verifique las interfaces disponibles en la máquina remota en las que Tcpdump puede capturar. Para esto usa el comando:

$ tcpdump –lista-interfaces

Salida de muestra:

1.enp0s3 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (pseudodispositivo que captura en todas las interfaces) [Up, Running]
4.eno1 [Up]
5. monitor bluetooth (monitor Bluetooth Linux) [none]
6.nflog (interfaz de registro de netfilter de Linux (NFLOG)) [none]
7.nfqueue (interfaz de cola de filtro de red de Linux (NFQUEUE)) [none]
8.bluetooth0 (adaptador Bluetooth número 0) [none]

Listado de interfaces
Como puede ver, la interfaz ‘enpos3’ está funcionando. Así que configurémoslo como la interfaz de destino y ejecutemos el comando tcpdump aquí. Cuando sienta que ha capturado suficientes paquetes, simplemente presione ‘Ctrl+c’ para finalizar la captura de paquetes. El comando es:

$ sudo tcpdump -s 65535 -i enp0s3 -w my_remote_capture.pcap

Ejecutando el comando Tcpdump
En el comando anterior, hemos usado las siguientes opciones con Tcpdump:

  1. -s: Las versiones anteriores de Tcpdump cortan los paquetes a 68 o 96 bytes. La opción ‘-s’ se utiliza para capturar paquetes de longitud completa.
  2. -i: Selecciona la interfaz a escuchar.
  3. -w: guarda los paquetes sin procesar capturados en un archivo en lugar de mostrarlos en la terminal.

El tráfico capturado se almacena en el archivo llamado ‘my_remote_capture.pcap’. Ahora transferiremos este archivo al Host 1 para su análisis con Wireshark. Para transferir el archivo, estamos usando el comando ‘scp’. Nuevamente, ya hemos configurado ‘scp’ para que funcione entre las dos máquinas. La sintaxis del comando es como se muestra a continuación:

$ scp my_remote_capture.pcap ‘username’@’IP_of_remote_machine’:Publicidad

Aquí ‘nombre de usuario’ es el nombre del usuario en el Host 1 y ‘IP_of_remote_machine’ también es la IP del Host 1.

Transferir el archivo de captura usando SCP
En la máquina in situ (Host 1), compruebe si ha recibido el archivo. En nuestro caso, hemos recibido correctamente el archivo y lo abriremos usando Wireshark como se muestra a continuación:

Abriendo el archivo Capture usando Wireshark
Aquí está la captura de pantalla del archivo de captura del Host 1:

Capturar archivo del Host 1

Análisis del archivo de captura

Apliquemos un filtro de visualización en el archivo anterior. Dado que estábamos conectados al Host 2 mediante SSH, debería haber algunos rastros del protocolo SSH. En el campo de texto correspondiente al filtro de visualización, ingrese ‘ssh’: Anuncio

Aplicar el filtro de visualización
En la imagen de arriba, podemos ver solo los paquetes con el protocolo ‘SSH’.

Terminando…

Felicitaciones, finalmente hemos demostrado cómo podemos hacer una captura remota en una máquina. Hemos visto cómo podemos combinar Tcpdump con Wireshark.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *