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.
Descarga
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.
Instalación
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
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.
Cuando termine la instalación, verificamos la versión instalada
wireshark -v
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.
Desde la terminal lo puedes lanzar ejecutando «wireshark». Si lo has instalado para que solo root pueda capturar paquetes
su - root# 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 paquetes
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.
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».
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.
Análisis de paquetes
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.
Frame
Desplegamos con «>» la linea «Frame». A este nivel se llama trama.
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..
Ethernet II
Desplegamos «Ethernet II» y vemos los datos de la capa de 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).
Internet Protocol Version 4
Ahora desplegamos la cabecera «Internet Protocol Versión 4» (IPv4), el paquete IP de la capa de red.
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.
Transmision Control Protocol
En el desplegable de la linea «Transmission Control Protocol» (TCP) tenemos los datos de la capa de transporte. El segmento.
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…
Hypertext Tranfer Protocol
Al desplegar «Hypertext Transfer Protocol» (HTTP), obtenemos la información de la capa de aplicación, el mensaje.
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».
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 sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.