Простой способ включить SSLv2 и SSLv3 в OpenSSL?
Свежая установка Ubuntu здесь и попытка использовать инструмент SSLScan, только чтобы узнать, что я получаю эти ошибки:
OpenSSL version does not support SSLv2
SSLv2 ciphers will not be detected
OpenSSL version does not support SSLv3
SSLv3 ciphers will not be detected
Testing SSL server xyzx on port 443
TLS renegotiation:
Session renegotiation not supported
TLS Compression:
OpenSSL version does not support compression
Rebuild with zlib1g-dev package for zlib support
В Интернете я нашел статью о попытке перекомпилировать OpenSSL без явного отключения этих флагов, но я даже не могу пройти первые несколько шагов в некоторых из этих руководств. Например, одно руководство рекомендует запустить sudo apt-get build-dep openssl, Я не могу запустить это, потому что тогда я получаю следующую ошибку:
[03.14.2017/23:47:31] user@box $ sudo apt-get build-dep openssl
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list
Хотя у меня есть много некомментированных источников в моем файле /etc/apt/sources.list.
Какие-либо предложения? Я просто хочу включить SSLv2 и SSLv3 и, по крайней мере, включить сжатие тоже. Могу ли я просто снова включить все отключенные функции?
2 ответа
Мое решение состояло в том, чтобы собрать только двоичный файл openssl, чтобы избежать перезаписи установки системы OpenSSL:
wget https://openssl.org/source/openssl-1.0.2k.tar.gz
tar -xvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k/
# --prefix will make sure that make install copies the files locally instead of system-wide
# --openssldir will make sure that the binary will look in the regular system location for openssl.cnf
# no-shared builds a mostly static binary
./config --prefix=`pwd`/local --openssldir=/usr/lib/ssl enable-ssl2 enable-ssl3 no-shared
make depend
make
make -i install
sudo cp local/bin/openssl /usr/local/bin/
Тестировать:
$ openssl s_client -connect google.com:443 -ssl2
CONNECTED(00000003)
139675635414688:error:1407F0E5:SSL routines:ssl2_write:ssl handshake failure:s2_pkt.c:412:
$ openssl s_client -connect google.com:443 -ssl3
CONNECTED(00000003)
140647504119456:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:365:
У меня есть более полный сценарий, если вам интересно: https://gist.github.com/bmaupin/8caca3a1e8c3c5686141
У меня тоже была эта проблема! (И этот пост стал первым хитом в Google.)
Я решил это построив
sslscanя со статической линковкой; это помещает поддержку SSLv2 и SSLv3 в сам исполняемый файл. Может быть опасно, если глобальная библиотека openssl поддерживает старые уязвимые версии протокола.
Репозиторий исходного кода для
sslscanздесь: https://github.com/rbsec/sslscan
Я не мог заставить там работать без проблем инструкцию, потому что у меня не было
deb-src линии в
/etc/apt/sources.list, что дает ошибку:
E: You must put some 'source' URIs in your sources.list
Однако я проигнорировал ошибку, и у меня она все равно сработала. Сборка на моем ноутбуке заняла около 10 минут (флаг -j не работал). По какой-то причине сборка не удалась один раз (тест не прошел), но при повторной компиляции все заработало.
TL;DR: Выполнить:
sudo apt-get install build-essential git zlib1g-dev
git clone https://github.com/rbsec/sslscan.git
cd sslscan
make static
Проверьте вывод
./sslscan --version
1.11.13-rbsec-9-g55ec8c7-static
OpenSSL 1.0.2-chacha (1.0.2g-dev)
Я столкнулся с той же ошибкой. Раскомментируйте все строки, начинающиеся с deb-src в /etc/apt/sources.list, с соответствующими нескомментированными строками, за которыми следует sudo apt-get upgrade исправил ошибку для меня на Ubuntu 16.04.
Я в основном следил за https://www.hackwhackandsmack.com/?p=46 и теперь у меня работает ssl3 (я думаю, что пропустил дополнительный флаг для ssl2, так что просто перепроверьте, чтобы проверить все патчи / серии) и правила опций установлены).