Intentando descifrar ssl con wireshark

Iniciado por bit_0, 8 Marzo 2011, 19:17 PM

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

bit_0

Buenas a todos,

No soy muy dado a escribir en los foros, básicamente porque para cuando alguien responde algo interesante ya he encontrado una solución. Pero en este caso he llegado a un punto en el que me cuesta avanzar.

Básicamente mi duda es esta:

¿Se puede realmente descifrar un tráfico ssl? ¿A que me refiero con esto?

Aquí viene un ejemplo práctico:

Tengo dos ordenadores y quiero poner a prueba la seguridad de la comunicación cifrada por TSL/SSL de uno de ellos con su servidor. Para esto, he preparado lo más parecido a un ataque MITM (tipico) y he puesto el wireshark a capturar todo el tráfico de la máquina objetivo. Hasta aquí todo perfecto y sin complicaciones hasta que... Esta máquina navega al servidor con servicio de cifrado SSL y empieza la fiesta!

Client hello
Server hello
etc...
etc...

Y a partir de aquí... Si, parece que es SSL es seguro porque lo más que he conseguido ha sido romperme la cabeza intentando descifrar la información.

Como prueba de la sesión, me loguée con mi user y password en el servidor para capturarlo con wireshark. Una vez la sesión fue iniciada, hice dos tonterías para y cerré para empezar a analizarlo. Ahora lo que tengo en la captura de wireshark es una lista de paquetes donde inició mi explorador web, navego hasta el servidor con servicio de cifrado SSL, me logueo en él con mi user y password y posteriormente, salgo.

Ahora bien, si la cifrado SSL no fuera segura, técnicamente debería ser capaz de descifrar esta sesión y ver efectivamente el user y password que introduje.

Bien. Pues aquí es donde me he quedado. Cual es la forma de descifrar una tráfico SSL donde se ha capturado desde el primer paquete hasta el último de la sesión.

Si el algoritmo de cifrado SSL se elabora entre cliente y servidor (se ponen e acuerdo) y si yo he capturado todos los paquetes de la sesión, no debería haber alguna forma de averiguar la cifrado que han decidido usar?

Imagino que si tubieramos el certificado, sería tan simple como pasarselo al tráfico para desencriptarlo editando en las opciones de porotolo ssl de wireshark (RSA key list) pero.... no lo he visto tan fácil porque:
- Existe una gran diversidad de certificados y no se cual elegir
- Creo que tengo los conceptos un poco en el aire todavía

He estado leyéndome el manual de openssl para crearme mis propios certificados pero... ya se que es inviable ir por ahí. Básicamente sospecho que lo suyo sería obtener el clienkey.pem y serverkey.pem para poder hacer lo que quiero pero... no se como conseguir los que realmente necesito.

Entonces, se puede sacar estos archivos de la propia captura de la sesión cuando cliente y servidor se ponen de acuerdo? (a mí me da que no)

Entonces, ¿Que otra forma existe para hacerse con el certificado que usan para su cifrado?

un saludo

SokarTefnut

Yo intenté conseguir lo que estas mencionando, pero con Wireshark solo ves el contenido del paquete cifrado,se usa un cifrado simétrico.
En este enlace aparece una forma de ataque basada en SSLSTRIP:

http://foro.elhacker.net/hacking_avanzado/ettercap_contrasena_ssl_cual_es_mejor_forma-t321215.0.html
"Saber romper medidas de seguridad no hace que seas hacker, al igual que saber hacer un puente en un coche no te convierte en un ingeniero de automoción"
-- Eric Raymond -- http://en.wikipedia.org/wiki/Eric_S._Raymond

bit_0

Si, lo conozco gracias. El problema de ese método es que el objetivo ve claramente que su página que debería ser HTTPS es solo HTTP. Para quedarse loco verdad?

Sigo buscando, cualquier sugerencia o link de lectura es bien venida.

c0d3rSh3ll

muy dificil ya que los datos viajan cifrados, no es el caso de http donde los datos aparecen enseguida


CitarLa herramienta, llamada "SSLstrip," convierte las p�ginas protegidas por el protocolo Secure Sockets Layer (SSL) en versiones sin cifrar, permitiendo a un cibercriminal tener acceso a las contrase�as, n�mero de tarjetas de cr�dito o cualquier otro material de identificaci�n. Esto ser�a transparente tanto para la p�gina web como para el usuario, quien creer� que la medida de seguridad est� en funcionamiento.

SSLstrip act�a en la red local e intercepta el tr�fico. Cuando detecta un sitio con cifrado HTTPS, autom�ticamente sustituye el sitio por uno de aspecto similar pero sin cifrar, eliminando la seguridad que impide que un tercero robe informaci�n y haciendo creer al servidor que una p�gina cifrada ha sido enviada.

Si eres de los que se f�a de los diferentes signos de los navegadores para mostrar que una p�gina web est� cifrada de nada servir�. Para imitar estas medidas de seguridad, SSLstrip a�ade un icono de candado y tambi�n cambia el color en la barra de direcciones para ofrecer una falsa sensaci�n de seguridad.

ChElAnO

Hola.

SSLstrip es una tecnica que funciona de manera que evitas que la victima llegue a una conexión segura. De esta manera puedes ver las credenciales enviadas en texto plano.

SSLstrip, NO es una vulnerabilidad de SSL, es tan sólo una técnica ingeniosa que se aprovecha de malas prácticas tanto de los usuarios como de los administradores.

Ahora bien, SSL utiliza la infraestrucutra de llave pública  (con cifrados asimétricos) a través de la cual nuestro navegador cifra los datos enviados con la llave pública del servidor (inscrita en su certificado digital) y el servidor decifra esta información con la llave privada.

Si no tienes la llave privada, no podras ver mensajes cifrados con la llave publica. A menos que hayas conseguido esa llave privada "descifrar" los mensajes sera virtualmente imposible de ver (a menos que hayas descubierto una vulnerabilidad en los cifrados o SSL)

Saludos !!