SSLyze
Описание SSLyze
Быстрая и мощная библиотека для Python 2.7 для сканирования SSL/TLS на сервере.
SSLyze — это библиотека на Python и инструмент командной строки, который может анализировать SSL настройку сервера подключаясь к нему. Он предназначен быть быстрым и всеобъемлющим и должен помочь организациям и тестерам выявить неправильные настройки влияющие на SSL/TLS серверов.
Ключевые функции включают:
- Python API, чтобы запустить сканирование и обрабатывать результаты напрямую из.
- Сканирования автоматически распределяются среди нескольких процессов, делая их очень быстрыми.
- Тестирования производительности: поддержка возобновления сеанса и TLS tickets.
- Тестирование безопасности: наборы слабых шифров, небезопасные перезаключения, CRIME, Heartbleed и другое.
- Проверка сертификата сервера и проверка отзыва через OCSP stapling.
- https://en.wikipedia.org/wiki/OCSP_stapling
- SПоддержка StartTLS рукопожатий на SMTP, XMPP, LDAP, POP, IMAP, RDP, PostGres и FTP.
- Поддержка клиентских сертификатов при проверке серверов, выполняющих взаимную аутентификацию.
- Результаты сканирования могут быть записаны в файл XML или JSON для дальнейшей обработки.
- И многое другое!
Домашняя страница: https://github.com/nabla-c0d3/sslyze/
Автор: iSECPartners
Лицензия: GPLv2
Справка по SSLyze
Использование:
sslyze [опции] target1.com target2.com:443 target3.com:443{ip} ит.д....
Опции: --version показать версию программы и выйти -h, --help показать справку и выйти --xml_out=XML_ФАЙЛ Записывает результаты сканирования как XML документ в файл XML_ФАЙЛ. Если XML_ФАЙЛ установлен на "-", то вместо этого вывод XML будет показан в stdout (стандартном выводе). --json_out=JSON_ФАЙЛ Записывает результаты сканирования как JSON документ в файл JSON_ФАЙЛ. Если JSON_ФАЙЛ установлен на "-", то вместо этого вывод JSON будет показан в stdout (стандартном выводе). --targets_in=TARGETS_IN Считывает из файла TARGETS_IN список целей. Он должен содержать построчно хост:порт. --timeout=TIMEOUT Устанавливает значения таймаута в секунда используемых с каждым делаемым на сервер(а) сокетным соединением. По умолчанию это 5s. --nb_retries=NB_RETRIES Устанавливает число повторных попыток для всех сетевых соединений, инициированных при сканировании. Увеличьте это значение если вы получаете множество ошибок таймаута/соединения при сканировании конкретного сервера. Уменьшите это значение для увеличения скорости сканирований; результатом, тем не менее, могут стать возвращаемые ошибки. По умолчанию это 3 попытки соединения. --https_tunnel=HTTPS_TUNNEL Туннелировать весь трафик до целевого сервера(ов) через HTTP CONNECT прокси. HTTP_TUNNEL должен быть URL прокси: 'http://USER:PW@HOST:PORT/'. Для прокси, требующих аутентификацию, поддерживается только Basic Authentication. --starttls=STARTTLS Выполняет StartTLS хендшейки при при соединении с целевым сервером(ами). STARTTLS должен быть одним из: smtp , xmpp , xmpp_server , pop3 , ftp , imap , ldap , rdp , postgres , auto. Опция 'auto' заставит SSLyze вывести протокол (ftp, imap, ит.д.) из предоставленного номера порта для каждого целевого сервера. --xmpp_to=XMPP_TO Необязательная настройка для STARTTLS XMPP. XMPP_TO должна быть должна быть именем хоста для размещения в атребуте 'to' XMPP потока. По умолчанию это имя хоста сервера. --sni=SNI Использовать Server Name Indication для указания имени хоста для соединения. Затронет только TLS 1.0+ соединения. --quiet Ничего не выводить в stdout; полезно при использовании --xml_out или --json_out. --regular Обычное HTTPS сканирование; сокращение для --sslv2 --sslv3 --tlsv1 --tlsv1_1 --tlsv1_2 --reneg --resum --certinfo_basic --http_get --hide_rejected_ciphers --compression --heartbleed --openssl_ccs --fallback Поддержка клиентских сертификатов: --cert=CERT Имя файла цепочки сертификатов клиента. Сертификаты должны быть в формате PEM и должны быть отсортированы, начиная с клиентского сертификата субъекта, а затем, если это применимо, с промежуточными сертификатами CA. --key=KEY Имя файла приватного ключа клиента. --keyform=KEYFORM Формат приватного ключа клиента. DER или PEM (по умолчанию). --pass=KEYPASS Парольная фраза приватного ключа клиента. HstsPlugin: --hsts Проверка поддержки HTTP Strict Transport Security (HSTS) путём сбора любых присутствующих полей Strict-Transport-Security в HTTP ответе, отправляемых назад сервером(ами). HeartbleedPlugin: --heartbleed Тестирует сервер(ы) на OpenSSL Heartbleed уязвимость (экспериментальный). SessionResumptionPlugin: Анализирует возможности возобновления сеанса SSL на целевом сервере. --resum Тестирует сервер(ы) на поддержку возобновления сеанса, используя идентификаторы и билеты TLS сеансов (RFC 5077). --resum_rate Выполняет 100 возобновлений сеанса с сервером(ами), чтобы оценить скорость возобновления сеанса. FallbackScsvPlugin: --fallback Проверяет поддержку набора шифров TLS_FALLBACK_SCSV для предотвращения атак с понижением. CompressionPlugin: --compression Тестирует сервер(ы) на поддержку Zlib компрессии. SessionRenegotiationPlugin: --reneg Тестирует сервер(ы) на инициируемые клиентом перезаключения и поддержку безопасного перезаключения. OpenSslCcsInjectionPlugin: --openssl_ccs Проверяет сервер(ы) на уязвимость внедрения OpenSSL CCS (эксперементальная). OpenSslCipherSuitesPlugin: Сканирует сервер(ы) на поддерживаемые наборы OpenSSL шифров. --sslv2 Выводит список SSL 2.0 OpenSSL шифров, поддерживаемых сервером(ами). --sslv3 Выводит список SSL 3.0 OpenSSL шифров, поддерживаемых сервером(ами). --tlsv1 Выводит список TLS 1.0 OpenSSL шифров, поддерживаемых сервером(ами). --tlsv1_1 Выводит список TLS 1.1 OpenSSL шифров, поддерживаемых сервером(ами). --tlsv1_2 Выводит список TLS 1.2 OpenSSL шифров, поддерживаемых сервером(ами). --http_get Опция - Для каждого набора шифров отправляет HTTP GET запрос после завершения SSL рукопожатия и возврата HTTP кода статуса. --hide_rejected_ciphers Опция - Прячет (обычно длинный) список шифров которые были отклонены сервером(ами). CertificateInfoPlugin: --certinfo_basic Проверяет достоверность сертификата(ов) сервера(ов) в различных хранилищах доверия, проверяет наличие поддержки сшивки OCSP и печатает соответствующие поля сертификата. --certinfo_full Как и --certinfo_basic, но также печатает полный сертификат сервера. --ca_file=CA_FILE Файл Локального Центра сертификации (в формате PEM) для проверки действительности сертификата(ов) сервера(ов).
Руководство по SSLyze
Страница man отсутствует.
Примеры запуска SSLyze
Запуск обычного сканирования (--regular) в отношении целевого хоста (suip.biz):
sslyze --regular suip.biz
Установка SSLyze
Программа предустановлена в Kali Linux.
Установка в BlackArch
Программа предустановлена в BlackArch.
Установка в Windows
Скомпилированные исполнимые файлы для Windows вы найдёте по этой ссылке. Пакет также можно сгенерировать запуском следующей команды:
python.exe setup_py2exe.py py2exe
Установка в Linux (Debian, Ubuntu, Linux Mint):
SSLyze можно установить напрямую через pip:
pip install sslyze sslyze --regular www.yahoo.com:443 www.google.com "[2607:f8b0:400a:807::2004]:443"
Также просто можно напрямую клонировать репозиторий и установить зависимости:
git clone https://github.com/nabla-c0d3/sslyze.git cd sslyze pip install -r requirements.txt --target ./lib python -m sslyze --regular www.yahoo.com:443 www.google.com "[2607:f8b0:400a:807::2004]:443"
На Linux, чтобы могло быть скомпилировано расширение nassl C, нужно сначала установить пакет python-dev:
sudo apt-get install python-dev
SSLyze протестирован на следующих платформах: Windows 7 (32 и 64 бит), Debian 7 (32 и 64 бит), macOS Sierra
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты SSLyze
Инструкции по SSLyze
Ссылки на инструкции будут добавлены позже.
Comments are Closed