En este momento estás viendo Wireshark,  «sniffer» de red

Wireshark, «sniffer» de red

Wiresark

Wireshark es un analizador de paquetes de red, también llamado «sniffer», que presenta los datos de paquetes capturados con el mayor detalle posible. Es una poderosa herramienta de red ampliamente utilizada por administradores de redes para solucionar problemas, ingenieros de seguridad para examinar problemas de seguridad, ingenieros de control de calidad para verificar aplicaciones de red, desarrolladores para depurar implementaciones de protocolos, pero también lo podemos utilizar para aprender los aspectos internos de los protocolos de red.

Se trata de una herramienta para examinar lo que sucede dentro de un cable de red, es gratuita y de código abierto y se publica bajo la Licencia pública general GNU (GPL). Wireshark es uno de los mejores analizadores de paquetes disponibles en la actualidad que ha venido a sustituir herramientas que eran muy caras, privativas o las dos cosas a la vez.

Sumario

  • Consideraciones previas
  • Un poco de historia
  • Instalación
  • Uso de la herramienta
  • Desinstalar Wireshark

Consideraciones previas

Wireshark captura tráfico de red de muchos tipos de medios diferentes, Ethernet, LAN inalámbrica «WIFI», Bluetooth, USB y cualquier otro que genere tráfico.

Wireshark es un proyecto de software de código abierto, por ello podemos usarlo libremente en todos los equipos que queramos, sin ninguna preocupación por las claves de licencia o las tarifas. Además, todo el código fuente está disponible gratuitamente bajo la licencia GPL, lo que permite agregar nuevos protocolos a Wireshark, ya sea como complementos o integrados en el código fuente.

Los recursos que requiere Wireshark dependen de nuestro entorno y sobre todo, del tamaño del fichero de captura que estemos analizando, y como podemos guardar las capturas, dependerá del tamaño y cantidad que necesitemos almacenar. No obstante para un uso normal no serán necesarios mas que unos pocos cientos de MB.

Un poco de historia

Gerald Combs, a finales de 1997, buscaba una herramienta para diagnosticar problemas de red y aprender más sobre redes, por ello se decidió a comenzar a escribir «Ethereal», el nombre original del proyecto Wireshark.

Tras varios parones en el desarrollo, en Julio de 1998, vió la luz la versión de «Ethereal 0.2.0». La comunidad se volcó en el proyecto y pronto empezaron a llegar parches, informes de errores y palabras de aliento. En los siguientes años Gilbert Ramírez, Guy Harris, Richard Sharpe y una larga lista de personas, contribuyeron a desarrollar el proyecto.

En 2006, el proyecto resurgió con un nuevo nombre, Wireshark. Tras 10 años de desarrollo, en 2008, se liberó la versión 1.0, la primera considerada completa con las características mínimas implementadas. Y nació la primera Conferencia de usuarios y desarrolladores de Wireshark, llamada «SharkFest».

En 2015, se lanzó Wireshark 2.0, que presentaba una nueva interfaz de usuario. Actualmente la última versión estable es la 3.6.7.

Instalación

Los paquetes binarios, para su instalación, están disponibles, para la mayoría de las distribuciones de Unix y GNU/Linux, en sus repositorios, incluidos los S.O.: Debian GNU/Linux, Ubuntu, Red Hat Enterprise Linux, CentOS, Fedora, FreeBSD, GentooLinux, Oracle Solaris, Linux alpino, Arco linux, HP-UX, NetBSD y OpenPKG.

No obstante, puedes descargar de la página oficial del proyecto, versiones de 32 y 64 bit para MS Windows y MacOS, además del código fuente, la última versión estable (3.6.7) o la anterior (3.4.15), una versión de desarrollo (4.0.0rc1) y documentación oficial. Si quieres aprender más sobre la herramienta aquí tienes toda la documentación necesaria Online, en EPUB y en PDF.

Página de descargas

Vamos a instalar el software desde los repositorios de Debian 11 «Bullseye». Para ello, como siempre, primero actualizamos la lista de paquetes de los repositorios y actualizamos el sistema.

sudo apt update && sudo apt upgrade -y
Actualización del sistema

Ya podemos iniciar la instalación. Nos instalará la versión 3.4.10-0+deb11u1, que es la disponible en los repositorios main de Debian.

sudo apt install wireshark -y

Nos avisa de que podemos instalar el software para permitir su uso a usuarios del sistema pero que esto plantea problemas de seguridad y que la función está deshabilitada por defecto. En caso de duda, se sugiere dejarlo deshabilitado. ¿Deberían los no superusuarios poder capturar paquetes? Lo dejamos por defecto «NO». Si lo hacemos así, solo root podrá capturar paquetes. Si después quieres usar el programa con un usuario normal tendrás que ejecutar «sudo dpkg-reconfigure wireshark-common» y contestar que «si» a la pregunta que hace, después tendrás que añadir el usuario al grupo «wireshark» con «sudo usermod -aG wireshark {usuario}», salir y volver a loguearte.

Lo instalamos solo para root

Cuando termine la instalación, verificamos la versión instalada

wireshark -v
Versión instalada

El software lo podemos lanzar desde el entorno gráfico, abriendo el dash y escribiendo «Wireshark» en el buscador, o en Aplicaciones > Mostrar aplicaciones > Wireshark.

Lo lanzamos desde el entorno gráfico

