Как расшифровать HTTPS-трафик с помощью bettercap в Linux

Ассоциация HTTPS Протокол (Hypertext Transfer Protocol Secure) позволяет нам безопасно просматривать Интернет, поскольку веб-браузер устанавливает безопасную связь, которая зашифрована и аутентифицируется точка-точка, от нашего веб-браузера к веб-серверу, к которому мы подключаемся. HTTPS - это безопасная версия HTTP., поскольку в HTTP вся информация отправляется без какого-либо шифрования, поэтому, если кто-то перехватит сообщения, он сможет увидеть абсолютно все, что отправляется и / или получается, включая пароли. Сегодня в этой статье мы покажем вам, как сделать Атака человек посередине для захвата сетевого трафика качества расшифровать HTTPS-трафик настройка прокси HTTP / HTTPS с помощью популярного инструмента bettercap для Linux.

Расшифровать HTTPS-трафик с помощью bettercap в Linux

Что такое HTTPS и для чего он нужен?

В настоящее время подавляющее большинство веб-сайтов, таких как эта статья, веб-сайты банков, электронной коммерции в целом и т. Д., Имеют протокол HTTPS для обеспечения безопасности клиентов. HTTPS - это безопасная версия HTTP. , где все коммуникации зашифрованы и аутентифицированы точка-точка, кроме того, также проверяется целостность всех данных. Мы должны помнить, что шифрование дает нам конфиденциальность то есть, даже если кто-то перехватит трафик данных, он не сможет его расшифровать, потому что все зашифровано «точка-точка», хотя есть методы, позволяющие поставить себя «посередине» связи и приступить к расшифровке указанного трафика. Аутентификация означает, что мы являемся тем, кем себя называем, то есть мы устанавливаем связь с веб-сервером, и третья сторона не сможет выдать себя за нас, чтобы информация также отправлялась им. В заключение, целостность является очень важной характеристикой криптографии, это позволяет нам проверить, что все данные, которые отправляются из источника, достигают места назначения без каких-либо изменений. Если кто-то может вмешаться в передачу данных и изменить их, протокол HTTPS (и все участвующие протоколы) автоматически обнаружит это и не примет указанные данные.

HTTPS использует протокол TLS для обеспечения безопасности своих коммуникаций, подавляющее большинство соединений HTTPS используют TLSv1.2 и TLSv1.3 , последний протокол намного быстрее и более безопасен, чем TLSv1.2, поскольку поддерживает только определенные безопасные наборы шифров, он не позволяет включать менее безопасные наборы шифров, как это происходит с TLSv1.2. Конечно, при использовании TLS ниже по умолчанию мы используем популярный протокол транспортного уровня TCP на его порту 443. В случае HTTP по умолчанию TCP используется непосредственно на его порту 80, это очень важно для вас, потому что мы скоро объясним.

Функции и установка Bettercap

Bettercap - это очень мощный инструмент, совместимый с основными дистрибутивами Linux, некоторые из его основных функций:

  • Сканер сети WiFi, допускает атаки деаутентификации, также допускает атаки без клиентов на ассоциации PMKID, позволяет захватывать рукопожатия клиентов, которые используют протоколы WPA и WPA2.
  • Сканер устройств BLE (Bluetooth Low Energy) для чтения и записи информации.
  • Сканер беспроводных устройств, использующих диапазон 2.4 ГГц, таких как беспроводные мыши, также позволяет атаковать MouseJacking с инъекцией данных.
  • Допускает пассивные и активные атаки на IP-сети
  • Он позволяет выполнять атаки MitM на основе ARP, DNS, а также DHCPv6, чтобы захватить всю информацию.
  • Он позволяет создавать прокси HTTP / HTTPS для увеличения защищенного трафика HTTPS и значительно упрощает использование скриптов.
  • Очень мощный сетевой сниффер для сбора учетных данных пользователей.
  • Очень быстрый сканер портов, хотя для этого лучше использовать Nmap, чем король сканеров портов.
  • Он имеет мощный REST API, позволяющий легко атаковать.
  • Он включает графический пользовательский интерфейс для облегчения атак, хотя командный терминал очень мощный.
  • У нас есть большое количество модулей разных категорий для расширения функциональности.

В дистрибутивах Linux, ориентированных на компьютерную безопасность, по умолчанию может быть установлен bettercap. В противном случае нам придется устанавливать его самостоятельно со всеми зависимостями. Самый простой способ использовать Bettercap - использовать Docker (версия 17.05 или выше), так как он находится в репозиториях программного обеспечения Docker, и просто выполните:

docker pull bettercap/bettercap docker pull bettercap/dev

И выполняем это с помощью:

docker run -it --privileged --net=host bettercap/bettercap -h

