Descifrar el Tráfico de Sesiones SSL o TLS con Wireshark

Iniciado por Stiuvert, Enero 14, 2016, 06:55:15 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 14, 2016, 06:55:15 PM Ultima modificación: Enero 24, 2016, 06:01:17 AM por Stiuvert
Seguramente en alguna ocasión habéis utilizado No tienes permitido ver los links. Registrarse o Entrar a mi cuenta(analizador de tráfico de red: sniffer) para analizar el tráfico de vuestra red en busca de detectar algún comportamiento anómalo, analizar el tráfico de red o simple curiosidad de saber que está pasando.​ Como sabéis en Lync el tráfico entre servidores va protegido vía MTLS y de cliente a servidor vía TLS, aquí tenéis una tabla resumida de cómo se protegen los distintos flujos de datos:



El problema viene dado cuando queréis ver porque el cliente Lync no conecta, o que tipo de DSCP utiliza nuestro cliente Lync cuando iniciamos una conferencia, etc.. y nos encontramos con esto....



Como se puede observar el tráfico está cifrado y sería imposible revisar nada, hasta aqui todo correcto. Pero claro, si queremos analizar cúal es el posible problema que tenemos resultaría imposible. Con Wireshark (y otras herramientas) podemos descrifrar el tráfico SSL (descifrar no es igual a "juankear" ni similar) para poder analizarlo. Para esto necesitamos tener el certificado que utiliza el servidor al cual nos queremos conectar con su clave privada, de tal forma que tenemos que exportarlo desde el servidor con ella. Si no tenemos la clave privada  no podemos hacer nada,  para ello debemos tener acceso a ello. De ahí el comentario anterior de que no estamos hackeando nada de nada, puesto que el certificado con su clave privada la exportamos nosotros. Este artículo solo predente mostrar un procedimiento que debéis seguir para analizar el tráfico SSL o TLS que utiliza Lync (o cualquier otro servicio) para cifrar las comunicaciones. Una vez que tenemos nuestro certificado exportado con su correspondiente clave privada: (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)



Demos convertir el PFX a PEM, que es el formato que Wireshark puede utilizar y para ello utilizaremos No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Una vez instalado debemos ejecutar los siguientes comandos:

Código: dos
openssl pkcs12 -nodes -in SIP.pfx -out sip.pem -nocerts -nodes
openssl rsa -in sip.pem -out sipout.pem




Ahora deberíais tener un fichero con el nombre sipout.pem (cada uno que ponga el nombre que quiera) similar a este (sin los puntitos, esto lo he puesto yo)

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAiFBWj/E7y6MAMUWacV2aeSpt/j2wHzB7xIYBCMnJy0u869eb
...
...
...
...
...
...
...
...
...
...
...
...
ufZSuWUFoiu1XPS6vWPtQ8VRjb0a4hGXSMYDxyupDgEAgRDIMN0jyW1PklbsOZOb
aJWQWC5UQuoWEP4gw+3aC87UTGrk8U10X0DpQdfyD3Bjwwvai3mEYw==
-----END RSA PRIVATE KEY-----




Ahora debemos configurar nuestro Wireshark para que utilice el fichero de clave privada, para ello abrimos el Wireshark y vamos a Edit - Preferences (Shift+Ctrl+P)



Desplegamos la opción de Protocol, seleccionamos SSL y pulsamos en Edit...



Pulsamos en New



Y configuramos las siguientes opciones:

IPAddress: IP del servidor en donde esté instalado el certificado
Puerto: 443
Protocolo: HTTP
Key File: Elegimos el fichero que anteriormente hemos convertido a .PEM



Pulsamos en OK



Y por último vamos a configurar el fichero de registro que se creará en los procesos de descifrado (información muy útil) y pulsamos en Apply para iniciar el proceso de descifrado de las capturas actuales



Si ahora abrimos el fichero de LOG, veremos que se están procesando correctamente, por lo que podremos ver el tráfico capturado de forma "legible"



Abrimos de nuevo el Wireshark, capturamos algo de tráfico y pulsamos en Follow SSL Stream




Nota: Si elegimos la opción Follow SSL Stream sin la configuración del Wireshark adecuada nos mostrará la siguiente pantalla (en blanco)



ahora podemos ver esto, desde luego ya podemos analizar que puede estar sucediendo





El poder descifrar el tráfico resulta muy útil, eso si, debéis tener acceso a la clave privada del certificado. Por otra parte, no deberíais permitir que los certificados instalados en los servidores tengan la clave privada como exportable, porque si alguien tiene más habilidad que nosotros nos puede comprometer y mucho la seguridad de nuestra empresa. Este artículo solo viene a representar como podéis analizar el tráfico cifrado con una de las herramientas más utilizadas para analizar tráfico de red, pero podéis hacerlo con otras muchas. En principio solo tiene el fin de  solventar distintos problemas que nos puedan surgir en nuestras implementaciones, como el tráfico están cifrado se nos complica cualquier diagnóstico.

Os dejo también un ejemplo muy ilustrativo de una captura sin tráfico cifrado, pero y si estuviera cifrado? podríamos tardar horas en encontrar cual es el problema



Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Adoro Wireshark. Me ha gustado tu post. Gracias por el aporte. Un saludo

mil gracias por fin encuentro lo que buscaba
en el tuto como comentas se ha de tener la clave del certificado
¿como se descifra la clave o como se la podria sacar por ejemplo a mi router  le he sacado el certificado me pone host key ademas de alguna cosilla mas  ? espero se entienda
gracias por el tuto

Tremendo aporte @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, muy bien explicado y muy interesante el tema.

Saludos inmensos.
El talento se parece al tirador que da en un blanco que los demás no pueden alcanzar; el genio se parece al tirador que da en un blanco que los demás no pueden ver.


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
¿como se descifra la clave o como se la podria sacar por ejemplo a mi router  le he sacado el certificado me pone host key ademas de alguna cosilla mas  ? espero se entienda
gracias por el tuto

En este tutorial se está enseñando a exportar el certificado desde un Windows Server, hay que ceñirse a eso porque para nada vamos a tocar el router.

Te dejo una pequeña expansión de lo que se menciona arriba sobre importar y exportar certificados en Windows Server:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta