miércoles, 9 de abril de 2014

OpenSSL Heartbleed Vulnerability

OpenSSL


Buenas usuarios del BLOG, hoy estuve leyendo sobre una vulnerabilidad en el protocolo SSL, el cual nos deberia de agregar seguridad a nuestras paginas webs, encriptandonos informacion y demas. Si quieren informacion sobre el protocolo SSL pueden leer aqui: http://es.wikipedia.org/wiki/Transport_Layer_Security

Vulnerabilidad



La vulnerabilidad OpenSSL 'Heartbleed' vulnerability (CVE-2014-0160) lo que nos deja hacer es obtener 64kb de la memoria RAM del servidor vulnerable, obteniendo datos interesantes como las cookies, datos que no pueden ser vistos por otros usuarios por que no tenemos permisos, credenciales, etc...

Bueno y pues no publicare lo mismo que otros blogs, que serian un listado del top 1000 de portales webs que son vulnerables, sino que mostrare con un script en python publicado en exploit-db como es que se explota esta vulnerabilidad...

Antes decirles que el descubridor de esta vulnerabilidad fue Neel Mehta del equipo de Google Security.

Exploit

El exploit lo pueden ver desde: http://www.exploit-db.com/exploits/32745/ e interpretarlo con python...

 
Vamos a testear la pagina insite.gov.pe.ca que nos proporciono nuestro amigo rotceh, la cual si la ven tiene solo un panel para poder entrar, pero... usa el protocolo SSL, entonces usamos el siguiente comando:

 python 32745.py insite.gov.pe.ca --port 443 > output_ssl.txt

Si puedes ver que uso > output_ssl.txt para que me guarde toda la informacion obtenida en un archivo.


Primero que nada nos vamos al final del archivo para verificar si el servidor es vulnerable:


Como se puede ver el servidor es vulnerable... El cual nos arroja muchos datos interesantes como en el caso de las cookies, podriamos hacer un secuestro de sesion.



Como podemos ver en la imagen nos muestra la cookie, mas abajo tambien nos muestra un texto que no esta en la pagina principal, en este caso hay algo muy interesante, por que cuando intente iniciar sesion parecia que el usuario ya no estaba conectado, pero algo muy interesante fue que el usuario estaba en la cookie al igual que la contraseña...


Como vemos el usuario es cjmacausland en la cookie viene codificada en hexadecimal... y la contraseña le pase un script llamado HashID que es un identificador de Hashes lo pueden encontrara aqui: https://code.google.com/p/hash-identifier/downloads/detail?name=Hash_ID_v1.1.py


Entonces tengo el usuario y la contraseña, solo que la contraseña esta encriptada, la unica manera seria usando la tecnica fuerza bruta, pero como no tengo ganas de estar esperando y esto solo es con fines demostrativos hasta aqui lo dejamos, no sin antes decirles, que para desencriptar la contraseña podriamos usar John the ripper por ejemplo.

¿Que fue lo que obtuvimos? Las credenciales de acceso.

Solucionar el problema

Para solucionar este problema necesitamos actualizar OpenSSL a partir de 1.0.1g, o tambien puedes recompilar OpenSSL deshabilitando el soporte para Hearbeat con la opcion -DOPENSSL_NO_HEARBEATS



No hay comentarios:

Publicar un comentario en la entrada