- SSLstrip – один из способов обхода HTTPS
- Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры
- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- SSLstrip (SSLStrip+)
- Описание SSLstrip
- Описание SSLStrip+
- Справка по SSLstrip
- Руководство по SSLstrip
- Как работает sslstrip?
- Примеры запуска SSLstrip
- Запуск sslstrip
- Установка SSLstrip
- Установка sslstrip в Linux
- Скриншоты SSLstrip
- Инструкции по SSLstrip
- SSLstrip (SSLStrip+)
- How does this work?
- SSLStrip+ Description
- SSLstrip Help
- SSLstrip Usage Example
- How to install SSLstrip
- SSLstrip Screenshots
- SSLstrip Tutorials
SSLstrip – один из способов обхода HTTPS
Во время тестирования на проникновение часто хочется посмотреть что же происходит в HTTPS сессиях между клиентом и сервером, а так же получить из этих сессий полезные данные.
Один из способов обхода HTTPS, чтобы перехватить трафик это разбить сессию пользователя на два участка, используя специализированный прокси-сервер. Первый участок от клиента до прокси сервера будет идти по протоколу HTTP, а второй участок, от прокси до сервера будет проходить, как и должен, по шифрованному соединению.
В реализации такой атаки нам понадобится SSLstrip, который позволяет разрезать сессию на две части и перехватить трафик для дальнейшего анализа, а так же предоставлять автоматические редиректы на динамически создаваемые HTTP двойники страниц.
Установим требуемые пакеты:
Далее разрешим пересылку пакетов:
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-инфраструктуре – это быть уверенным в завтрашнем дне.
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
SSLstrip (SSLStrip+)
Описание SSLstrip
sslstrip — это инструмент, который незаметно перехватывает HTTP трафик в сети, следит за HTTPS ссылками и редиректами, а затем сопоставляет эти ссылки их HTTP двойникам или омографически сходным HTTPS ссылкам. Он также поддерживает режимы для подачи иконки сайта (favicon), которая выглядит как иконка замка, выборочное ведение журнала и отклонение сессий.
Описание SSLStrip+
Это новая версия SSLstrip с новой функцией обхода механизма защиты HTTP Strict Transport Security (HSTS).
Эта версия, как и оригинальная, меняет HTTPS на HTTP плюс имя хоста в html коде для избежания HSTS.
Для того, чтобы она работала, также нужен DNS сервер, который возвращает вспять изменения, сделанный прокси. Таким DNS сервером является dns2proxy.
Домашняя страница: https://github.com/singe/sslstrip2/ (доступный форк). Первоначально программа была опубликована автором по адресу https://github.com/LeonardoNve/sslstrip2, но из-за нового испанского закона, запрещающего публикацию «наступательных» инструментов/техник в сфере безопасности, он был вынужден удалить исходный код.
Справка по SSLstrip
Опции: -w , --write= Задаёт файл для лога (опционально). -p , --post Записывать в журнал только SSL POST. (по умолчанию) -s , --ssl Записывать весь SSL трафик к и от сервера. -a , --all Записывать весь SSL и HTTP трафик к и от сервера. -l , --listen= Порт для прослушивания (по умолчанию 10000). -f , --favicon Подменить иконку сайта на замок для безопасных запросов. -k , --killsessions Убить текущие сессии. -h Напечатать это сообщение помощи.
Руководство по SSLstrip
Страница man присутствует, но полностью повторяет справку.
Как работает sslstrip?
Во-первых, arpspoof убеждает хост, что наш MAC адрес — это MAC адрес роутера, и цель начинает отправлять нам весь сетевой трафик. Ядро перенаправляет всё, кроме трафика предназначенного для порта 80, который перенаправляется в $listenPort (10000, например).
Таким образом sslstrip получает трафик и делает свою магию.
Примеры запуска SSLstrip
Записать результаты в файл (-w sslstrip.log), прослушивать на порту 8080 (-l 8080):
root@kali:~# sslstrip -w sslstrip.log -l 8080 sslstrip 0.9 by Moxie Marlinspike running.
Запуск sslstrip
Переключите вашу машину в режим пересылки (форвардинга).
echo "1" > /proc/sys/net/ipv4/ip_forward
Настройте iptables для редиректа HTTP трафика на sslstrip.
iptables -t nat -A PREROUTING -p tcp —destination-port 80 -j REDIRECT —to-port
Запустите arpspoof, чтобы убедить сети, что им следует отправлять их трафик вам.
Установка SSLstrip
Программа предустановлена в Kali Linux.
Установка sslstrip в Linux
- Python >= 2.5 (apt-get install python)
- Модуль python «twisted-web» (apt-get install python-twisted-web)
tar zxvf sslstrip-0.9.tar.gz cd sslstrip-0.9
sudo python ./setup.py install
Скриншоты SSLstrip
Это утилита командной строки.
Инструкции по SSLstrip
SSLstrip (SSLStrip+)
This tool provides a demonstration of the HTTPS stripping attacks that I presented at Black Hat DC 2009. It will transparently hijack HTTP traffic on a network, watch for HTTPS links and redirects, then map those links into either look-alike HTTP links or homograph-similar HTTPS links. It also supports modes for supplying a favicon which looks like a lock icon, selective logging, and session denial.
How does this work?
First, arpspoof convinces a host that our MAC address is the router’s MAC address, and the target begins to send us all its network traffic. The kernel forwards everything along except for traffic destined to port 80, which it redirects to $listenPort (10000, for example).
At this point, sslstrip receives the traffic and does its magic.
SSLStrip+ Description
This is a new version of Moxie´s SSLstrip with the new feature to avoid HTTP Strict Transport Security (HSTS) protection mechanism.
This version changes HTTPS to HTTP as the original one plus the hostname at html code to avoid HSTS. Check my slides at BlackHat ASIA 2014 OFFENSIVE: EXPLOITING DNS SERVERS CHANGES for more information.
For this to work you also need a DNS server that reverse the changes made by the proxy, you can find it at https://github.com/LeonardoNve/dns2proxy.
SSLstrip Help
Usage: sslstrip Options: -w , --write= Specify file to log to (optional). -p , --post Log only SSL POSTs. (default) -s , --ssl Log all SSL traffic to and from server. -a , --all Log all SSL and HTTP traffic to and from server. -l , --listen= Port to listen on (default 10000). -f , --favicon Substitute a lock favicon on secure requests. -k , --killsessions Kill sessions in progress. -h Print this help message.
SSLstrip Usage Example
Write the results to a file (-w sslstrip.log), listening on port 8080 (-l 8080):
root@kali:~# sslstrip -w sslstrip.log -l 8080
How to install SSLstrip
The program is pre-installed on Kali Linux.
SSLstrip Screenshots
The program is a command-line utility.