Probando la detección de la vulnerabilidad OpenSSL CCS Injection Attack (CVE-2014-0224)

openssl

 

Para los que nos dedicamos a realizar proyectos de Ethical Hacking , es bastante común usar algún software de análisis de vulnerabilidades , en mi caso, mi preferido es Nessus , sin embargo como cualquier software automatizado, este puede generar a lo que se denomina falsos positivos, es por ello que la labor del pentester es poder validar cada una de las vulnerabilidades que la herramienta nos reporta.

Dicho esto, entremos al tema, desde la aparición de Heartbleed este año, muchas marcas, fabricantes, desarrollos independientes, aplicaron y en algunos casos sacaron en un corto plazo las actualizaciones emitidas recomendadas por Openssl y reportadas en el CVE-2014-0160 , la cual se explota de la siguiente forma :

 

Han pasado varios meses,  y lo que ha pasado desapercibido, es que existen nuevas vulnerabilidades descubiertas a partir de ello, llamémoslas “variantes” como las reportadas , CVE-2014-0224 , CVE-2010-5298 , CVE-2014-0076 , CVE-2014-0195 , CVE-2014-0198 , CVE-2014-0221 , CVE-2014-3470 ,  cada una un poco diferente que la otra pero todas involucradas con Openssl.

El hecho es que durante mis últimos proyectos de pentesing , he estado encontrando de manera muy recurrente en la vulnerabilidad , que Nessus reporta como “OpenSSL ‘ChangeCpherSpec’ MiTM”

openssl

Luego del bonito reporte de Nessus , viene la hora de hacer el trabajo real y realizar la prueba manual, así que tome la vulnerabilidad CVE-2014-0224 y me puse a investigar si existía una prueba de concepto.

Encontré mucha información teórica en donde indica que la vulnerabilidad, sin entrar mucho en detalle. radica en que al enviar un paquete CSS o “ChangeCipherSpec” antes de iniciar la session SSL o intercambio de llaves SSL (handshake) la llave que se genera, es una llave débil y puede ser fácil de adivinar, por tanto susceptible a ataques de hombre en el medio.

Hay muchas entradas de blog , documentación y discusiones sobre esto, pero aquí me gustaría enfocarme en la forma de detectar la vuln, en la implementación OpenSSL.

Encontré dos formas de probar la detección ,  una vía un script para NMAP publicada aquí : https://gist.github.com/rcvalle

Y otra un script desarrollado por Craig Young la cual es un script en python que permite la detección de la vulnerabilidad CVE-2014-0224. La cual es posible descargar desde aquí: https://github.com/Tripwire/OpenSSL-CCS-Inject-Test

El funcionamiento es muy sencillo , básicamente es ejecutarlo de la siguiente forma :

#python OSSL_CCS_InjectTest2.py  nombrededominio

 

Script por defecto viene para validar servicios en HTTPS (443) como es normal , sin embargo sabemos que existen implementaciones de SSL en otros servicios como POPS , IMAPS , FTPS  por citar ejemploS, así que haciendo unas modificaciones , para el puerto 995 , quedaria de la siguiente forma:

 

openssl

Una vez modificado , si el resultado es positivo , tendremos lo siguiente :

 

openssl

 

Como vemos la herramienta nos muestra que el objetivo es vulnerable , en TLS1 y SSLv3, Para solucionar esto es recomendable realizar las siguientes actualización dependiendo la versión de OpenSSL

OpenSSL 0.9.8 SSL/TLS actualizar a 0.9.8za.
OpenSSL 1.0.0 SSL/TLS actualizar a 1.0.0m.
OpenSSL 1.0.1 SSL/TLS actualizar a 1.0.1h.

Es claro que no todo se ha acabado con Heartbleed y su parche , así que será necesario estar atento a lo nuevo que se viene alrededor de Openssl.

Eso es todo, espero les sirva

Juan Oliva

 

 

Anuncios
Esta entrada fue publicada en Manuales y tutoriales por jroliva. Guarda el enlace permanente.

Acerca de jroliva

Juan Oliva, es un consultor de seguridad informática y telefonía IP con 10 años de experiencia en el campo . Muy involucrado en proyectos de pruebas de penetración , análisis y explotación vulnerabilidades, pruebas de ingeniería social, seguridad física, revisión de código, entre otras tareas de seguridad informática. Así mismo, desarrolla proyectos de implementación y mantenimiento de VoIP, basadas en Asterisk y Elastix, proyectos de callcenter, soluciones en la nube y hosted PBX, Aseguramiento de plataformas Linux, Windows. Ha estado trabajando para una variedad de empresas en donde ha desarrollado proyectos para el estado peruano, así como para entidades privadas, nacionales y del extranjero, cuenta con certificaciones vigentes en Ethical hacking, Linux y telefonía IP. Es instructor de cursos de Ethical Hacking y certificaciónes como Linux Professional Institute y Elastix, donde ha tenido oportunidad de realizar capacitaciones en el Perú, así como en el extranjero. Es investigador de vulnerabilidades, y creador de contenidos, que son publicados en su blog personal jroliva.wordpress.com el cual mantiene desde hace mas de 6 años.

Un pensamiento en “Probando la detección de la vulnerabilidad OpenSSL CCS Injection Attack (CVE-2014-0224)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s