Если у нас нет Docker, нам придется скомпилировать его из исходного кода, и нам потребуются следующие зависимости:

  • строительный
  • libpcap-dev
  • libusb-1.0-0-dev
  • libnetfilter-queue-dev

Например, в операционных системах на базе Debian он устанавливается следующим образом:

sudo apt update

sudo apt установить golang git build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev

Позже нам нужно будет скачать исходный код и скомпилировать его:

git clone https://github.com/bettercap/bettercap

компакт-диск

сделать сборку

Как только мы установим этот инструмент Bettercap, мы сможем начать его использовать, мы запустим через консоль «bettercap» и увидим версию.

Перед тем, как мы начнем, мы также можем запустить Bettercap с графическим пользовательским интерфейсом веб-интерфейса, для этого мы должны выполнить следующую команду:

bettercap -eval "caplets.update; ui.update; q"

А для запуска графической среды делаем следующее:

sudo bettercap -caplet http-ui

Если мы откроем веб-браузер и введем http://127.0.0.1, мы сможем получить доступ к графическому интерфейсу пользователя:

Имя пользователя веб-интерфейса bettercap - «user», а пароль - «pass», как указано в файле конфигурации:

Как только мы войдем в административное меню bettercap через браузер, мы увидим следующие меню:

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

Таким образом, вы можете расшифровать HTTPS-сообщения

Сценарий тестирования, в котором мы выполнили все тесты, - это две виртуальные машины в VMware в среде NAT с подсетью 192.168.248.0/24 и шлюзом по умолчанию 192.168.248.2.

  • Атакующая машина: Kali Linux с IP 192.168.248.131
  • Машина-жертва: Debian с IP 192.168.248.129

Первое, что мы собираемся сделать, это выполнить типичную атаку ARP Spoofing, чтобы захватить весь трафик, трафик HTTPS будет зашифрован, и мы не сможем его расшифровать. Мы также будем захватывать трафик ICMP, трафик TCP и UDP и трафик HTTP. Для этого нам просто нужно выполнить следующие команды:

sudo bettercap

Оказавшись внутри bettercap, мы должны выполнить несколько команд для настройки программного обеспечения. Первое, что мы должны сделать, это определить цель, в нашем случае машину Debian с IP 192.168.248.129. Шлюз по умолчанию ставить тоже не обязательно.

set arp.spoof.targets 192.168.248.129

arp.spoof на

Если мы выполним команду «help», bettercap сообщит нам все, что работает:

Интересно то, что мы выполним «help arp.spoof», поскольку появятся все параметры, доступные в этом модуле. Один из наиболее интересных вариантов - «arp.spoof.fullduplex», этот параметр позволяет использовать ARP Spoofing как для цели, так и для шлюза по умолчанию (шлюз), но если маршрутизатор имеет защиту от атак ARP Spoofing, атака не удастся. Мы рекомендуем всегда активировать его, поэтому список команд будет следующим:

set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on

Как только это будет сделано, если в Kali Linux мы запустим Wireshark для захвата всех пакетов с интерфейса eth0, мы сможем видеть весь трафик, поступающий и идущий к жертве и от нее. Если вы посмотрите, у нас есть ICMP-трафик 192.168.248.129, то есть команда Debian, которую мы атакуем.

Мы также снимем все DNS, TCP, UDP и весь трафик протоколов, включая зашифрованный, но мы не сможем расшифровать его только с помощью ARP Spoofing.

Если мы войдем в bettercap через графическую среду, мы сможем сделать то же самое, и мы даже сможем выбрать использование ARP Spoofing для шлюза по умолчанию.

Чтобы провести эту атаку через графический интерфейс, мы переходим в локальную сеть, выбираем цель или цели, добавляем их в «arp.spoof.targets» и нажимаем «Full-Duplex spoofing». Мы увидим список оборудования, доступного в локальной сети, если они не появятся, нажмите на иконку «Play» в модуле разведки.

Как только мы узнаем, как выполнить типичную атаку ARP Spoofing, теперь мы сделаем то же самое, но включим HTTP-прокси с активированным ssltrip, чтобы устранить все HTTPS-коммуникации.

Запускаем bettercap на Kali Linux как обычно:

bettercap

Оказавшись внутри, мы должны настроить bettercap следующим образом:

set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on
http.proxy on
net.sniff on

Когда мы это сделаем, если жертва посетит сайт с HTTPS, он автоматически преобразуется в HTTP, и мы сможем захватить учетные данные пользователя. Ниже вы можете прекрасно увидеть, как я пытался войти в pccomponentes, и он захватил как имя пользователя (e-mail), а также пароль. По логике, мы ввели ложные учетные данные, чтобы не показывать свои, по этой причине он возвращает ошибку 401.

