En el campo de la ciberseguridad, entre las herramientas consideradas más útiles y potentes se presentan aquellas que permiten la máxima visibilidad. Wireshark es una de ellas, de hecho, es la herramienta principal, si nos referimos a la visibilidad a nivel de red. Para los analistas de redes es imprescindible, pero no solo esta categoría la considera de suma importancia, también están los responsables de operaciones de seguridad, los arquitectos de seguridad y los encargados de responder a incidentes. Aquellos de entre ellos que demuestren la capacidad de aprovechar Wireshark en todo su potencial podrán obtener una ventaja significativa y decisiva.
¿Qué es Wireshark?
Es un analizador de protocolos de red, llamado analizador de paquetes, diseñado para proporcionar visibilidad del tráfico que se produce en una red o entre máquinas. Permite mirar desde el interior de la red y examinar los detalles del tráfico inalámbrico y por cable a varios niveles: desde la información a nivel de conexión hasta los bits que hacen un determinado paquete y los datos que contiene. Wireshark también permite visualizar la información en varios niveles de la pila, de modo que el operador puede aislar, identificar y depurar las conexiones de red desde los niveles más bajos hasta la capa de aplicación.
Ante tal descripción, pueden surgir algunas preocupaciones. Una tiene que ver con los recientes paradigmas de arquitectura, como la confianza cero, que han llevado a un mayor uso de la encriptación en la red interna, limitando idealmente la cantidad de tráfico de red que podemos ver. La otra está relacionada con las versiones más recientes de muchos protocolos o métodos de acceso que emplean la encriptación -por ejemplo, el Protocolo de Escritorio Remoto, SSH en lugar de Telnet o Servicios R, FTP Seguro en lugar de FTP, etc. – o que, además de la encriptación utilizada en los niveles inferiores de la pila, también limitan lo que podemos ver utilizando un analizador de protocolos.
Es cierto que el tráfico de red está más cifrado que nunca, pero desde un punto de vista práctico, mucha información relevante sigue siendo accesible. De hecho, el tráfico de red está deliberadamente estratificado. Por ejemplo, los modelos de Interconexión de Sistemas Abiertos y TCP/IP constan de siete o cuatro capas separadas y distintas, respectivamente, que pueden verse y entenderse por separado.
Aunque las capas superiores de la pila pueden codificarse, las capas inferiores, vistas de forma aislada, permiten comprender los problemas relativos a la seguridad y la transmisión del tráfico. Esto se debe a que el direccionamiento, el enrutamiento y otros numerosos elementos para llevar los paquetes del punto A al punto B siguen siendo accesibles.
También hay que tener en cuenta que los exploits a menudo tienen que ejecutarse de una manera determinada, en un orden concreto y de forma restringida. Cualquiera que haya trabajado en un equipo rojo o haya participado en una prueba de penetración centrada en el sistema, el host o la red sabe lo difícil que puede ser asegurarse de que un sistema objetivo se encuentra en el estado adecuado y de que se dan las condiciones y circunstancias apropiadas para que pueda ser explotado con éxito. Los pasos de un ataque eficaz son con frecuencia claramente visibles a nivel de red, porque algunos exploits no pueden funcionar cuando se utilizan al máximo las técnicas de evasión o sigilo. Para un ciberdelincuente, por lo tanto, hay ocasiones en las que es difícil hacer que su actividad sea invisible para los que vigilan activamente.
Todo esto demuestra que examinar el tráfico de red subyacente sigue siendo útil, a pesar de que las arquitecturas modernas limitan lo que se puede ver en los niveles superiores de la pila. La flexibilidad y la profundidad de inspección disponibles en Wireshark le permiten analizar eventos y solucionar problemas de los dispositivos de seguridad de la red, manteniendo la misma eficacia que en años pasados. Esta es la razón por la que Wireshark sigue siendo una de las herramientas más citadas, utilizadas y en las que más confían los profesionales del Equipo Azul. Al tratarse de un software de código abierto, con frecuencia también resulta rentable económicamente.
Casos de uso de Wireshark
La naturaleza específica de la utilidad de la herramienta varía en función del tipo de profesional.
- Los operadores de redes pueden utilizar Wireshark para depurar errores de conectividad y solucionar problemas.
- Los profesionales de seguridad de los equipos azules pueden utilizarlo para investigar incidentes de seguridad, al ayudarlos a examinar herramientas, técnicas y procedimientos específicos utilizados por un adversario, para detectar amenazas examinando las comunicaciones en profundidad, y para perfeccionar y ajustar controles como un sistema de detección de intrusiones (IDS) o un firewall de aplicaciones web.
- Los equipos rojos pueden utilizar Wireshark -o, más probablemente, el más minimalista TShark de línea de comandos- para espiar las comunicaciones y buscar los datos sensibles que se intercambian u obtener información sobre el entorno de red en el que se encuentran.
Las capacidades de Wireshark son sencillas; de hecho, permite las siguientes operaciones:
- Ver los datos que atraviesan varias redes, incluidas las redes cableadas, como Ethernet, las redes inalámbricas, las redes Bluetooth o las interfaces de red virtuales, como Docker o un hipervisor.
- Navegar y ver las distintas capas de la pila, incluidos los protocolos a nivel de aplicación, como HTTP/HTTPS; los protocolos de correo, como Post Office Protocol 3 y SMTP; y los protocolos de compartición de archivos, como Server Message Block y Common Internet File System. Más abajo en la pila, podemos ver TCP/IP y el Protocolo de Datagramas de Usuario. Aún más abajo en la pila, se pueden ver artefactos como las tramas Ethernet.
- Registre y capture el tráfico para su posterior análisis.
Esto puede no parecer gran cosa a primera vista, pero estas funciones son excepcionalmente potentes. Por ejemplo, los responsables de seguridad tienen muchas razones para observar el tráfico de red. Examinar el contenido de los paquetes puede resultar muy valioso a la hora de investigar un ataque o planificar contramedidas. Cuando se recibe una alerta de seguridad de un sistema de detección de intrusiones (IDS), de un proveedor de servicios de seguridad gestionados o de cualquier otra herramienta de detección de bajo nivel, Wireshark ayuda a determinar si el tráfico procede de un error o de un ataque malicioso. En el caso de un ataque, ayuda a identificar su tipo mediante un análisis detallado del tráfico subyacente.
Wireshark también puede ayudar a los usuarios a localizar el punto de origen de un ataque y el objetivo examinando las direcciones IP de los sistemas objetivo y aquellas desde las que se originaron los paquetes maliciosos. Esta información es útil no solo para la respuesta a incidentes, sino también porque ayuda a los defensores a crear reglas previas, por ejemplo, reglas de firewall u otras reglas de filtrado de red, como grupos de seguridad de red, para bloquear, limitar o evitar de otro modo que los ataques se repitan en el futuro.
El rastreo del tráfico de red también es útil para buscar amenazas. Si un atacante se mueve por la red, la actividad es visible si usted está observando en ese momento concreto. Evidentemente, es imposible que alguien vigile siempre toda la actividad de la red a este nivel, pero si puede precisar dónde mirar, por ejemplo, en respuesta a una alerta o a una actividad sospechosa, podrá acercarse y obtener los datos que necesita para sacar mejores conclusiones.
Otra razón para utilizar Wireshark para observar redes es solucionar problemas de seguridad con dispositivos o aplicaciones de red, por ejemplo, los relacionados con las reglas de firewall. Si los sistemas que ejecutan Wireshark están conectados a ambos lados de un firewall o un router, es posible ver qué paquetes pueden atravesar el Firewall y determinar si está causando problemas de conectividad.
Por último, con esta herramienta también podrá registrar el tráfico. Esto puede ayudarle a realizar auditorías, comprender cómo funcionan las aplicaciones, registrar la actividad para un examen posterior, etc. Existen herramientas complementarias que permiten editar y reproducir los datos de captura de paquetes con fines educativos, de ajuste de controles, de pruebas y por muchas otras razones.
1. Descargar e instalar Wireshark
Empezaremos instalando el software:
-Descargue los paquetes de instalación para Windows o Mac.
-Cree el ejecutable de Wireshark.
-Instale el gestor de paquetes predeterminado para muchas distribuciones populares de -Linux.
-Utilice una distribución de Linux especializada en seguridad, como Kali, que tiene Wireshark instalado por defecto.
-Añada una copia portátil de Wireshark en una unidad flash USB al kit de herramientas de respuesta a incidentes.
-Utilice un “live CD” u otro medio de arranque como dispositivo portátil de análisis de red.
En un contexto Windows, el instalador compatible utiliza un asistente de instalación que incluye la selección de características opcionales a instalar. En un contexto Linux, el gestor de paquetes determina qué información se muestra o qué opciones de configuración, si las hay, pueden mostrarse durante la instalación. Depende mucho del gestor de paquetes y de la distribución, por lo que lo mejor es consultar las instrucciones de distribución y configuración del gestor de paquetes que elija.
En la mayoría de las plataformas, Wireshark depende de la biblioteca de captura de paquetes correspondiente: libpcap en Linux/Unix y WinPcap en Windows. En Linux se presupone el uso de un gestor de paquetes moderno gestionado e instalado por el propio gestor; en Windows es necesario instalar WinPcap si no se encuentra ya en el sistema.
2. Realice una simple captura del paquete.
Una vez instalado, se puede iniciar Wireshark. Normalmente, se presenta de inmediato una pantalla con las diferentes interfaces de red del sistema, así como un gráfico que indica la actividad de la red en cada interfaz. Cabe destacar que, en el entorno Linux, la captura de paquetes de bajo nivel suele requerir acceso como root, por lo que puede ser necesario elevar los permisos a root en Linux.
La siguiente imagen muestra un buen número de interfaces de red, muchas de ellas cableadas e internas: como indican las líneas planas, no tienen actividad. Por el contrario, la interfaz de red superior, una interfaz Wi-Fi, muestra actividad, como indica la línea de puntos.
Al hacer doble clic en la interfaz de red que se conecta a la red que desea capturar, Wireshark estrena una ventana para mostrar los paquetes transmitidos por la red y ofrece muchas opciones para gestionar los filtros de visualización.
En el panel superior, que se muestra en la captura de pantalla inferior, Wireshark muestra la información contenida en las cabeceras de cada paquete, incluido, por defecto, un índice de tiempo que muestra el tiempo transcurrido entre el inicio de la captura y el momento en que se analizó el paquete. Puede ajustar el formato de tiempo y guardar los datos del temporizador con la captura para recuperar la hora real en que se envió el paquete analizado. También se muestran las direcciones IP de origen y destino del paquete, el protocolo en uso, la longitud y diversa información. Se pueden ver detalles adicionales haciendo clic en una línea.
El panel central contiene detalles pormenorizados sobre el paquete seleccionado en el panel superior. Acá tiene, por ejemplo, la cabecera Ethernet de un solo paquete.
Esta cabecera indica las direcciones MAC de origen y destino, así como la identidad del siguiente protocolo de la pila: IPv6. A continuación, puede analizar la cabecera IPv6.
Acá encontrará las direcciones IP de origen y destino, así como información específica de IP. Puede navegar dentro de la pila, viendo información detallada sobre cada capa en el camino. Del mismo modo, puede navegar por los protocolos superpuestos. La imagen de arriba es IPv6; acá tiene una vista de IPv4.
También puede ver información sobre protocolos de capas superiores, como TCP.
Esta cabecera incluye información sobre los puertos TCP de origen y destino, las banderas establecidas en el paquete y otros detalles útiles para la resolución de problemas.
El panel inferior es una visualización hexadecimal que muestra el contenido digital del propio paquete. Al resaltar cualquiera de los datos se muestran los detalles del protocolo en el panel central, como se muestra en la siguiente captura de pantalla
Una función útil de Wireshark es dirigir al usuario a la información más relevante sobre los distintos protocolos examinados con la herramienta. Por ejemplo, la siguiente captura de pantalla ilustra el escenario ya menos común de acceder a un sitio solo HTTP, en este caso neverssl.com, y la información de tráfico sin procesar a nivel de aplicación que allí se presenta.
Cambio de las opciones de captura
Tras la simple captura básica de paquetes, Wireshark permite a los usuarios editar varias opciones para adaptarla. Se puede acceder a ellas haciendo clic en el icono con forma de engranaje “Opciones de captura” de la barra de herramientas, como puede verse en la siguiente imagen.
Al hacer clic en este botón se abre la ventana “Interfaces de captura” con tres pestañas. La pestaña Entrada le permite editar las interfaces de Wireshark y activar el modo promiscuo, para capturar el tráfico de red que no está dirigido específicamente al sistema de captura.
La pestaña Salida controla dónde almacena Wireshark los paquetes capturados. Puede hacerlo automáticamente en un archivo y cambiar su formato, o puede crear un archivo en función de la cantidad de datos capturados o del tiempo transcurrido.
La pestaña Opciones le permite elegir el modo de visualización de los paquetes y las opciones para los nombres MAC y DNS, así como limitar el tamaño de las capturas de paquetes. Algunas de estas opciones pueden ayudar a mejorar el rendimiento de Wireshark. Por ejemplo, se pueden ajustar las opciones para evitar problemas con los nombres, que de otro modo retrasarían el sistema de captura y generarían muchas consultas. Los límites de tiempo y tamaño también pueden poner límites a las capturas desatendidas.
3. Interpretar y analizar el contenido de los paquetes
La función de análisis más útil de Wireshark son los filtros. Cada día fluyen más datos por la red, lo que hace cada vez más complejo encontrar información útil. Obtener los datos correctos sin los filtros adecuados es casi imposible incluso en una red de tamaño moderado, por no hablar de una red agitada o de gran tamaño.
Cómo subir un filtro de visualización Wireshark
Wireshark dispone de varios tipos de filtros. Puede ordenar los datos adquiridos utilizando un filtro de visualización. Como su nombre indica, este filtro limita lo que se muestra en la pantalla. El cuadro de edición es probablemente el control más potente de toda la herramienta y consigue facilitar el análisis.
Puede especificar lo que desea ver y le permite limitar qué protocolos se muestran: con “tls” en la barra de filtro, verá los resultados solo del tráfico TLS.
Los filtros pueden ser mucho más complicados que eso. El siguiente ejemplo limita la visualización a los resultados en los que el puerto TCP es 443 y el número de secuencia TCP es 499.
Subir un filtro es un poco un arte. Wireshark intenta ayudar al usuario a encontrar lo que busca sugiriéndole cómo completar la expresión del filtro. Por ejemplo, si escribe “ip” en la barra de filtrado, Wireshark rellena previamente las posibles propiedades o subelementos de IP que podrían ser relevantes. Del mismo modo, si escribe “tcp”, Wireshark rellenará previamente los subelementos de TCP.
El control del filtro de visualización cambia en función de la validez de lo que se pregunta. En los ejemplos anteriores, el color de fondo del cuadro de filtro cambia de blanco (en blanco) a verde una vez establecido. El verde indica que el filtro es sintácticamente correcto. Si especifica algo que Wireshark no puede interpretar, el fondo se vuelve rojo, como se ve en este filtro deliberadamente sin sentido. Esto significa que el filtro solicitado es sintácticamente inválido o que la herramienta es incapaz de analizar la solicitud.
La función de cambiar el color del cuadro de filtro es especialmente importante porque los filtros pueden complicarse dependiendo de lo que se busque. Normalmente los filtros se crean utilizando una sintaxis concisa similar a la de C, en la que las expresiones no son necesarias. Se pueden utilizar operaciones lógicas en la creación de filtros, como AND (&&), OR (||), NOT (!) e incluso XOR (^^). Se pueden realizar comparaciones, como igual (==), no igual (!=), mayor que (>), mayor o igual que (>=), etc. Aunque muchos usuarios prefieren utilizar la sintaxis de estilo C por razones de precisión, brevedad y claridad, existe una sintaxis alternativa de estilo inglés, similar a las sentencias condicionales en bash, con “ne” indicando “no igual”, “eq” indicando “igual”, “le” indicando “menor o igual que”, etc.
Considere el filtro siguiente que utiliza ne (no igual) en una sintaxis similar a la inglesa.
Observe también que, en este ejemplo, el color de fondo ha cambiado a amarillo. Esto significa que el filtro está funcionando, pero Wireshark nos advierte de que es ambiguo en algún sentido y, por lo tanto, puede no funcionar como se pretendía. Es necesario considerar cuidadosamente, y potencialmente modificar, los filtros amarillos. A veces significa que la intención es hacer lo que se especificó, pero también puede significar que hay una errata u otro problema sintáctico.
Este es un resumen de alto nivel de la funcionalidad asociada a los filtros Wireshark. Dado el nivel de complejidad de algunos filtros, sobre todo para ordenar grandes volúmenes de datos, y la versatilidad de la sintaxis, se recomienda que lea la sección del manual sobre filtros a medida que se vaya familiarizando con Wireshark. Los filtros pueden hacer muchas cosas, por lo que aprender a utilizar esta función tiene un valor incalculable y, en mi opinión, es fundamental para poder utilizar la herramienta con eficacia.
Cómo subir un filtro de captura de Wireshark
Un filtro de captura limita lo que captura la herramienta y se utiliza para indicar el tamaño de los datos capturados al tráfico específico que le interesa. Es especialmente útil para capturas de larga duración de tráfico específico durante un periodo de tiempo más largo.
Para acceder a él, seleccione Filtros de captura en la opción de menú Captura.
Mientras que la finalidad de un filtro de visualización es ayudar al análisis y, por tanto, es versátil y flexible, la de un filtro de captura no es la misma. De hecho, sirve para limitar la memoria utilizada en la grabación de capturas, por lo que la sintaxis y el nivel de complejidad no son los mismos. Los filtros de captura utilizan una sintaxis diferente, mucho más ligera que la necesaria para configurar los filtros de visualización.
Es útil conocer la diferencia entre filtros de visualización y filtros de captura. Se puede ganar mucho dominando por completo cualquiera de los dos, pero saber cuándo y cómo utilizarlos es fundamental para dominar la herramienta Wireshark y supone una gran ventaja a largo plazo.
Conceptos básicos de la exploración de redes con Wireshark
Aquí se resumen los aspectos básicos del uso de Wireshark para capturar y analizar el tráfico de red. La mejor manera de convertirse rápidamente en un experto en Wireshark es empezar por capturar el tráfico de red. Entonces descubrirá que puede ser una herramienta útil para todo, desde la configuración de reglas de firewall hasta la detección de una intrusión. Sin embargo, antes de capturar el tráfico de una red, siempre necesitará el permiso del propietario de la red.