Desde la terminal lo puedes lanzar ejecutando «wireshark». Si lo has instalado para que solo root pueda capturar paquetes

su -
root# wireshark   
Pantalla de Wireshark

Uso de la herramienta

Vamos a hacer una captura que nos permitirá comprobar la pila de protocolos TCP/IP, aunque puedes capturar y analizar cualquier tipo de comunicación y protocolo, incluso ver el contenido de los paquetes transmitidos.

En la interfaz encontramos tres zonas. En la primera nos muestra los paquetes capturados, en la zona central información sobre los paquetes seleccionados y en la de abajo el contenido de los paquetes en dígitos hexadecimales.

Una vez abierto el programa, tenemos que seleccionar la tarjeta de red sobre la que queremos realizar la captura de paquetes (si disponemos de varias). En la lista de interfaces aparecerán todas, incluso las virtuales.

Captura de interfaces de red

Para hacer una prueba abrimos un navegador. En Wireshark iniciamos la captura de paquetes pulsando «Captura» > «Comenzar» o clicando el botón de aleta de tiburón en la esquina superior izquierda.

En la barra de direcciones del navegador escribimos https://weblinus.com o la página que quieras, y volvemos a Wireshark. Verás que ya ha capturado gran cantidad de tramas. Las de las resoluciones del DNS, previa al trafico HTTPS, y puede que algunas de otro tipo.

Tráfico capturado

Ahora vamos a hacer un filtrado para ver solo las tramas referidas al trafico del protocolo HTTPS. Para ello escribimos «HTTP» en la barra «Filter».

Seleccionamos tráfico https

Observamos que la primera trama de la captura siguiente es una petición «GET», en la columna «Info». Si hacemos doble clic sobre ella, nos aparece una ventana con su contenido.

Contenido de la petición GET

Nos aparecen 5 lineas de información. Frame, Ethernet II, Internet Protocol Versión 4 (IPv4), Transmission Control Protocol (TCP) y Hypertext Transfer Protocol (HTTP). Frame es la trama completa, todos los bits a nivel de la capa física, Ethernet II es la cabecera del nivel de enlace datos, IP versión 4 es la cabecera de la capa de red, Transmission Control Protocol (TCP) es la cabecera del nivel de transporte y Hypertext Transfer Protocol (HTTP) es la petición enviada al servidor web de la capa de aplicación. Veamos uno por uno cada apartado.

Desplegamos con «>» la linea «Frame». A este nivel se llama trama.

Frame. Trama completa

Aquí nos ofrece mucha información. Los bits capturados, la interfaz, tipo de encapsulación, información sobre tiempos, numero de trama, longitud de esta, protocolos utilizados, etc..

Desplegamos «Ethernet II» y vemos los datos de la capa de enlace de datos.

Contenido de Ethernet (Enlace de datos)

Obtenemos la información de las interfaces. Nombre de las tarjetas de red origen y destino y sus direcciones físicas (MAC) y el protocolo de encapsulado (IPv4).

Ahora desplegamos la cabecera «Internet Protocol Versión 4» (IPv4), el paquete IP de la capa de red.

Contenido del paquete IP

Los datos que obtenemos son, entre otros, las IPs origen y destino, la longitud de la cabecera, el tamaño total del paquete, el protocolo de encapsulado (TCP), la cabecera de control de seguridad «checksum» y alguno más.

En el desplegable de la linea «Transmission Control Protocol» (TCP) tenemos los datos de la capa de transporte. El segmento.

Captura del segmento. Capa de transporte.

Podemos ver los puertos de origen y destino, el numero de secuencia del segmento, la longitud de este, información relativa a los ACK para el establecimiento de la comunicación y más…

Al desplegar «Hypertext Transfer Protocol» (HTTP), obtenemos la información de la capa de aplicación, el mensaje.

Contenido del mensaje. Capa de Aplicación.

Obtenemos la cabecera HTTP que corresponde a la petición GET, el contenido solicitado (/), el destino (host), el estado de la conexión y más datos como el agente de usuario (navegador Firefox), el contenido aceptado, lenguaje, etc…

Ahora podemos guardar las capturas en una memoria para analizarlas después. Para ello en el menú «Archivo» elegimos la opción «Guardar como» y le ponemos nombre. Wiresark las guarda con la extensión «.pcapng». Tienes la opción de guardarlo comprimido con «gzip».

Guardar las capturas

Puedes hacer las pruebas que quieras, por ejemplo mandando un «ping» a otro equipo (ICMP) y luego un «ping -6 localhost» y ver las diferencias, o probar a capturar los paquetes transmitidos por tu WIFI.

Desinstalar Wireshark

Para desinstalar Wirwshark y todas sus dependencias, ejecuta

sudo apt autoremove wireshark -y

Ten muy en cuenta que esta herramienta está diseñada para los objetivos que se han señalado en este artículo, y que según el Convenio de Ciberdelincuencia del Consejo de Europa o «Convenio de Budapest», la «interceptación deliberada e ilegítima, por medios técnicos, de datos informáticos comunicados en transmisiones no públicas efectuadas a un sistema informático, desde un sistema informático o dentro de él, incluidas las emisiones electromagnéticas procedentes de un sistema informático, que contenga dichos datos», es un delito castigado incluso con la privación de la libertad.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la página de contacto, tienes otro formulario.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.