Если мы просматриваем другие веб-сайты, мы также можем видеть весь трафик.

Если в Интернете есть HSTS (HTTP Strict Transport Безопасность), мы не сможем «поднять» HTTPS-трафик, поэтому весь трафик будет зашифрован.

Что такое HSTS и для чего он нужен?

Как вы видели, расшифровать HTTPS-соединение очень просто, но это не всегда возможно. В настоящее время многие веб-сайты используют протокол HSTS для дальнейшей защиты коммуникаций своих пользователей. HSTS, также известный как HTTP Strict Transport Security, - это политика веб-безопасности, которая предотвращает ту же самую атаку, которой мы только что научили вас, благодаря использованию файлов cookie веб-сервер «сообщает» веб-браузеру, что всякий раз, когда он возвращается для доступа к вашему веб-сайту используйте протокол HTTPS, поэтому связь будет шифроваться точка-точка, и даже если мы перехватим обмен данными путем сниффинга трафика, мы не сможем увидеть передаваемый трафик, потому что мы не можем использовать bettercap для «подъема» TLS. шифрование. У этих файлов cookie есть срок годности, но хорошей политикой конфигурации (для веб-сервера) является установка очень высокого значения, например одного года (max-age = 31536000).

Работа HSTS очень проста, есть некоторые веб-браузеры, которые по умолчанию включают определенные файлы cookie HSTS, особенно «большие» в Интернете, такие как Google и многие другие, имеют свои домены в списке «предварительной загрузки» HSTS, поэтому мы никогда не сможет получить доступ к этим доменам через протокол HTTP. Если браузер обнаруживает, что к этому домену нельзя получить доступ через HTTPS, он отклоняет соединение, и мы не сможем подключиться. Если браузер обнаруживает, что цифровой сертификат сервера является самоподписанным, он также отклоняет соединение, и мы не сможем подключиться. Фактически, даже если мы войдем в режим инкогнито, мы не сможем подключиться. Все современные браузеры обычно включают этот список для защиты пользователей.

В случае «остальной части Интернета», такой как веб-сайты электронной коммерции, банки, средства массовой информации и многие другие, нам придется ввести хотя бы один раз, чтобы файл cookie HSTS был загружен в наш веб-браузер, и мы получили эту защиту . В этом случае, если со второго раза браузер обнаружит, что к этому домену нельзя получить доступ через HTTPS, он отклонит соединение и выдаст нам ошибку при подключении. Кроме того, если браузер обнаруживает, что цифровой сертификат сервера является самоподписанным, соединение также будет отклонено, и мы не сможем подключиться. Если вы хотите получить доступ к этому веб-сайту (по какой-либо причине), вам следует использовать другой веб-браузер, с которым вы никогда не заходили раньше, но это не рекомендуется, поскольку они могут атаковать вас, лучше не подключаться к Интернету.

Если мы хотим провести атаку на пользователя, и он входит на веб-сайт с помощью HSTS, единственное время, когда соединение может быть расшифровано, - это до первого исторического соединения пользователя (поскольку это новый браузер, недавно отформатированный компьютер, он никогда не зашел на этот веб-сайт и т. д.) Давайте представим, что пользователь-жертва купил новый ноутбук, идет в отель и впервые подключается к банку с помощью своего недавно установленного браузера, в этом случае мы можем атаковать его, потому что он все еще не иметь файл cookie HSTS в своем веб-браузере. Чтобы избежать этого, у нас есть директива preload на веб-серверах, но мы должны использовать ее осторожно, потому что мы должны подписаться на список предварительной загрузки HSTS, иначе у пользователей возникнут проблемы с подключением.

Как вы видели, политика HSTS помогает защитить пользователей веб-сайта от пассивных и активных атак, эта мера безопасности является одной из наиболее важных, которые необходимо настроить на веб-сервере, поскольку злоумышленник MitM будет иметь минимальные возможности для перехвата запросов и ответы между жертвой и веб-сервером.

Bettercap включает в себя «каплет», который позволяет нам выполнять Атака HSTS Hijack и обходить эту защиту, он основан на подмене DNS и перенаправлении жертвы в другой домен, находящийся под нашим контролем, для последующего сбора всей информации. Каплеты представляют собой сценарии Bettercap, которые поставляются предварительно настроенными, но которые мы можем легко изменить, чтобы загрузить их, мы должны выполнить следующие команды в терминале Linux:

git clone https://github.com/bettercap/caplets.git

компакт-диски

sudo make install

После этого мы выполняем его, помещая:

bettercap -caplet RUTA

На следующем снимке экрана вы можете увидеть выполнение каплета по умолчанию:

А вот запись проведенной атаки:

Мы рекомендуем вам посетить официальный сайт Bettercap где вы найдете всю информацию об этом замечательном инструменте.