You are here: Home » Sniffing и Spoofing » SSLsplit

SSLsplit

Описание SSLsplit

SSLsplit — это инструмент для атаки человек-посередине против сетевых подключений, зашифрованных SSL/TLS. Соединения прозрачно перехватываются через движок трансляции адресов и перенаправляются на SSLsplit. SSLsplit прекращает SSL/TLS и инициализирует новые SSL/TLS подключения на первоначальный адрес назначения, при этом записывая все передаваемые данные. SSLsplit предназначена быть полезной для сетевых криминалистов и тестеров на проникновение.

SSLsplit поддерживает простой TCP, простой SSL, HTTP и HTTPS подключения через IPv4 и IPv6. Для SSL и HTTPS подключений SSLsplit генерирует и подписывает на лету сфабрикованные X509v3 сертификаты, основанные на оригинальных объектах сервера DN и расширении subjectAltName. SSLsplit полностью поддерживает Server Name Indication (SNI) и способна работать с ключами RSA, DSA и ECDSA и наборами шифров DHE и ECDHE. В зависимости от версии OpenSSL, SSLsplit поддерживает SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2, а также опционально SSL 2.0. SSLsplit также может использовать существующие сертификаты для которых доступны частные ключе, вместо того, чтобы генерировать поддельные. SSLsplit поддерживает NULL-префикс CN сертификаты и может отклонять OCSP запросы обычным образом. Для HTTP и HTTPS подключений SSLsplit удаляет заголовки ответов для HPKP, чтобы предотвратить пиннинг публичного ключа, для HSTS, позволяет пользователям принимать ненадёжные сертификаты, и Alternate Protocols для предотвращения переключения на QUIC/SPDY. В качестве экспериментальной возможности, SSLsplit поддерживает механизм STARTTLS в общем виде.

Домашняя страница: http://www.roe.ch/SSLsplit

Автор: Daniel Roethlisberger

Лицензия: BSD

Справка по SSLsplit

Использование:

sslsplit [опции...] [proxyspecs...]

Примечание:

