https://www.roe.ch/sslsplit
SSLSPLIT-это инструмент для атак Man-в среднем уровне против зашифрованных сетевых подключений SSL/TLS. Он предназначен для того, чтобы быть полезным для сетевой криминалистики, анализа безопасности приложений и тестирования проникновения.
SSLSPLIT предназначен для прозрачного завершения подключений, которые перенаправляются на него с использованием механизма перевода сетевого адреса. Затем SSLSPlit завершает SSL/TLS и инициирует новое соединение SSL/TLS с исходным адресом назначения, приводя в систему все передаваемые данные. Помимо работы на основе NAT, SSLSPlit также поддерживает статические направления и использует имя сервера, указанное SNI в качестве Upstream Destination. SSLSPLIT является исключительно прозрачным прокси и не может выступать в качестве прокси -сервера HTTP или носков, настроенных в браузере.
SSLSPlit поддерживает простые соединения TCP, Plain SSL, HTTP и HTTPS по IPv4 и IPv6. Он также имеет возможность динамически обновлять обычные TCP на SSL, чтобы общая поддержка SMTP Starttls и аналогичные механизмы обновления. SSLSPLIT полностью поддерживает индикацию имени сервера (SNI) и способен работать с RSA, DSA и ECDSA Keys и DHE и ECDHE Cipher Suites. В зависимости от версии OpenSSL, построенной против, SSLSPlit поддерживает SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2, а также SSL 2.0 также.
Для подключений SSL и HTTPS SSLSPLIT генерирует и выбивает кованые сертификаты x509V3 на лету, имитируя предмет DN исходного сертификата сертификата DN, расширение SuppationAltName и другие характеристики. SSLSPLIT имеет возможность использовать существующие сертификаты, о которых доступен закрытый ключ, вместо того, чтобы генерировать поддельные. SSLSPlit поддерживает сертификаты CN Null-Prefix, но в противном случае не реализует эксплойты против конкретных уязвимостей проверки сертификата в стеках SSL/TLS.
SSLSPLIT реализует ряд защиты от механизмов, которые обычно предотвращают атаки MITM или усложняют их. SSLSPLIT может отрицать запросы OCSP в целом. Для подключений HTTP и HTTPS заголовки SSLSplit Mangles, чтобы предотвратить внедренное сервер открытого ключа (HPKP), избежать строгих ограничений транспортной безопасности (HSTS), избегайте обеспечения прозрачности сертификата (ожидаемое CT) и предотвратить переключение на QUIC/SPDY, HTTP/2 или WebSockets (обновление, переменные протоколи). Сжатие HTTP, кодировки и Keep-Alive отключены, чтобы сделать журналы более читаемыми.
Параметры журнала включают в себя традиционные sslsplit connect и файлы журнала контента, а также файлы PCAP и зеркалирование расшифрованного трафика к сетевому интерфейсу. Кроме того, сертификаты, мастер -секреты и локальная информация о процессе могут быть зарегистрированы.
См. Руководство SSLSPLIT (1) для получения подробной информации об использовании SSLSPLIT и настройке различных двигателей NAT.
SSLSPlit зависит от библиотек OpenSSL, Libevent 2.x, Libpcap и Libnet 1.1.x по умолчанию; Libpcap и Libnet не нужны, если функция зеркалирования опущена. Сборка зависит от GNU Make и Posix.2 Environment in PATH . Если доступно, PKG-конфиг используется для поиска и настройки зависимостей. Дополнительные модульные тесты зависят от библиотеки проверки.
SSLSPlit в настоящее время поддерживает следующие операционные системы и механизмы NAT:
Поддержка информации о локальном процессе ( -i ) в настоящее время доступна на Mac OS X и FreeBSD.
Функции и совместимость SSL/TLS во многом зависят от версии OpenSSL, связанной с. Для оптимальных результатов используйте недавний выпуск OpenSSL или Libressl.
С приведенными выше требованиями, запустите:
make
make test # optional unit tests
make sudotest # optional unit tests requiring privileges
make install # optional install
Зависимости автоконфигурируются с использованием pkg-config. Если зависимости не поднимаются, и исправление PKG_CONFIG_PATH не помогает, вы можете указать их соответствующие местоположения вручную, установив OPENSSL_BASE , LIBEVENT_BASE , LIBPCAP_BASE , LIBNET_BASE и/или CHECK_BASE в соответствующие префикс.
Вы можете переопределить префикс установки по умолчанию ( /usr/local ), установив PREFIX . Для получения дополнительных вариантов сборки и по умолчанию по умолчанию см. GNUmakefile и defaults.h .
См. Ручные страницы sslsplit(1) и sslsplit.conf(5) для пользовательской документации. См. NEWS.md для выпуска примечаний, в которых перечислены существенные изменения между выпусками и SECURITY.md для получения информации о раскрытии уязвимости безопасности.
SSLSPLIT предоставляется по лицензии BSD на 2 пункта. SSLSPLIT содержит компоненты, лицензированные по лицензиям MIT и APSL. См. LICENSE , LICENSE.contrib и LICENSE.third , а также соответствующие заголовки исходных файлов для получения подробной информации.
Смотрите AUTHORS.md для списка участников.
SSLSPLIT был вдохновлен mitm-ssl Claes M. Nyberg и sslsniff от Moxie Marlinspike, но не разделяет с ними исходный код.