Este blog ya no está activo, sigue informándote aquí:

Mostrando entradas con la etiqueta OpenSSL. Mostrar todas las entradas
Mostrando entradas con la etiqueta OpenSSL. Mostrar todas las entradas

viernes, 27 de enero de 2017

Nogotofaill.- Comprueba tus conexiones TLS/SSL

La vulnerabilidades en OpenSSL están a la orden del día y la verdad es que muchas de estas se puede arreglar teniendo cuidado de que certificado instalas por defecto. ¿Como puedes saber si tu certificado cumple las expectativas?


Pues Google nos deja una herramienta en su GitHub que puede ayudar a los desarrolladores o testes a comprobar los errores mas comunes en SSL o TLS llamada nogotofail y ademas tiene mucha documentación.
La verdad es que me gusta bastante y para hacer comprobaciones rápidas con una lines de comando como la siguiente es bastante funcional:
  • python -m nogotofail.mitm --mode socks --port 8080 --serverssl server.crt
Aunque dista mucho de ser un escaneo de vulnerabilidades, merece que le echeis un ojo ya que su funcionamiento es contra menos curioso.

Enlace a la herramienta:
Sed Buenos ;) 

domingo, 22 de enero de 2017

TLS/SSL un link para que dejes de usar SSLv3

Hoy estamos un poco malos por aquí  y no hemos podido subir el vídeo que tocaba para hoy. Así que, puestos a  asustaros un poco mas, os voy a recomendar el siguiente enlace que contiene un gran resumen de vulnerabilidades en el protocolo SSLv3 y algunas de TLS 1.1. Con esto quiero haceros pensar en la cantidad de páginas que estamos visitando y no nos están ofreciendo un certificado adecuado.

Enlace al cheat Sheet de vulnerabilidades en SSL:

Pensad en lo que ganaríais si comprobarais los certificados de las paginas a las que os conectáis.

Sed Buenos ;) 

jueves, 10 de noviembre de 2016

Verificar CSRs con Python

Ayer ya os dije que era bastante fácil saber que había detrás de una petición de certificado CSR pese a estar bajo la influencia mágica del estándar criptográfico [X.509] y como ayer me encontré el siguiente comando OpenSSL en la página que os recomendé ayer.
  • openssl req -in mycsr.csr -noout -text
Pues he pensado, ¿Como puedo hacer esto con mi querido Python?


Así que buscando me he encontrado con una [librería especial para OpenSSL] y con un script muy chulo y puede que retoque en otra entrada.
import OpenSSL.crypto
from OpenSSL.crypto import load_certificate_request, FILETYPE_PEM 

