Aprende a usar Wireshark para capturar y analizar el tráfico de red

Aprende a usar Wireshark para capturar y analizar el tráfico de red

Sergio De Luz

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.

Ventajas de Wireshark

  • Se trata de un programa muy versátil que puede soportar más de 480 protocolos diferentes, que nos da la opción de trabajar con los datos que capturemos en una red durante una sesión, mediante la utilización de paquetes. Estos los podemos almacenar para luego analizar.
  • Soporta un formato de archivos estándar llamado tcpdump, que nos permite reconstruir sesiones TCP. Todo esto apoyado por una interfaz gráfica bastante accesible si se tiene un poco de práctica, y relativamente sencilla de aprender si es la primera vez que le damos uso.
  • Sus funciones son muy buenas de cara a los administradores, que lo pueden usar para resolver problemas en sus redes de forma que se pueden ver excesos de tráfico o sobreconsumos. También puede ayudar a resolver fallos en la seguridad y a su vez, ayudar a prevenirlos.
  • A niveles de desarrollo, se puede usar para realizar la depuración de la implementación de protocolos de red.
  • A nivel educativo, es una buena herramienta para aprender cómo funciona una red, e ir descifrando la información que pueden contener los paquetes de los dispositivos que están conectados a la red que estamos analizando. Podremos ver información como usuarios, contraseñas, mensajes, incluso podemos averiguar la marca y modelo de los dispositivos que se encuentran en la red.
  • Se puede ejecutar en los sistemas operativos más conocidos como Windows, Linux, OS X, entre otros.
  • Se sigue actualizando con frecuencia. Esto no solo incluye nuevas funcionalidades, si no que también recibe muchos parches de seguridad.

Desventajas de Wireshark

Si hablamos de las desventajas, no encontramos grandes inconvenientes, incluso tratándose de un programa con tantas características y potente, no resulta complejo de utilizar. Pero podemos decir que si es la primera vez que lo usamos o somos novatos en el mundo de las redes, descifrar los paquetes puede resultar complicado hasta que se toman un tiempo para comprender completamente la forma en que funciona el software, pero creemos que la mayoría de las personas se encontraran bien con la forma en que funciona el software. No hay mucho que podamos decir en general que nos disguste, ya que el software funciona bien y cumple con la función para la que fue creado que no es otra que leer los paquetes, seguirlos y rastrear todos los datos que pasan por la red. En todo caso esto con el paso del tiempo, aprenderemos a interpretarlo.

Otra posible desventaja que podemos encontrarnos con Wireshark, es el hecho de que requiere privilegios elevados para realizar la captura de paquetes, esta característica puede resultar ser mala o buena según la perspectiva desde la que se observe, ya que a nivel de seguridad, puede ser ventajosa, pero a nivel de usuario puede ser un engorro tener que solicitar autorización para realizar una simple revisión o rastreo de paquetes.

Además de esto, tiene también la desventaja estándar de capturar paquetes que podrían no reflejar el tráfico real de la red porque los datos se capturan localmente, esto no es un fallo de Wireshark, específicamente, sino de cualquier software de rastreo ejecutado localmente.

La aplicación a pesar de que es bastante buena en lo que hace, y además de eso no tiene ningún competidor claro al menos a nivel gratuito, se le agradecería aplicar un procesamiento de datos más potente, ya que en muchas ocasiones a pesar de tener un equipo en condiciones, puede pecar en este aspecto a la propia aplicación y dar la impresión de que le falta un poco de potencia para dicho procesamiento de datos.

Y por último, destacar que puede ralentizar el rendimiento de nuestro equipo cuando tenemos que lidiar con mucho tráfico y un período de monitoreo prolongado, ya que a pesar de que la aplicación, insistimos, es muy buena en lo que hace, a pesar de tener un equipo con buenas prestaciones, en muchas ocasiones parece que consume muchos más recursos de los que deberían ser necesarios para un simple análisis de tráfico.

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.

Junto con la instalación de WireShark se realiza también la instalación de Npcap, los drivers necesarios para poner la tarjeta de red en modo «promiscuo» y capturar todo el tráfico que nos llega y que enviamos, Npcap es un programa fundamental y se encuentra actualmente en su versión 1.50. En el pasado cuando Npcap estaba en fase beta, había problemas de cuelgues e incluso no te funcionaba bien la conexión a la red local e Internet, por este motivo, se ha utilizado durante muchos años WinPcap en lugar de Npcap, sin embargo, hoy en día se recomienda utilizar este último porque es el que está más actualizado y dispone de todas las mejoras.

