Использование опции SSL Stripping 'Без спуфера'

Beginner
Практиковаться сейчас

Введение

SSL stripping — это тип атаки "человек посередине" (Man-in-the-Middle, MITM), которая заставляет веб-браузер подключаться к веб-сайту через незашифрованное HTTP-соединение, даже если пользователь намеревался подключиться безопасно через HTTPS. Это позволяет злоумышленнику перехватывать и читать весь трафик между пользователем и веб-сайтом.

В этой лабораторной работе вы будете использовать инструмент Wifiphisher для выполнения атаки SSL stripping. В частности, вы изучите опцию "Without a spoofer" (Без спуфера), которая полагается на перехват и модификацию трафика без использования поддельного SSL-сертификата. Это практическое упражнение поможет вам понять механику этой атаки в контролируемой и безопасной среде.

Запуск атаки с использованием captive portal

На этом шаге вы запустите инструмент Wifiphisher для создания поддельной точки доступа (AP) и инициирования атаки с использованием captive portal. Поскольку виртуальная среда LabEx не имеет физической беспроводной карты, мы будем использовать специальные опции для симуляции атаки.

Сначала откройте терминал. Мы запустим wifiphisher с помощью sudo, поскольку ему требуются повышенные привилегии для управления сетевыми интерфейсами и службами. Мы будем использовать опцию --nojamming, чтобы предотвратить попытки глушения реальных WiFi-сетей, и --essid "Free WiFi", чтобы назвать нашу поддельную сеть. Нам также необходимо указать сценарий captive portal; мы будем использовать firmware-upgrade.

Выполните следующую команду в вашем терминале:

sudo wifiphisher --nojamming --essid "Free WiFi" -p firmware-upgrade

После выполнения команды Wifiphisher запустится. Он автоматически обнаружит ваши сетевые интерфейсы. Вам может быть предложено выбрать интерфейс для AP и интерфейс для NAT. Для обоих запросов вы обычно можете нажать Enter, чтобы принять выбор по умолчанию, который обычно является eth0.

Вы увидите вывод, похожий на этот, по мере инициализации инструмента:

[*] Starting Wifiphisher 1.4GIT ( https://wifiphisher.org ) at 2023-10-27 10:00
[+] Timezone detected. Setting channel hopping to the appropriate regulatory domain.
[+] Selecting eth0 for the AP interface.
[+] Selecting eth0 for the Internet-connected interface.
...

При запросе SSL выберите опцию "Without a spoofer"

На этом шаге вы настроите метод SSL stripping для атаки. После первоначальной настройки Wifiphisher спросит вас, как вы хотите обрабатывать трафик, защищенный SSL/TLS. Это критически важный выбор, который определяет характер атаки "человек посередине".

Wifiphisher предложит вам два основных варианта:

  1. With a spoofer (С использованием спуфера): Этот метод генерирует поддельный SSL-сертификат "на лету" и предъявляет его клиенту. Это часто вызывает предупреждение безопасности в браузере клиента.
  2. Without a spoofer (Без спуфера): Этот метод пытается понизить соединение до обычного HTTP без использования какого-либо сертификата. Он полагается на то, что браузер клиента не будет принудительно устанавливать безопасное соединение.

В вашем терминале вы увидите запрос, подобный этому:

[?] How do you want to handle SSL/TLS-protected traffic?
1. With a spoofer (Generate a fake cert on the fly and spoof the domain)
2. Without a spoofer (Downgrade to HTTP)
[1/2]:

Для этой лабораторной работы мы изучаем второй вариант. Введите 2 и нажмите Enter.

2

После вашего выбора Wifiphisher завершит настройку поддельной точки доступа и captive portal. Затем он будет готов принимать подключения клиентов. В терминале будут отображаться сообщения о том, что HTTP и HTTPS прокси-серверы запущены.

[*] Starting the HTTP and HTTPS proxy servers...
[*] Starting AP...

Понимание того, что это зависит от уязвимостей браузера клиента

На этом шаге мы обсудим механизм, лежащий в основе опции SSL stripping "Without a spoofer". Здесь нет команд для выполнения; этот раздел предназначен для вашего концептуального понимания.

Метод "Without a spoofer" является более тонкой формой атаки. Вот как он работает:

  1. Первоначальный запрос: Жертва подключается к вашей поддельной сети "Free WiFi". Она открывает браузер и пытается перейти на безопасный сайт, например, https://example.com.
  2. Перехват: Wifiphisher, выступая в роли шлюза, перехватывает этот запрос до того, как он достигнет интернета.
  3. Понижение уровня: Вместо того чтобы пытаться выдать себя за example.com с помощью поддельного сертификата, Wifiphisher делает кое-что другое. Он перенаправляет запрос пользователя на реальный https://example.com, но возвращает контент жертве через обычное соединение http://.
  4. Перезапись контента: Важно отметить, что Wifiphisher сканирует HTML-контент, полученный от реального сервера, и переписывает все ссылки. Любая ссылка, которая была https://..., изменяется на http://.... Это позволяет пользователю как можно дольше оставаться в незашифрованном сеансе.

Успех этой атаки зависит от двух основных факторов:

  • Пользователь не замечает отсутствия значка замка в браузере.
  • Целевой веб-сайт не использует HTTP Strict Transport Security (HSTS). HSTS — это политика безопасности, которую веб-серверы могут использовать, чтобы сообщить браузерам, что с ними следует взаимодействовать только через HTTPS. Если браузер ранее получал заголовок HSTS от сайта, он откажется подключаться через HTTP, что сделает эту атаку неэффективной.

Подключение клиента и попытка перехода на сайт HTTPS

На этом шаге вы смоделируете подключение клиента к поддельной точке доступа и попытку доступа к безопасному веб-сайту. В реальном сценарии жертва подключила бы свое устройство к сети "Free WiFi". Здесь мы смоделируем это с помощью команды curl в новом терминале.

Сначала откройте новую вкладку терминала. Вы можете сделать это, нажав значок + на панели терминала. Этот новый терминал будет действовать как наш "клиент-жертва".

В этом новом терминале мы будем использовать curl для попытки доступа к сайту HTTPS. Мы будем использовать httpforever.com, сайт, предназначенный для тестирования, который не применяет HSTS. Флаг -v (verbose) покажет нам подробную информацию о процессе подключения.

Выполните следующую команду в новом терминале:

curl -v https://httpforever.com

Поскольку Wifiphisher контролирует сеть, этот запрос будет перехвачен. Вместо того чтобы достичь реального http://httpforever.com, он будет обработан нашим инструментом атаки.

Наблюдение за понижением уровня соединения до HTTP

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

Сначала посмотрите на вывод в вашем терминале клиента (где вы запускали curl). Подробный вывод покажет, что ваш запрос к https://httpforever.com привел к перенаправлению. Вы увидите код состояния 302 Found и заголовок Location, указывающий на адрес HTTP, который является страницей captive portal.

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

*   Trying 10.0.0.1:443...
* Connected to httpforever.com (10.0.0.1) port 443 (#0)
...
< HTTP/1.1 302 Found
< Location: http://10.0.0.2:8080/
< Content-Length: 0
< Date: Fri, 27 Oct 2023 10:05:00 GMT
< Server: Python/3.10 aiohttp/3.8.5
...

Обратите внимание, что заголовок Location перенаправляет вас на адрес http://. Это подтверждает понижение уровня.

Затем вернитесь к вашему первому терминалу, где запущен wifiphisher. Вы увидите новые записи в журнале, показывающие, что клиент подключился и что его запросы обрабатываются. Он зарегистрирует HTTP GET-запрос от симулированного клиента.

[+] 192.168.1.100 victim-device connected to Free WiFi
[*] Sent a captive portal page to 192.168.1.100
[+] GET 192.168.1.100: http://httpforever.com/

Это подтверждает, что атакующий успешно перехватывает трафик в открытом виде.

Чтобы завершить лабораторную работу, остановите инструмент Wifiphisher, переключившись на его терминал и нажав Ctrl+C.

Резюме

В этой лабораторной работе вы успешно продемонстрировали атаку SSL stripping, используя опцию 'Without a spoofer' (Без спуфера) в Wifiphisher.

Вы узнали, как:

  • Запустить Wifiphisher для создания поддельной точки доступа для атаки с использованием captive portal.
  • Выбрать метод SSL stripping 'Without a spoofer'.
  • Смоделировать подключение клиента с помощью curl в отдельном терминале.
  • Наблюдать за свидетельствами понижения уровня соединения с HTTPS до HTTP, анализируя вывод как от клиента, так и от инструмента атакующего.

Это упражнение подчеркивает важность механизмов безопасности, таких как HSTS, для защиты от подобных атак понижения уровня. Поздравляем с завершением этой лабораторной работы!