Как установить уязвимую версию OpenSSL на сервер Linux?

9

Я хотел бы скомпилировать и установить уязвимую для Heartbleed версию OpenSSL на сервере, который я настраиваю для групповой задачи веб-безопасности (поскольку по понятным причинам они недоступны для установки из репозитория Ubuntu).

Я скачал и скомпилировал из исходного кода OpenSSL 1.0.1f, используя предоставленные инструкции (запустите ./config, затем makeи make install), и попытался запустить открыто доступную POC Heartbleed из GitHub с моего ПК, однако сценарий не замечает, что ответ на сердцебиение не был получен и сервер скорее всего не уязвим.

Запуск openssl versionвыдает следующий вывод: OpenSSL 1.0.1f 6 января 2014 . Я, конечно, установил SSL-сертификат, и SSL-доступ работает на сервере.

OpenSSL установлен для работы с Apache 2.4.7.

Кто-нибудь может помочь?

mittelmania
источник
3
В общем, хороший способ протестировать старые версии и дистрибутивы Linux - это загрузить старые ISO-образы дистрибутива и, возможно, установить виртуальную машину с его помощью. Не все пакеты доступны в этом, но OpenSSL наверняка будет.
Бруно
Если вы немного знакомы с упаковкой Debian, вам будет достаточно легко загрузить ваш текущий пакет исходного кода openssl, удалить CVE-2014-0160.patch и пересобрать его.
Мэтт Нордхофф

Ответы:

7

Здесь могут происходить две вещи:

  1. Простой файл «./configure; make; make install» по умолчанию помещает общие библиотеки в /usr/local/lib. Установленные системой библиотеки, тем не менее, будут в том месте /usr/lib, которое находится раньше в пути поиска библиотек. Если вы не удалите установленную системой версию OpenSSL, уязвимая версия не будет найдена.

  2. Даже если вы перезаписываете системные библиотеки, изменения не будут приняты, пока вы не перезапустите Apache. Удаленные файлы остаются доступными (и занимают место на диске) до тех пор, пока все программы, для которых открыты файловые дескрипторы, не закроют эти файловые дескрипторы.

отметка
источник
7

Какое серверное программное обеспечение используется?

Несмотря на уязвимость двоичного файла OpenSSL, установленный веб-сервер из пакета ОС, скорее всего, использует версию библиотеки, которая не уязвима.

Самый простой способ запустить уязвимого слушателя openssl s_server- если вам нужен уязвимый полнофункциональный веб-сервер, вам, скорее всего, придется скомпилировать уязвимый OpenSSL.

Шейн Мэдден
источник
1
Вау, я никогда не знал, что s_serverэто вещь. Я использовал s_clientнавсегда, и вполне логично, что должна быть опция сервера.
EEAA
1
@EEAA Да, это безумие, сколько разных подкоманд там забито.
Шейн Мэдден