Debemos recordar que este programa es multiplataforma, de hecho, en la mayoría de distribuciones Linux orientadas a la ciberseguridad está incorporado de manera predeterminada, porque es ampliamente utilizado por los profesionales de la ciberseguridad, los administradores de redes y también los administradores de sistemas. En todas las distribuciones Linux podremos ejecutar programas similares como tcpdump, sin embargo, WireShark no solamente permite capturar todos los datos que entran y salen de la tarjeta de red, sino que también podremos ver la captura con una interfaz gráfica de usuario muy intuitiva. Por último, WireShark nos permite también ejecutar complejos filtros para solamente mostrar las capturas de datos que nos interesan.

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. En el caso de que quieras utilizar una tarjeta de red WiFi también podrás hacerlo sin problemas, todo el tráfico entrante y saliente de esta tarjeta WiFi será capturado por WireShark, pero un detalle muy importante es que WireShark no pondrá la tarjeta en modo monitor para ver también los paquetes de otros clientes inalámbricos, solamente capturará y mostrará los paquetes propios.

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. Tal y como podéis ver, con WireShark vamos a poder capturar en detalle todos los paquetes de la conexión y va a ponerlo en categorías de «Origen», «Destino», «Protocolo», longitud e información adicional, de esta forma, podremos ordenar fácilmente toda la captura de datos por protocolo, dirección IP de origen o destino etc.

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.

Existen algunos sistemas operativos para routers y firewalls que incorporan un capturador de paquetes, este capturador de paquetes incorporados nos permitirán coger todo el tráfico de red de una o varias interfaces físicas o lógicas, e incluso podremos definir que solamente queremos capturar el tráfico desde o hacia una determinada IP/puerto, de esta forma, la captura que realicemos no será tan extensa que ocupe muchos MB o GB de información. Estos sistemas operativos siempre nos van a permitir exportar la captura en formato pcap, por tanto, posteriormente podremos abrir esta captura con Wireshark y examinarla en detalle. Por ejemplo, pfSense incorpora un capturado de paquetes bastante completo para limitar la captura de datos por interfaz, y tendremos un botón que nos permitirá descargar esta captura para su posterior análisis. Gracias al uso de Wireshark, podremos cargar esta captura recién creada de forma externa, y aplicar todos los filtros de Wireshark para solamente ver lo que nos interesa y no toda la captura realizada por pfSense. Lo mismo ocurre con algunos firmwares de routers como AVM, el cual dispone de un analizador de paquetes internos para detectar malas configuraciones o problemas a nivel de red.

Posibles usos de Wireshark

Como hemos visto, Wireshark es un software que nos permite conocer mucha información sobre los paquetes que transcurren por la red. Esto puede ser de mucho beneficio tanto con fines legales o ilegales. En el caso de los legales, puede ser una gran herramienta para administradores de redes. Entre las funciones que se pueden desempeñar con este programa podemos encontrar:

  • Capturar tramas directamente desde la red.
  • Mostrar y filtrar las tramas capturadas.
  • Editar las tramas y transmitirlas por la red.
  • Realizar capturas de tramas usando un equipo remoto.
  • Llevar a cabo análisis y estadísticas.
  • Filtrar todo tipo de datos.
  • Exportar las capturas en diferentes formatos.
  • Seguir flujos, parámetros y patrones de tráfico.

Pero Wireshark también puede ser muy útil en otros ámbitos, como puede ser la educación. Esto puede ayudar a estudiantes y profesores a comprender mejor cómo transcurren los paquetes por las redes, de forma que se pueden formar en diferentes aspectos. Desde técnicos de redes, administradores y sí, hackers éticos.

¿Es legal utilizar Wireshark?

Si bien el uso de Wireshark no es ilegal, sí lo son algunas tareas que se pueden llevar a cabo con la información que nos puede proporcionar. En este caso, todo está en el código penal, siendo un delito de descubrimiento y revelación de secretos, lo cual es un derecho fundamental de la Constitución Española.