csr = '''''-----BEGIN NEW CERTIFICATE REQUEST-----   ... tu CSR Base64 ... -----END NEW CERTIFICATE REQUEST-----'""" 
req = load_certificate_request(FILETYPE_PEM, csr) 
key = req.get_pubkey() key_type = 'RSA' if key.type() == OpenSSL.crypto.TYPE_RSA else 'DSA' 
subject = req.get_subject() components = dict(subject.get_components())
print "Common name:", components['CN'] 
print "Organisation:", components['O'] 
print "Orgainistional unit", components['OU'] 
print "City/locality:", components['L'] 
print "State/province:", components['ST'] 
print "Country:", components['C'] 
print "Signature algorithm:", '?'
print "Key algorithm:", key_type
print "Key size:", key.bits()
Espero que os sea de ayuda y o para saciar vuestra curiosidad como me ha pasado a mi.

Fuente:
Sed Buenos ;) 

lunes, 7 de marzo de 2016

Python.- Escáner para la CVE-2016-0800

Ya hace mas o meno una semana que [esta vulnerabilidad] está entre nosotros y seguro que mas de un gestor de vulnerabilidades ha tenido que correr para ir tapando agujeros. Pues casi desde que se publicó esta vulnerabilidad salió consigo [un escáner programado con python] que nos ayudará mucho a reconocer si somos vulnerables o no. 



Ejemplo de uso del escáner:
  • python scanner.py localhost 443
Vale, empezáis a ver cual es el problema ¿no? ¿Como me lo hago para poder escanear mis 700 equipos y mis 35 puertos de una tirada? Pues nada como saber un poco de Python. 

Vamos a la linea 354 del código del archivo scanner.py:

if __name__ == '__main__':
    if len(sys.argv) < 3:
        sys.exit('Usage: %s <hostname> <port> [-xmpp|-ftp|-proxy|-esmtp|-imap|-pop3|-bare]' % sys.argv[0])

    ip = sys.argv[1]
    port = int(sys.argv[2])
    scan_id = os.getcwd()
    dtime = datetime.datetime.now()
    print 'Testing %s on port %s' % (ip, port)
    ...

Y la substituimos por lo siguiente:

if __name__ == '__main__':
   
      lport = ["443"]

    ipsaqui = open("ponlasipsaqui.txt")

    for line in ipsaqui:
        ip = line.strip("\n")
        for item in lport:
            port = int(item)
            scan_id = os.getcwd()
            dtime = datetime.datetime.now()
            print 'Testing %s on port %s' % (ip, port)
            ...

Si sabéis un poco de Python lo que estamos haciendo con estas lineas es decirle que por cada linea que haya en el txt y por cada puerto que pongamos a la lista lport  cambie los valores de ip y port y siga con el flujo habitual del programa. Una vez acabe cambiara el puerto y cuando ya no le queden mas puertos entonces cambiará el valor de ip. 

El escáner funciona tanto por números de ip como por dominios aunque Python es así de divertido y nos regala un "\n" (Un salto de linea) en cada linea, por eso veis que la variable ip es igual a la linea quitándole la dichosa "\n"  (line.strip("\n"))

Seguro que se os ocurren mejores formas de hacerlo, pero por si no sabéis por donde empezar, creo que está bastante bien. 

Sed Buenos con esto 0;)

domingo, 6 de diciembre de 2015

Múltiples Vulnerabilidades en OpenSSL

La verdad es que si alguna producto a dado que hablar de sus vulnerabilidades durante el año 2015 ese seria OpenSSL. Pues bueno,  hace unos días se publicaron cuatro nuevas vulnerabilidades para el y me gustaría comentarlas un poco. 


Las cuatro vulnerabilidades: 
  • CVE-2015-3193: Vulnerabilidad en la función BN_mod_exp y permite al atacante producir resultados incorrectos en sistemas x86_64.
  • CVE-2015-3194: Vulnerabilidad en la verificación de firmas de certificados que permite al atacante provocar una denegación de servicio. 
  • CVE-2015-3195: Vulnerabilidad en la estructura "X509_ATTRIBUTE" permite la fuga de información. 
  • CVE-2015-3196: Vulnerabilidad que podría permitir una condición de carrera.   
Productos afectados:
  • OpenSSL ramas 1.0.0 y 0.9.8
Solución:
Más información:
Sed Buenos ;)

miércoles, 1 de julio de 2015

Señores SSLv3 Ha Muerto

Hoy estoy de enhorabuena, no solo puedo centrarme en este tipo de entradas as libres y con mucha mas personalidad sino que por fin el [IETF siglas de Internet Enginnering Task Force] (Organismo que produce documentos técnicos pertinentes que influyen en el diseño de manera que la gente, usa y gestiona Internet)  ha declarado al protocolo SSL 3.0 Muerto, aunque ya era hora porque 20 años de protocolo han dado para mucho. 



Este protocolo nos ha dado muchos dolores de cabeza a los que nos dedicamos a la gestión de vulnerabilidades desde POODLE. Hasta yo he pensado en tener un postit anunciando los días sin una vulnerabilidad en SSLv3. Así que me alegro mucho de que en el RFC 7568 lo proclamen como obsoleto.


"The Secure Sockets Layer version 3.0 (SSLv3), as specified in RFC 6101, is not sufficiently secure. This document requires that SSLv3 not be used. "
"The replacement versions, in particular, Transport Layer Security (TLS) 1.2 (RFC 5246), are considerably more secure and capable protocols."
Bueno, ahora solo tenemos faena para gestionar el cambio a TLS y a que salgan nuevas vulnerabilidades para esta nueva versión del protocolo.

Fuente:

Sed Buenos y sacad el cava antes de que sea tarde ;) 

domingo, 7 de junio de 2015

Otra Vulnerabilidad en OpenSSL.- Si, Otra Vez

Últimamente y desde la vulnerabilidad Poodle OpenSSL se ha vuelto el blanco de los investigadores de seguridad. Me gusta que aparezcan este tipo de vulnerabilidades, ya que si no fueran publicado y "los malos" supieran de su existencia, podrían utilizarlas con fines malignos. 

Hablo de la vulnerabilidad CVE-2015-1791 publicada el 2 de Junio de este año.


CVE-2015-1791:  Un fallo en una condición de carrera cuando un cliente multihilo recibe un NewSessionTicket al intentar reusar un ticket anterior. Lo que comporta una doble liberación de memoria en los datos del ticket. El impacto aun no ha sido especificado. 

Productos afectados: 
  • OpenSSL:
    • 0.9.8o-4squeeze14 
    • 0.9.8o-4squeeze20 
    • 1.0.1e-2+deb7u13 
    • 1.0.1e-2+deb7u16
    • 1.0.1k-3
    • 1.0.2a-1 
Más información: 
Si, se supone que debería seguir con el CEH pero hoy me apetecía muchísimo volver a este tipo de entradas, ademas me ahorro trabajo mañana que es lo bueno que tiene que te guste tu trabajo.

Sed Buenos y parchead el OpenSSL.   

martes, 7 de abril de 2015

Configuraciones SSL Robustas Gracias a CIPHERLI.ST


Hoy, como no podria ser de otra manera, me disponía a leer el blog de Security by Default como cada día cuando al devolverme el navegador la pagina web, me he encontrado de cara con su articulo 

Así que, en plena vorágine de vulnerabilidades en Open SSL y de problemas para actualizar a TSL una pagina que se dedica a la recolección de configuraciones robustas para diferentes servicios con el único fin de securizarlos, merece que sea compartida.



Si tenéis mas curiosidad sobre esta pagina web os dejo el enlace aquí: 

viernes, 20 de marzo de 2015

Resumen De La Famosa Actualización de OpenSSL

Últimamente estoy hablando bastante de OpenSSL y es porque, ayer salió la una actualización que corregía múltiples vulnerabilidades de severidad elevadas, pero no fue hasta la tarde noche cuando vi el listado actualizado de errores que parcheaba así que no puede hacer la entrada como quería y os acabé hablando de RC4. 

Hoy si que he podido leerme el report entero y haceros un resumen de lo que contiene. 


OpenSSL ha publicado una actualización sobre las vulnerabilidades que son corregidas con este parche:
  • CVE-2015-0207: Un error en la función "DTLSv1_listen()" en ssl/d1_lib.c permite causar una caída del servicio. 
  • CVE-2015-0208: Un error en ASN-1 de los parámetros de RSA PSS puede ser explotada para activar un NULL pointer dereference error. 
  • CVE-2015-0286: Un error en la función ASN1_TYPE_cmp() puede provocar la caída del servicio. 
  • CVE-2015-0287: Un error no especificado relacionad con ASN.1 permite la escritura invalida en la memoria. 
  • CVE-2015-0289: Un error en las firmas ContentInfo of PKCS#7 puede ser explotada para activar un puntero NULL pointer dereference error.
  • CVE-2015-0290: Un error relacionado con la implementación de “multiblock” permite la caída del servicio. 
  • CVE-2015-0291: Este error también puede ser explotado para activar un puntero NULL pointer dereference error. 
  • CVE-2015-0293: Un error en SSLv2 CLIENT-MASTER-KEY messages puede ser explotado para causar un OPENSSL_assert. 
  • CVE-2015-1787: Un error en el cifrado DHE cipher suite puede causar la caída del sistema. 
  • CVE-2015-0209: Un error en la función “d2i_ECPrivateKey()” en crypto/ec/ec_asn1.c permite la activación de una condición después de la explotación. 
  • CVE-2015-0285: Un error de referencia en un puntero Null en la función X509_to_X509_REQ() de crypto/x509/x509_req.c permite al atacante causar una caída del sistema. 
  • CVE-2015-0288: Otro fallo con la función “ssl3_client:hello()” en ssl/s3_clnt.c puede permitir ataques no especificados. 

Solución:
  • Actualizar a las versiones 1.0.2a, 1.0.1m, 1.0.0r, o 0.9.8zf.
Más información:
Espero que os haya servido.
Sed Buenos con esto 0;) 

jueves, 19 de marzo de 2015

¡RC4 Debe Moir! ¡Yo Pongo Las Antorchas!

Hace unos días hablamos de la futura actualización de OpenSSL. La cual esperábamos con bastante impaciencia ya que, lo que ha estado pasando con el protocolo SSL no tiene nombre. Lo en realidad tiene mas gracia de todos es que aunque consigas que toda una empresa actualice a TLS 1.0 aun tendrás problemas ya que el algoritmo de cifrado de RC4 también está comprometido. Así que, si no tuviste ojo antes de proponer la actualización te tocara revisarlo. 


Por esto,  me ha hecho especial ilusión encontrarme con el trabajo de [Christina Garman], [Kenny Paterson] y [Thyla van der Merwe] sobre porque RC4 debe morir y presentando diferentes tipos de ataques al algoritmo de cifrado. 

"Our attacks enhance the statistical techniques used in the previous attacks and exploit specific features of the password setting to produce attacks that are much closer to being practical. We report on extensive simulations that illustrate this. We obtain good success rates with 226 encryptions of the password. By contrast, the previous generation of attacks required around 234 encryptions to recover an HTTP session cookie."

La verdad es que han dejado fino a RC4 sobre TLS y sobretodo si sois unos apasionados de la criptografia y las matemáticas  os recomiendo mucho que leáis su paper. 

Por si teneis curiosidad os dejo el enlace a la página aquí abajo:

Fuente: 

martes, 17 de marzo de 2015

19 de Marzo: ¡El Día De Actualizar OpenSSL!

Como este blog trata sobre mis "periplos" en el mundo de la seguridad informática y ahora mismo la gestión de vulnerabilidades es algo que toco desde bastante cerca y claro, ahora ya no puedo mirar las listas de correos, twitter, facebook, etc sin miedo a encontrar con alguna nueva vulnerabilidad que se haya que reportar o perseguir para que sea parcheada. Pero como es bien sabido,  no hay mal que por bien no venga y la verdad es que estoy aprendiendo muchísimo. 


Hoy me he encontrado con el siguiente regalo en la lista de la Rooted Con:

"Forthcoming OpenSSL releases
============================ The OpenSSL project team would like to announce the forthcoming release
of OpenSSL versions 1.0.2a, 1.0.1m, 1.0.0r and 0.9.8zf. 
These releases will be made available on 19th March. They will fix a
number of security defects. The highest severity defect fixed by these
releases is classified as "high" severity. 
Yours 
The OpenSSL Project Team"

Pues eso, OpenSSL lanzara una actualización para las versiones 1.0.2a, 1.0.1m, 1.0.0r y 0.9.8zf que arreglará muchas vulnerabilidades de carácter "High". Así que, me voy a ir preparando mi armadura y mi espada mata-dragones +12 por lo que pueda pasar.

Fuente:


Sed buenos y no arraseis muchas cosas hasta el 19 de marzo.

jueves, 26 de junio de 2014

CVE-2014-0221.- OpenSSL Remote Denial of Service Vulnerability

Hace mas o menos una semana os hablé de [Qualys SSL Server Test] por la cantidad de servidores que a día de voy aun seguían sin estar parcheados contra la famosa vulnerabilidad en OpenSSL Heartbleed. Pero, hoy me ha hecho gracia ver, en un tweet de snifer todo se ha de decir,  una nueva vulnerabilidad en Open SSL. Vamos, que le están dando fino.


Os explico un poco de lo que es capaz esta vulnerabilidad CVE-2014-0221: 

Un atacante seria capaz, utilizando La función dtls1_get_message_fragment en d1_both.c en OpenSSL para provocar una denegación de servicio (la recursividad y la caída del cliente) a través de un mensaje de saludo DTLS en un hanshake DTLS no válido.

Se recomienda actualizar a las versiones: 
OpenSSL 0.9.8 SSL/TLS users (client and/or server) should upgrade to 0.9.8za. 
OpenSSL 1.0.0 SSL/TLS users (client and/or server) should upgrade to 1.0.0m. 
OpenSSL 1.0.1 SSL/TLS users (client and/or server) should upgrade to 1.0.1h.
Para mas información: 
 Sed Buenos con esto y actualizad ;)