Articles

Descifrar el tráfico SSL/TLS con Wireshark

En este artículo, configuraremos Linux y capturaremos paquetes HTTPS (Protocolo de Transferencia de Hipertexto Seguro) en Wireshark. Luego intentaremos decodificar los cifrados SSL (Secure Socket Layer).

Tenga en cuenta que: El descifrado de SSL /TLS puede no funcionar correctamente a través de Wireshark. Esto es solo una prueba para ver lo que es posible y lo que no es posible.

¿Qué son SSL, HTTPS y TLS?

En realidad, todos estos tres términos técnicos están interrelacionados. Cuando usamos solo HTTP (Protocolo de Transferencia de Hipertexto), entonces no se usa seguridad en la capa de transporte y podemos ver fácilmente el contenido de cualquier paquete. Pero cuando se usa HTTPS, podemos ver que se usa TLS (Transport Layer Security) para cifrar los datos.

Simplemente podemos decir.

HTTP + (sobre) TLS / SSL = HTTPS

Nota: HTTP envía datos a través del puerto 80, pero HTTPS utiliza el puerto 443.

Captura de Datos HTTP:

Captura de pantalla de Datos HTTPS:

Configure Linux para la descripción del paquete SSL

Paso 1
Agregue la siguiente variable de entorno dentro del .archivo bashrc. Abre el .archivo bashrc y agregue la siguiente línea al final del archivo. Guarde y cierre el archivo.

export SSLKEYLOGFILE=~/.clave ssl.registro

Ahora, ejecute el siguiente comando para obtener el efecto de la misma.

source ~/.bashrc

Ahora de intentar el siguiente comando para obtener el valor de «SSLKEYLOGFILE»

echo $SSLKEYLOGFILE

Aquí está la captura de pantalla para todos los pasos de arriba

Paso 2
El archivo de registro no está presente en Linux. Cree el archivo de registro anterior en Linux. Utilice el siguiente comando para crear un archivo de registro.

touch ~/.clave ssl.log

Paso 3
Inicie Firefox instalado de forma predeterminada y abra cualquier sitio https como Linuxhint o Upwork.

Aquí he tomado el primer ejemplo como upwork.com.

Después de abrir el sitio web de upwork en Firefox, comprueba el contenido de ese archivo de registro.

Comandos:

cat ~/.clave ssl.log

Si este archivo está vacío, Firefox no está usando este archivo de registro. Cierra Firefox.

Siga los siguientes comandos para instalar Firefox.

Comandos:

sudo add-apt-repository ppa:ubuntu-mozilla-daily/firefox-aurora
sudo apt-get update
sudo apt-get install firefox

Ahora, inicie Firefox y verifique el contenido de ese archivo de registro

Comando:

cat~/.clave ssl.log

Ahora podemos ver información enorme como la siguiente captura de pantalla. Estamos listos para irnos.

Paso 4
Ahora tenemos que añadir este archivo de registro dentro de Wireshark. Siga el camino a continuación:

Wireshark->Edit->Preferences->Protocol->SSL->”Here provide your master secret log file path”.

Follow the below screenshots for visual understanding.

Después de hacer todos estos ajustes, ¿ OK y empieza a Wireshark en las interfaces necesarias.

Ahora la configuración está lista para verificar el descifrado SSL.

Análisis de Wireshark

Después de que Wireshark comience a capturar, coloque el filtro como » ssl » para que solo se filtren los paquetes SSL en Wireshark.

Mire la siguiente captura de pantalla, aquí podemos ver que HTTP2 (HTTPS) se abre para algunos paquetes que antes eran encriptados SSL/TLS.

Ahora podemos ver la pestaña» SSL descifrado » en los protocolos Wireshark y HTTP2 abiertos. Vea la siguiente captura de pantalla para obtener punteros.

Veamos las diferencias entre «Antes de que el archivo de registro SSL esté habilitado» y «Después de que el archivo de registro SSL esté habilitado» para https://linuxhint.com

de Linuxhint cuando «El registro SSL no estaba habilitado»

Aquí está la captura de pantalla de los paquetes de Linuxhint cuando «el registro SSL estaba habilitado»

Podemos ver las diferencias fácilmente. En la segunda captura de pantalla, podemos ver claramente la URL que solicitó el usuario.

https://linuxhint.com/bash_scripting_tutorial_beginners/\r\n

Ahora podemos probar otros sitios web y observar si estos métodos de trabajo o no.

Conclusión

Los pasos anteriores muestran cómo configurar Linux para descifrar el cifrado SSL / TLS. Podemos ver que funcionó bien, pero algunos paquetes siguen cifrados con SSL / TLS. Como mencioné anteriormente, puede que no funcione para todos los paquetes o completamente. Aún así, es bueno aprender sobre el descifrado SSL / TLS.