El delito en sí, se refiere a la filtración o en su defecto, difusión de la información o material de un usuario, que en este caso es la víctima. Siendo de especial importancia, la difusión, lo cual puede acarrear otro tipo de delitos, que ya no tienen que ver con la informática. Esto se puede dar si se difunde la información relativa al círculo íntimo de una víctima que puede ser una persona física o jurídica, en resumen, todo lo que no sea público.

Alternativas a Wireshark

Como has visto, Wireshark es una herramienta muy completa y que puede resultar muy útil en muchos casos. Pero lo cierto es que nos podemos encontrar muchas otras opciones, las cuales tienen funciones diferentes. En algunos pasos puede que Wireshark no tenga la misma funcionalidad para algunas tareas, por lo cual será necesario buscar otra herramienta de análisis de red. Elegir una puede llegar a ser complicado. Y sobre todo si buscamos una que cubra todo el rango posible de posibilidades.

Algunas de las mejores alternativas son:

  • Cloudshark: Es una herramienta basada en la web, y su función es realizar los análisis y compartir los archivos de paquetes que se han capturado. Con los datos capturados, podemos resolver problemas en la red a un ritmo mucho más alto. En todo caso, esta herramienta se basa en el análisis del navegador web. Con muy buenas características, se ha convertido en una de las mejores alternativas a Wireshark. En muchos casos se pueden combinar, ya que una se instala en local y la otra no.
  • ColaSoft Capsa: En este caso, estamos de nuevo ante un analizador de los paquetes que circulan por la red. Pero tenemos una peculiaridad, y es que esta aplicación nos presenta toda la información de forma compacta. Resulta muy sencilla de utilizar, siendo así más accesible que las opciones anteriores. El gran problema, es que su versión gratuita no cuenta con todas las funciones. Para lo cual, tendríamos que pagar.
  • SmartSniff: Está diseñada principalmente para entornos basados en Windows. Nos ayuda a realizar la captura de los datos, como si de una conversación entre servidores y clientes se tratara. Una de las desventajas, es que para poder recolectar los paquetes necesita instalarlos previamente bajo demanda. Pero cuenta con las facilidades que nos dan la opción de omitir los paquetes que sean necesarios, o la ayuda que da al controlador de red.

Aclaraciones sobre Wireshark

Como hemos visto, con Wireshark estamos ante una herramienta muy poderosa la cual nos puede arrojar mucha información sobre los paquetes que transcurren por una red. Pero con el tiempo se han ido generando dudas o inquietudes de muchos usuarios hacia este programa, las cuales algunas veces aciertan o no. Vamos a ver algunas de estas preguntas, pues puede que te sirva para decidir usarlo o no.

Algo muy extendido, fue un virus llamado «Wireshark Antivirus», el cual era un malware que infectó a muchos equipos. Este mostraba un mensaje indicando que teníamos que pagar por un antivirus, el cual no existía, era falso. El equipo de CACE Technologies, desarrolladores de Wireshark, sacaron un comunicado donde indicaban que en ningún momento llegaron a crear virus alguno, e indicando que un tercero estaba usando su nombre con fines fraudulentos.

Los piratas informáticos también están en el punto de mira, pues al tratarse de un programa dedicado a estos fines, puede utilizarse como tal para atacar a otros usuarios o robarles información. En este punto es donde debemos separar a los hackers éticos de los que tienen fines maliciosos, y recordar que el simple uso de este software no es ilegal, sino el fin con el que se puede utilizar.

Existe un video en internet, el cual se hizo muy famoso porque mostraban cómo realizar un robo de una contraseña en un aeropuerto utilizando Wireshark. Esto es real, pues con Wireshark se pueden capturar todo tipo de datos, siempre que se usen en los envíos de los paquetes en una red. Por lo cual, siempre que Wireshark esté capturando los datos, y el usuario que lo utiliza tenga conocimientos para conseguir contraseña, se puede hacer. Este también se puede utilizar para monitorizar hosts desconocidos, incluso extraer direcciones IP y aprender sobre los dispositivos conectados mediante IA.

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, además, no debes olvidar que también nos permite abrir capturas de tráfico pcap y en otros formatos, para realizar un análisis en profundidad de capturas realizadas de forma externa con otros programas o aplicaciones.

¡Sé el primero en comentar!