GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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 máquina remota sin Wireshark instalado o es solo una máquina remota sin cabeza, 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í te indicamos el trabajo que vamos a realizar en esta guía:

  1. Conectando con la máquina remota (Host 2) con SSH.
  2. Capturar tráfico con Tcpdump y guardar la captura.
  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:

Host 1 (Máquina en el sitio):192.168.186.150

Host 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).

Empecemos...

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 siguiente imagen como referencia:


Ahora verifique las interfaces disponibles en la máquina remota en las que Tcpdump puede capturar. Para esto usa el comando:

$ tcpdump --list-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.bluetooth-monitor (Bluetooth Linux Monitor) [ninguno]
6.nflog (interfaz de registro de netfilter de Linux (NFLOG)) [ninguno]
7.nfqueue (linux netfilter cola (NFQUEUE) [ninguna]
8.bluetooth0 (adaptador Bluetooth número 0) [ninguna]


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


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

  1. -s:versiones anteriores de Tcpdump cortan paquetes a 68 o 96 bytes. La opción '-s' se utiliza para capturar paquetes de longitud completa.
  2. -i:Selecciona la interfaz para escuchar.
  3. -w:guarda los paquetes sin procesar capturados en un archivo en lugar de mostrarlos en el 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':

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.


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:


Esta es la captura de pantalla del archivo de captura 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':


En la imagen de arriba, podemos ver solo los paquetes con el protocolo 'SSH'.

Resumiendo... 

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


Ubuntu
  1. Instalar y comenzar con MySQL Workbench en Ubuntu

  2. Instalación de WordPress en Ubuntu Linux con Apache y MySQL

  3. ¿Errores con Vagrant y Ubuntu 12.10 con Rvm?

  4. ¿Problemas con Nvidia Gpu y Ubuntu 16.04?

  5. Capturar paquetes con tcpdump

Instalación de Lighttpd con compatibilidad con PHP5 y MySQL en Ubuntu 10.04

Alojamiento virtual con vsftpd y MySQL en Ubuntu 12.04

Alojamiento virtual con vsftpd y MySQL en Ubuntu 12.10

Instalación de Nginx con compatibilidad con PHP5 y MySQL en Ubuntu 8.10

Instalar y usar Wireshark en Ubuntu Linux

Cómo instalar y usar Wireshark en Ubuntu 21.04