Leaf certificate (листовой сертификат) — первый сертификат в цепочке сертификатов.

  -c pemfile  использовать CA сертификат (и ключ) из pemfile для подписи сфабрикованных сертификатов
  -k pemfile  использовать CA ключ (и сертификат) и pemfile для подписи сфабрикованных сертификатов
  -C pemfile  использовать CA цепь из pemfile (промежуточный и корневой CA сертификаты)
  -K pemfile  использовать ключ из pemfile для листовых сертификатов (по умолчанию: генерировать)
  -t certdir  использовать сертификат+цепль+ключ PEM файлов из директории certdir для цели на все сайты
              соответствующие общим названиям (не соответствующие: генерировать если CA)
  -w gendir   записать листовой ключ и только сгенерированные сертификаты в директорию gendir
  -W gendir   записать листовой ключ и все сертификаты в директорию gendir
  -O          отклонить все OCSP запросы на все прокси
  -P          пропустить SSL подключения, если они не могут быть расщеплены из-за
              авторизации клиентского сертификата или не соответствующего сертификата и нет CA (по умолчанию: отбросить)
  -g pemfile  использовать DH группу параметров из pemfile (по умолчанию: ключевые файлы или автоматически)
  -G curve    использовать ECDH названные curve (по умолчанию: prime256v1)
  -Z          отключить SSL/TLS сжатие на всех соединениях
  -r proto    поддерживать только tls10 tls11 tls12 (по умолчанию: allвсе
  -R proto    отключить один из tls10 tls11 tls12 (по умолчанию: ни одного)
  -s шифры    использовать данный набор спецификации шрифтов OpenSSL (по умолчанию: ALL:-aNULL)
  -e движок   указать дефолтный для использования NAT движок (по умолчанию: netfilter)
  -E          вывести список доступных NAT движков и выйти
  -u user     отбросить привилегии до пользователя (по умолчанию если запущено как root: nobody)
  -m группа   при использовании -u, переписать группу (по умолчанию: главная группа пользователя)
  -j jaildir  chroot() в директории jaildir (оказывает влияние на спецификацию прокси sni, смотрите мануал ниже)
  -p pidfile  записать pid в pidfile (по умолчанию: без pid файла)
  -l logfile  лог подключений: записать одну строку краткого содержания на подключение в  logfile
  -L logfile  лог подключений: полные данные в файл или названную pipe (за исключением -S/-F)
  -S dir   лог подключений: полные данные в отдельные файлв в директории dir (за исключением -L/-F)
  -F pathspec лог содержимого: формат данных определяется следующими значениями с %  (вкл. -L/-S):
              %T - время первоначального подключения в виде метки времени ISO 8601 UTC
              %d - хост и порт назначения
              %D - хост назначения
              %p - плоь назначения
              %s - исходный хост и порт
              %S - исходный хост
              %q - исходный порт
              %% - буквальный '%'
      к примеру    "/var/log/sslsplit/%T-%s-%d.log"
  -d          режим демона: запустить в фоне, писать сообщения об ошибках в syslog
  -D          отладочный режим: запустить на переднем плане, писать отладочные сообщения в stderr
  -V          напечатать информацию о версии и выйти
  -h          напечатать информацию об использовании и выйти
  proxyspec (параметры прокси) = тип прослушиваемого адреса+порт [довижок nat|целевой адрес+порт|"sni"+порт]
     примеры  http 0.0.0.0 8080 www.roe.ch 80  # http/4; статичный хост назначения
              https ::1 8443 2001:db8::1 443   # https/6; статичный адрес назначения
              https 127.0.0.1 9443 sni 443     # https/4; SNI DNS запросы
              tcp 127.0.0.1 10025              # tcp/4; движок NAT по умолчанию
              ssl 2001:db8::2 9999 pf          # ssl/6; движок NAT 'pf'
              autossl ::1 10025                # autossl/6; STARTTLS et al
Пример:
  sslsplit -k ca.key -c ca.pem -P  https 127.0.0.1 8443  https ::1 8443

Руководство по SSLsplit

ИМЯ

sslsplit — прозрачный перехват SSL/TLS

СИНОПСИС

sslsplit [-kCKwWOPZdDgGsrReumjplLSFi] -c pem proxyspecs [...]
sslsplit [-kCKwWOPZdDgGsrReumjplLSFi] -c pem -t dir proxyspecs [...]
sslsplit [-OPZwWdDgGsrReumjplLSFi] -t dir proxyspecs [...]
sslsplit -E
sslsplit -V
sslsplit -h

ОПИСАНИЕ

 

[В ПРОЦЕССЕ ПОДГОТОВКИ]

 

 

Примеры запуска SSLsplit

Запуск в отладочном режиме (-D), вести лог подключений (-l connections.log), установить chroot jail (-j /tmp/sslsplit/), сохранить файлы на диск (-S /tmp/), указать ключ (-k ca.key), указать сертификат (-c ca.crt), указать ssl (ssl) и настроить прокси (0.0.0.0 8443 tcp 0.0.0.0 8080):

sslsplit -D -l connections.log -j /tmp/sslsplit/ -S /tmp/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
Generated RSA key for leaf certs.
SSLsplit 0.4.6 (built 2013-06-06)
Copyright (c) 2009-2013, Daniel Roethlisberger <daniel@roe.ch>
http://www.roe.ch/SSLsplit
Features: -DDISABLE_SSLV2_SESSION_CACHE -DHAVE_NETFILTER
NAT engines: netfilter* tproxy
netfilter:  IP_TRANSPARENT SOL_IPV6 !IPV6_ORIGINAL_DST
compiled against OpenSSL 1.0.1e 11 Feb 2013 (1000105f)
rtlinked against OpenSSL 1.0.1e 11 Feb 2013 (1000105f)
TLS Server Name Indication (SNI) supported
OpenSSL is thread-safe with THREADID

Установка SSLsplit

Программа предустановлена в Kali Linux.

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S sslsplit

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты SSLsplit

Это утилита командной строки.

Инструкции по SSLsplit

Ссылки на инструкции будут добавлены позже.

Близкие программы: