Инструкция по использованию SSLStrip+ и dns2proxy для обхода HSTS
Есть презентация по использованию SSLStrip+ и dns2proxy , а также несколько видео от энтузиастов по данному вопросу, но полной пошаговой инструкции, как и что делать я не нашёл. Поэтому эта заметка восполняет пробел, здесь я попытался максимально полно и пошагово описать запуск SSLStrip+ и dns2proxy. Я делал тестирование на BlackArch, но характер команд таков, что они должны также работать, например, на Kali Linux.
В процессе тестов мне удалось заменить протоколы HTTPS на HTTP для таких сайтов как google.com, yandex.ru, vk.com, не удалось для facebook.com, mail.ru (другие не пробовал).
Установим необходимые нам пакеты:
Обратите внимание, я не стал ставить из репозиториев ни SSLStrip, ни dns2proxy. Поскольку dns2proxy в репозиториях BlackArch отсутствует, а SSLStrip представлена в своей обычной версии (не SSLStrip+).
Все последующие команды я выполнял залогинившись под рутом.
Переключите вашу машину в режим пересылки (форвардинга).
Настройте iptables для редиректа HTTP трафика:
Скачиваем и запускаем SSLStrip+.
Скачиваем и запускаем dns2proxy:
Далее меня постигли неудачи с arpspoof и LANs . В BlackArch, кстати, arpspoof называется smikims-arpspoof. У меня по каким-то причинам команда не сработала.
С LANs я делал так. Искал IP жертвы:
И запускал программу со следующими аргументами:
В принципе, спуфинг и сниффинг шёл, поскольку с помощью Net-Creds я могу видеть перехваченные логины и пароли, но всё это шло в обход SSLStrip+ и dns2proxy:
Кстати, при выходе LANs делает очистку, т.е. может ещё раз понадобиться включить форвардинг и правила файервола.
Тогда для спуфинга я решил использовать Ettercap . Делал по классической схеме:
Запускаем графический интерфейс (-G):
В меню выбираем Sniff, далее Unified, выбираем желаемый интерфейс:
Теперь выбираем Hosts, в нём подпункт Scan for hosts. После окончания сканирования выберите Hosts list.
В качестве Цели1 выберите роутер (Add to Target 1), в качестве Цели2 выберите устройство, которое будете атаковать (Add to Target 2).
Теперь переходим к пункту меню Mitm. Там выберите ARP poisoning… Поставьте галочку на Sniff remote connections.
На этом я остановился, поскольку SSLStrip+ и dns2proxy заработали. Хоть SSLStrip+ явно работала (понижала протокол до HTTP), но в окне программы постоянно появлялись ошибки – возможно, это нормальное поведение.
Близкие статьи
You May Also Like
Инструкция по работе с DNSChef: анализ DNS запросов, фальсификация DNS ответов, перенаправление на фальшивые копии сайтов
11 комментариев
Интересно, а это можно применить при атаке dns hijacking? С тем же Router Scan by Stas?
Или в таком случае мало привилегий в «контроле трафика» и ничего не выйдет?
Автор, можете ответить? Развернуто желательно) Интересует как подменить запрос dns (гугла например) чтобы загрузить beef на «аналитику» , по https конечно же)))
Если есть доступ к настройкам роутера, то алгоритм примерно следующий:
- в настройках DNS роутера прописывается IP вашего сервера имён (DNS)
- на вашем сервере вы поднимаете веб-сервер и сервер имен (DNS)
- для веб-сервера создаёте виртуальные хосты (например, google.com)
- настраиваете ваш DNS так, что при DNS запросах для google.com вместо реального IP отправляете IP вашего сервера
Здесь я описывал это, приводил настройки для виртуальных хостов веб-сервера и для DNS прокси.
Через HTTPS и HSTS вряд ли это можно сделать в современных браузерах. Но для некоторых сайтов можно обойти HSTS и понизить HTTPS до HTTP.
Описанная выше схема хорошо подходит, например, для кражи учётных данных через созданные клоны сайтов (в статье, на которую дана ссылка, это и описывается).
Если нужно подцепить на BeEF , то алгоритм примерно соответствует вышеописанному. Многие сайты используют jQuery, при этом библиотека размещена не на самом сайте, а делается ссылка на CDN, например:
Обход HTTPS с помощью SSLSTRIP.
Во время тестирования на проникновение часто хочется посмотреть что же происходит в HTTPS сессиях между клиентом и сервером, а так же получить из этих сессий полезные данные.
Один из способов обхода HTTPS, чтобы перехватить трафик это разбить сессию пользователя на два участка, используя специализированный прокси-сервер.
Первый участок от клиента до прокси сервера будет идти по протоколу HTTP, а второй участок, от прокси до сервера будет проходить, как и должен, по шифрованному соединению.
В реализации такой атаки нам понадобится SSLstrip, который позволяет разрезать сессию на две части и перехватить трафик для дальнейшего анализа, а так же предоставлять автоматические редиректы на динамически создаваемые HTTP двойники страниц.
Установим требуемые пакеты:
Далее разрешим пересылку пакетов:
Для постоянного форвардинга открываем файл /etc/sysctl.conf и меняем (или раскомментировать) в нем строки:
после этого обновляем переменные:
Теперь переадресуем пакеты, идущие на 80-й порт на порт нашего прокси (такие же правила можно включить и для других часто применяемых HTTP портов, таких как 8080, 3128 и т.д.):
где,
80 — стандартный HTTP порт;
8080 — порт, на котором будет работать SSLstrip.
Для нескольких портов правило будет выглядеть немного по другому:
Не забывайте, что iptables сбрасывает правила при перезагрузке.
Для сохранения текущих активных правил воспользуемся утилитой iptables-save:
данная команда сохранит активную конфигурацию в файл /etc/iptables/iptables.rules (естественно он должен быть доступен на запись).
И соответственно для восстановления:
Так же у iptables-save есть полезный параметр:
-t имя_таблицы — ограничиться конкретной таблицей.
А у iptables-restore несколько параметров:
-T имя_таблицы — ограничиться конкретной таблицей;
-n — не очищать таблицы перед восстановлением (только добавить правила).
Использованные параметры:
-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 и т.д.
Kali Linux: Используем sslstrip для перехвата пароля
Утилита sslstrip перехватывает http-трафик с компьютера в локальной сети и таким образом позволяет нам разузнать пароли от каких-нибудь сайтов. Как же пользоваться этой утилитой?
Для начала откроем терминал и выполним команду sslstrip -h для того чтобы узнать все опции утилиты.
Перед тем как начать работать с sslstrip нам нужно проделать кое-какие действия
1. Нам нужно включить IP Forwarding
echo ‘1’ > /proc/sys/net/ipv4/ip_forward
2. Включить перенаправление запросов с порта 80 на 8080
iptables –t nat –A PREROUTING –p tcp –destination-port 80 –j REDIRECT –to-port 8080
3. Определяем наш шлюз netstat -nr
4. Выясняем ip-адрес жертвы (в моем случае это компьютер под управлением Windows XP с IP-адресом 192.168.71.128)
5. Перенаправляем весь http-трафик с нашего компьютера на шлюз
arpspoof –i eth0 –t 192.168.71.128 –r 192.168.71.2
Теперь, не закрывая этого окна терминала, открываем еще одно, и запускаем в нем прослушку порта 8080 с помощью sslstrip:
Теперь, я на компьютере жертвы захожу в гугло-почту:
SSLstrip — один из способов обхода HTTPS
Во время тестирования на проникновение часто хочется посмотреть что же происходит в HTTPS сессиях между клиентом и сервером, а так же получить из этих сессий полезные данные.
Один из способов обхода HTTPS, чтобы перехватить трафик это разбить сессию пользователя на два участка, используя специализированный прокси-сервер. Первый участок от клиента до прокси сервера будет идти по протоколу HTTP, а второй участок, от прокси до сервера будет проходить, как и должен, по шифрованному соединению.
В реализации такой атаки нам понадобится SSLstrip, который позволяет разрезать сессию на две части и перехватить трафик для дальнейшего анализа, а так же предоставлять автоматические редиректы на динамически создаваемые HTTP двойники страниц.
Установим требуемые пакеты:
apt-get install sslstrip
Далее разрешим пересылку пакетов:
echo «1» > /proc/sys/net/ipv4/ip_forward
Как включить постоянный форвардинг — описано в статье Пересылка пакетов (форвардинг) в Linux
Теперь переадресуем пакеты, идущие на 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. Сохранение и восстановление правил.
Далее запустим 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 и т.д.
Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры
Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.