Descifrar tráfico SSL con Wireshark

Es probable que alguna vez hayas iniciado una captura con Wireshark para por ejemplo, diagnosticar el funcionamiento de un sitio web. Si es así seguro que ha llamado tu atención el hecho de que no puedes ver gran parte de la información, porque está cifrada. Veremos como descifrar tráfico SSL con Wireshark.

Wireshark es una utilidad de captura y análisis de protocolos de red. También sirve como herramienta didáctica para aprender sobre negociación en redes. Es una herramienta indispensable junto con Nmap.

¿Wireshark y SSL? SSL / TLS (es lo mismo) es un protocolo de cifrado que opera en la capa de transporte del modelo OSI. Emplea varios métodos de cifrado para mantener la seguridad de los datos en tránsito. Es decir, garantiza que solamente sean legibles para el destinatario esperado, que contará con un mecanismo para devolver el sentido original a los datos recibidos.

Dado que SSL crea un túnel seguro en un flujo de comunicación, los administradores no pueden ver datos legibles desde que entran y salen del túnel, por lo que en casos donde es necesario hacer un troubleshooting de la red, es imposible.

Así puedes analizar tráfico SSL desde Wireshark

Descifrado de TLS con clave pre-master

Utilizaremos algo llamado pre-master secret key para poder revelar los contenidos protegidos con TLS/SSL. La clave secreta pre-maestra es una clave generada por el cliente y utilizada por el servidor para derivar de ella una clave maestra que cifre la sesión.

Hay que diferenciar entre pre-master secret (S) y master secret (K). El primero es una clave generada aleatoriamente -a veces procedente de un intercambio DH o Diffie Hellmann. El segundo, es una función del primero (un derivado).

pre-master-key-master-key

Luego existen otros conceptos adicionales como la clave privada y la clave de sesión (conocida como shared secret) que se determinan en pasos posteriores de la negociación.

El hecho de usar una clave pre-compartida nos da la ventaja de poder ver datos para los que en teoría deberíamos tener acceso al servidor que gestiona la conexión.

Pasos para escuchar los mensajes Secure Socket Layer

Requisitos

  • Navegadores: Chrome o Firefox (el resto no soportan exportar la clave privada para el tráfico HTTPS)
  • Sistema operativo: Windows, Linux o Mac OS X servirán.

Pasos a realizar

A continuación se desgranan los diferentes pasos y configuraciones, que implican:

  • Crear variable de entorno
  • Realizar una sesión de navegación con navegador soportado
  • Configurar Wireshark
  • Capturar y descifrar la sesión

Crear variable de entorno

Windows

Abriremos el panel de control de forma rápida pulsando la combinación de teclas WIN + R, escribiendo después:

control system

Nos fijaremos en la parte izquierda de la pantalla y abriremos la opción indicada: Configuración avanzada del sistema.

descifrar-trc3a1fico-ssl-con-wireshark

Buscaremos apartado Inicio y Recuperación > Variables de entorno

Ahora pulsaremos en Nueva para el tipo de variable de entorno de usuario.

descifrar ssl1descifrar ssl2

Prefiero personalmente enlazar la variable de entorno únicamente a mi usuario, ya que es con fines demostrativos. Si queréis recoger estos datos para las sesiones del resto de usuarios, podéis utilizar variables de entorno de sistema.

Si vamos a crear esto como una variable de sistema, pondremos especial cuidado en definir bien los wildcards (comodines de búsqueda) o bien en emplazar el archivo en una ruta donde todos los usuarios tengan derecho de escritura.

En la variable, escribiremos el nombre:

SSLKEYLOGFILE

Para el valor de la variable, haremos clic primero sobre examinar directorio, para definir una carpeta donde guardar el archivo de volcado de shared keys. Crearemos el citado archivo de nombre sslkey.log en la ruta indicada. Finalmente, pulsaremos sobre Examinar archivo y seleccionaremos el archivo de texto recién creado.

SSLKEYLOGFILE1SSLKEYLOGFILE2

 

Pulsaremos aceptar y reiniciaremos el equipo para aplicar la variable de entorno.

¡Momento Spam! Bueno consejo, ya me entendéis 😉 Como este tutorial es un poco extenso lo aprovecho para recordaros que he creado un ranking completo de los mejores antivirus gratis Windows 10, 11, así como para Mac, Android e iOs ¡No falta detalle!. Y no sólo gratuitos, para los usuarios que de verdad valoramos la ciberseguridad, he creado el ranking de los mejores en sus versiones Premium también. ¡Espero que os sirvan de ayuda!, sin más dilación seguimos 🙂

 

Crear variable de entorno en Linux y Mac

En sistemas como Linux o Mac OS X tendremos que hacer básicamente lo mismo. Lo único que utilizaremos otro editor de texto como Nano o VIM, buscando las siguientes rutas según el sistema donde lo hagamos:

Derivados de Linux

nano ~/.bashrc

Mac OS

Buscaremos Launchpad, haremos clic sobre Otros y abriremos un terminar para lanzar este comando:

nano ~/.MacOSX/environment

En ambos casos, al final del archivo deberemos añadir la linea siguiente:

export SSLKEYLOGFILE=~/.ssl-key.log

Salvaremos los cambios, cerraremos la terminal y abriremos uno nuevo para verificar que está establecida con este comando:

echo $SSLKEYLOGFILE

Comprobar que se recogen las claves

Antes de continuar haremos una comprobación para saber si se están volcando. Abriremos un navegador y visitaremos cualquier web que tenga SSL habilitado por defecto. Hoy en día esto es el comportamiento estándar. Puedes usar esta web por ejemplo.

verificar-sslkeylog

 

En el caso de Windows (en todos es igual), deberán aparecer datos similares a estos que demuestran que funciona. En sistemas basados en Linux, haremos algo como:

cat ~/.ssl-log.key

Deberían aparecer datos similares. En caso de ser así, podemos pasar a la configuración de Wireshark para poder desencriptar sesiones SSL.

Configurar Wireshark para extraer SSL

Una vez tengamos el navegador recuperando datos gracias a las claves pre-compartidas, podemos configurar lo propio en Wireshark para que pueda interpretar esos datos por nosotros.

En Wireshark, abriremos el menú Editar > Preferencias

Bajaremos hasta el protocolo SSL (en algunas versiones más antiguas buscaremos SSL). Ahora nos situaremos en Pre-Master-Secret log filename.

descifrar-trc3a1fico-tls-g

Usaremos la ruta de nuestro archivo de log:

 

configurar-wireshark

 

Ya podemos empezar a capturar.

Capturar y descifrar la sesión

  • Comenzaremos ahora una sesión de captura sin filtros y la dejaremos minimizada mientras volvemos al navegador:

escuchar-trc3a1fico-con-wireshark

 

  • Visitamos un sitio web seguro (que utilice TLS).
  • Cerramos el navegador al terminar y detenemos la captura de Wireshark

Ahora estableceremos un filtro para que sea más sencillo encontrar nuestro objetivo. Usaremos estos filtros en la ventana de Wireshark.

frame contains <nombre del sitio web>

Con esto podremos ver la query o petición DNS para resolver el nombre a dirección IP del sitio. Copiamos esta dirección IP.

descifrar-trc3a1fico-tls-b

También podemos ver el saludo en 3 pasos típico de las conexiones TCP. Lo distinguiremos de los «datos».

descifrar-trc3a1fico-tls-e

Ahora establecemos un filtro que incluya nuestra dirección IP local y la IP remota, ejemplo:

ip.addr == 172.217.16.229 and ip.addr == 192.168.1.104

Una vez seleccionada una trama cifrada, si nos fijamos en la vista de paquetes, debajo del todo, aparecerán valores como Decrypted SSL. Esto no significa que siempre vayamos a poder ver todos los datos cifrados, sino que veremos los datos ajenos a TLS que van encapsulados en estos paquetes.

 

 

 

descifrar-trc3a1fico-tls-i

En este ejemplo podemos ver captura de la clave de acceso mediante HTTP

 

Una forma fácil de ver la diferencia entre el uso o no de clave pre-compartida es simplemente dejar el ajuste por defecto, veremos como al habilitarla aparece la negociación HTTP/2 que de la otra forma no es visible.

negociación HTTP1

Sin preshared key

negociación HTTP2

Con preshared key

Si hacemos clic en la pestaña Uncompressed entity body, que solamente aparecerá con el descifrado de SSL activo, podemos ver por ejemplo el código fuente de la web.

trc3a1fico-ssl-descifrado

Este otro ejemplo muestra que también podemos capturar cookies de sesión.

cookies

El hecho de ser capaz de escuchar esta negociación nos puede servir para verificar la seguridad de nuestros servidores web o para diagnosticar problemas en nuestras aplicaciones web o cliente.

¡Listo! Esto es todo amig@s. Espero que os haya sido de utilidad. Para cualquier duda sabéis dónde estoy, dejar un comentario e intentaré resolveros las dudas lo antes posible.

Descubre el mejor antivirus para 2024

Accede a nuestro comparador gratuito y encuentra el antivirus que mejor se adapte a lo que necesitas y con mejor valoración de los expertos.

Ir al comparador

¿Cómo elijo mi mejor antivirus para Windows, Android, MAC?

Últimas Noticias

Imagen de la noticia ¿Cómo hackear una Wifi?

¿Cómo hackear una Wifi?

Leer más
Imagen de la noticia 10 herramientas gratuitas para crear imágenes con IA

10 herramientas gratuitas para crear imágenes con IA

Leer más
Imagen de la noticia ¿Cómo encender tu ordenador Windows de forma remota?

¿Cómo encender tu ordenador Windows de forma remota?

Leer más
Imagen de la noticia Crear copias de seguridad en cualquier nube con Kopia

Crear copias de seguridad en cualquier nube con Kopia

Leer más
Imagen de la noticia ¡Formatear un USB FAT32 ya no es el límite!

¡Formatear un USB FAT32 ya no es el límite!

Leer más
Imagen de la noticia ¿Te sabes el truco para actualizar a Windows 11 desde un PC no compatible? ¡Ya no existe!

¿Te sabes el truco para actualizar a Windows 11 desde un PC no compatible? ¡Ya no existe!

Leer más
Imagen de la noticia ¿Cómo desactivar las animaciones para aumentar la velocidad de tu PC?

¿Cómo desactivar las animaciones para aumentar la velocidad de tu PC?

Leer más
Imagen de la noticia Windows 11 adelanta a Windows 10 entre los Gamers ¿Cómo lo ha hecho?

Windows 11 adelanta a Windows 10 entre los Gamers ¿Cómo lo ha hecho?

Leer más
Imagen de la noticia Microsoft actualiza Recall en Windows 11 tras miles de críticas

Microsoft actualiza Recall en Windows 11 tras miles de críticas

Leer más
Imagen de la noticia Copilot ya puede razonar: La revolución de la IA de Windows

Copilot ya puede razonar: La revolución de la IA de Windows

Leer más
Imagen de la noticia MSRT, la herramienta secreta de Windows 10 y 11 contra el malware

MSRT, la herramienta secreta de Windows 10 y 11 contra el malware

Leer más
Imagen de la noticia Windows te obliga a usar OneDrive cuando actualizas a Windows 11

Windows te obliga a usar OneDrive cuando actualizas a Windows 11

Leer más
Ver Todas