¿Cómo instalar una versión vulnerable de OpenSSL en un servidor Linux?

9

Me gustaría compilar e instalar una versión de OpenSSL vulnerable a Heartbleed en un servidor que estoy configurando para un desafío de seguridad web del equipo (ya que no están disponibles para instalar desde el repositorio de Ubuntu por razones obvias).

Descargué y compilé el código fuente de OpenSSL 1.0.1f usando las instrucciones proporcionadas (ejecutar ./config, luego makey make install), e intenté ejecutar el Heartbleed POC disponible desde GitHub desde mi PC, sin embargo, el script no me confirma que no se haya recibido ninguna respuesta de latido y Es probable que el servidor no sea vulnerable.

La ejecución openssl versionproduce el siguiente resultado: OpenSSL 1.0.1f 6 de enero de 2014 . Instalé un certificado SSL, por supuesto, y el acceso SSL funciona en el servidor.

OpenSSL está instalado para funcionar con Apache 2.4.7.

¿Alguien puede ayudar?

mittelmania
fuente
3
En general, una buena manera de probar versiones anteriores y distribuciones de Linux es descargar imágenes ISO más antiguas de la distribución y posiblemente instalar una VM que la use. No todos los paquetes están disponibles en esto, pero OpenSSL ciertamente lo estaría.
Bruno
Si está familiarizado con el empaquetado de Debian, debería ser bastante fácil descargar su paquete fuente openssl actual, eliminar CVE-2014-0160.patch y reconstruirlo.
Matt Nordhoff

Respuestas:

7

Hay dos cosas que pueden estar sucediendo aquí:

  1. Un simple "./configure; make; make install" colocará por defecto las bibliotecas compartidas /usr/local/lib. Sin embargo, las bibliotecas instaladas en el sistema estarán en /usr/lib, que viene antes en la ruta de búsqueda de la biblioteca. A menos que elimine la versión de OpenSSL instalada en el sistema, no se encontrará la versión vulnerable.

  2. Incluso si está sobrescribiendo las bibliotecas del sistema, el cambio no se recogerá hasta que reinicie Apache. Los archivos eliminados permanecen accesibles (y ocupan espacio en el disco) hasta que todos los programas que tienen controles de archivo abiertos cierren esos controles de archivo.

marca
fuente
7

¿Qué software de servidor se está utilizando?

A pesar de que el binario OpenSSL es vulnerable, es probable que un servidor web instalado desde un paquete de sistema operativo utilice una versión de biblioteca que no sea vulnerable.

La forma más sencilla de ejecutar un oyente vulnerable será openssl s_server: si necesita un servidor web completo para ser vulnerable, es probable que necesite compilar contra el vulnerable OpenSSL.

Shane Madden
fuente
1
Whoa, nunca supe que s_serverera una cosa. Lo he estado usando desde s_clientsiempre, y tiene mucho sentido que también haya una opción de servidor.
EEAA
1
@EEAA Sí, es una locura cuántos subcomandos diferentes están metidos allí.
Shane Madden