Aprende cómo utilizar Wireshark para capturar y analizar el tráfico de red

Wireshark es el analizador de paquetes más conocido y utilizado en todo el mundo. Gracias a este programa, podremos capturar y analizar en detalle todo el tráfico de red que entra y sale de nuestro PC, además, debemos recordar que es multiplataforma, esto significa que está disponible para sistemas operativos Windows, Linux, macOS, Solaris, FreeBSD, NetBSD y otros. Hoy en RedesZone os vamos a enseñar de manera básica, como realizar una captura de tráfico, y cómo analizar el tráfico de red para ver si hay algún tipo de anomalía.

Principales características de Wireshark

Este programa que es completamente gratuito, nos permite realizar inspección profunda de cientos de protocolos, ya que soporta protocolos de capa física, de enlace, protocolos de red, capa de transporte y también capa de aplicación. Nos permitirá realizar una captura en tiempo real, y cuando hayamos terminado de capturar todos los paquetes que entran y salen de nuestra tarjeta de red cableada o inalámbrica, podremos realizar un análisis en profundidad de manera offline, es decir, en otro ordenador (o en el mismo) y en cualquier momento.

Wireshark permite ver todo el tráfico capturado vía GUI con el propio programa, no obstante, también podremos ver toda la información capturada con el programa TShark, una herramienta que funciona a través de consola y nos permitirá leer todo a través de la línea de comandos CLI, para ver todo vía SSH, por ejemplo. Una característica fundamental de cualquier analizador de paquetes son los filtros, para que únicamente nos muestre lo que queremos que nos muestre, y ninguna información más que nos generaría un trabajo extra.

Wireshark es capaz de leer y escribir en diferentes formados de captura, como en formato tcpdump (libpcap), pcap ng, y otras muchas extensiones, para adaptarse perfectamente a los diferentes programas para su posterior análisis. Otro aspecto importante es que la captura realizada se puede comprimir con GZIP al vuelo, y, por supuesto, descomprimirla al vuelo también en caso de que estemos leyendo la captura. Por supuesto, es capaz de leer datos de diferentes tecnologías de redes como Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI y otros. Hoy en día tenemos muchos protocolos con datos cifrados, con la clave privada adecuada, Wireshark es capaz de descifrar el tráfico de diferentes protocolos como IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, y WPA/WPA2.

Una vez que hemos visto las principales características, vamos a descargarlo e instalarlo.

Descarga e instalación

Este programa es completamente gratuito, podemos acceder directamente a la web oficial de Wireshark donde podréis encontrar los enlaces para su descarga. La instalación de este programa es muy sencilla, simplemente deberemos seguir el asistente de instalación paso a paso, y reiniciar el ordenador al finalizar. Wireshark es un programa que se actualiza constantemente, por lo que es muy recomendable tener siempre la última versión instalada en nuestro equipo para disfrutar de las últimas novedades.

Si tienes un sistema operativo basado en Linux, es muy probable que en tu gestor de paquetes tengas Wireshark, y simplemente tengas que ejecutar un comando como este:

sudo apt install wireshark

Una vez que ya hemos visto cómo descargar e instalar Wireshark, vamos a utilizarlo para realizar una captura de datos.

Realizar una captura de tráfico con Wireshark en Windows 10

Nosotros hemos utilizado el sistema operativo Windows 10 para la realización de la captura de tráfico, pero en sistemas Linux o macOS es exactamente igual, ya que tenemos exactamente la misma interfaz gráfica de usuario. Lo primero que veremos al iniciar este programa son todas las tarjetas de red e interfaces de red de nuestro ordenador, en nuestro caso tenemos un total de tres tarjetas de red cableadas (ASUS XG-C100C, Realtek 2.5G y Intel 1G), una tarjeta de red Wi-Fi (WiFi 2), además, tenemos diferentes interfaces de red virtuales que se corresponden con las interfaces de VMware y Virtual Box.

Wireshark nos permite capturar el tráfico de cualquier tarjeta de red, ya sea física o virtual, simplemente tenemos que tener claro cuál es nuestra tarjeta de red que actualmente está en uso, y de la cual queremos capturar tráfico de red. En nuestro caso es la ASUS XG-C100C, por lo que simplemente hacemos doble click sobre esta tarjeta.

Al hacer doble click, de manera automática empezará a capturar todo el tráfico de red, tanto entrante como saliente. Algunas recomendaciones ANTES de realizar una captura de tráfico, son las siguientes:

  • Cerrar todos los programas que generen tráfico de red, el cual no queremos capturar
  • Asegurarnos de que el firewall se encuentra desactivado, ya que podría bloquear cierto tráfico y no aparecerá en Wireshark, o solamente aparecerá parte del tráfico generado.
  • Si queremos capturar un cierto tráfico de datos que genere una aplicación, es recomendable esperar 1 segundo antes de iniciarlo y que capture tráfico de red del equipo, a continuación, ejecutamos esa aplicación, y por último, cerramos la aplicación y esperamos 1 segundo antes de detener la captura de tráfico.

Con estas recomendaciones, estamos seguros que la captura de tráfico que hagáis será un éxito.

En esta captura de tráfico, podéis ver tráfico de diferentes protocolos, tanto tráfico del protocolo Spanning-Tree Protocol de la red, como también tráfico TCP y tráfico TLSv1.2 de diferentes aplicaciones que tenemos abiertas.

Con cada entrada de datos, podremos desplegar y ver en detalle todo el paquete de datos, tanto a nivel de aplicación, transporte, a nivel de red, enlace y también a nivel físico, es decir, Wireshark nos proporcionará la información por capas, para encontrar más fácilmente la información que nosotros necesitamos saber.

Por supuesto, también nos indicará cuáles son los puertos de origen y destino si usamos TCP o UDP, e incluso podremos ver de manera avanzada los números de secuencia, y si ha habido un RST en la conexión o se ha tenido que reenviar un segmento debido a un problema.

En la siguiente captura, podéis ver el resultado de ejecutar el comando «nslookup www.redeszone.net» a través de consola, realiza la solicitud DNS a nuestro servidor DNS, y automáticamente nos contestará con la resolución DNS hecha del dominio anterior. Por supuesto, este tráfico se «mezcla» con otro tráfico que tenemos en nuestro ordenador de diferentes aplicaciones, por este motivo es tan importante cerrar todas las aplicaciones que utilicen conectividad a Internet antes de empezar con la captura de tráfico.

Aquí podéis ver la respuesta del servidor DNS a la solicitud DNS anterior:

Si hacemos el típico ping, utilizando el protocolo ICMP, también nos lo mostrará perfectamente, nos mostrará tanto los «Echo request» como también los «Echo reply».

Tal y como habéis visto, es muy fácil realizar una captura de datos con Wireshark para analizar todo el tráfico de red. Si queremos guardar esta captura, simplemente tenemos que pinchar en el botón rojo de «Stop» para parar la captura de datos, y posteriormente pinchar en «File / Save» para guardarla.

Esta captura podremos guardarla en nuestro ordenador o en un soporte externo para su posterior análisis, o enviarla a algún experto que sea capaz de detectar el problema, aunque debes tener en cuenta que tendrá acceso a todo el tráfico capturado, por lo que debes enviar esta captura a alguien de confianza. Si hemos capturado tráfico con TLS o IPsec, necesitará la correspondiente clave de descifrado, por lo que eso no lo podrá «leer» sin esta información, lo mismo ocurre con el tráfico WPA/WPA2, sin la clave, no podrá leer el tráfico interno.

Esperamos que este tutorial os ayude para realizar captura de tráfico de datos con este gran programa, y seáis capaces de detectar problemas en la red.