17.04.2014 | Heartleech: программа для поиска и извлечения секретных SSL-ключей |
Как известно, уязвимость Heartbleed в OpenSSL (первая в истории уязвимость, которая получила собственное имя) позволяет, среди прочего, извлекать секретные ключи SSL из памяти серверов. Многие серверы до сих пор используют уязвимые версии OpenSSL от 1.0.1a до 1.0.1f. C помощью нового инструмента Heartleech можно автоматизировать работу по сканированию ОЗУ и извлечению ключей. В отличие от других подобных сканеров, у него есть режим autopwn (параметр -a), который последовательно выполняет все необходимые шаги по чтению памяти и восстановлению ключа. Программа отличается скрытным режимом работы: обмен пакетами Heartbeats происходит не во время «рукопожатия», а после него и в зашифрованном виде с помощью функции ssl3_write_bytes(). Правда, для использования этой функции понадобится или осуществить экспорт из OpenSSL, или, если не получится, скачать исходники OpenSSL и связать программу heartleech.c с входящими в комплект OpenSSL библиотеками libcrypto.a и libssl.a. git clone git://git.openssl.org/openssl.git cd openssl ./config make depend make gcc ../heartleech/heartleech.c libcrypto.a libssl.a -ldl -o heartleech #Cygwin compile string, order matters: gcc ../heartleech/heartleech.c libcrypto.a libssl.a -ldl -o heartleechУтилита Heartleech поддерживает IPv4 и IPv6,обходит защиту Snort IDS, работает с полными пакетами по 64 КБ и может сохранять бинарные данные в файл (ключ -f <filename>). Например, такая команда посылает миллион запросов к указанному серверу и записывает ответы в файл. Размер файла составит 64 ГБ. ./heartleech www.cloudflarechallenge.com -f challenge.bin В этом файле можно потом запустить grep для поиска ключей, кукисов и паролей. Как вариант, сразу запускаем Heartleech с ключом -a, и тогда поиск простых чисел от ключа RSA начинается автоматически после сохранения файла, затем программа генерирует секретный ключ, используя найденные простые числа. Метод действует только для ключей RSA. |
Проверить безопасность сайта