Хэши, содержащие пароли входа, передаются между компьютерами Windows в локальных Wi-Fi сетях. Перехватив и дешифровав эти хэши с помощью программ Responder и John the Ripper, мы можем узнать учетные данные пользователей, которые потом можно использовать для получения физического доступа к их компьютеру.
Погнали!
Как такая атака реализуется
1) При взаимодействии с другими устройствами в локальной сети и для разрешения имен хостов этих устройств Windows использует протокол Link-Local Multicast Name Resolution
2) Любой клиент в локальной сети может взаимодействовать с протоколом LLMNR, чтобы помочь Windows в разрешении имени хоста другого устройства в этой сети.
3) Уязвимость заключается в готовности Windows принимать запросы от любого устройства в такой сети, даже если такой запрос некорректен.
4) В протокол LLMNR не включена проверка входящих данных, что создает благоприятные условия для ее использования хакерами.
5) Машина хакера будет прослушивать пакеты в локальной сети на наличие LLMNR-запросов, исходящих с целевого Windows-компьютера, а затем будет отвечать на такой запрос.
6) Полагая, что ответ настоящий, компьютер Windows попытается вступить во взаимодействие с этим сервером, и чтобы открыть сессию отправит на него пароль пользователя в формате хэширования NTLMv2.
Перехват паролей с помощью Wireshark!
7) Многие пользователи и не догадываются, что заполняя логин и пароль при регистрации или авторизации на закрытом Интернет-ресурсе и нажимая ENTER, эти данные легко могут перехватить. Очень часто они передаются по сети не в защищенном виде.
8) Поэтому если сайт, на котором вы пытаетесь авторизоваться, использует HTTP протокол, то очень просто выполнить захват этого трафика, проанализировать его с помощью Wireshark и далее с помощью специальных фильтров и программ найти и расшифровать пароль.
9) Лучшее место для перехвата паролей – ядро сети, где ходит трафик всех пользователей к закрытым ресурсам (например, почта) или перед маршрутизатором для выхода в
10) Интернет, при регистрациях на внешних ресурсах. Настраиваем зеркало и мы готовы почувствовать себя хакером
Устанавливаем и запускаем Wireshark для захвата трафика!
11) Иногда для этого достаточно выбрать только интерфейс, через который мы планируем захват трафика, и нажать кнопку Start. В нашем случае делаем захват по беспроводной сети.
Захват трафика начался.
Фильтрация захваченного POST трафика!
12) Открываем браузер и пытаемся авторизоваться на каком-либо ресурсе с помощью логина и пароля. По завершению процесса авторизации и открытия сайта мы останавливаем захват трафика в Wireshark.
13) Далее открываем анализатор протоколов и видим большое количество пакетов. Именно на этом этапе большинство ИТ-специалистов сдаются, так как не знают, что делать дальше.
14) Но мы знаем и нас интересуют конкретные пакеты, которые содержат POST данные, которые формируются на нашей локальной машине при заполнении формы на экране и отправляются на удаленные сервер при нажатии кнопки «Вход» или «Авторизация» в браузере.
15) Вводим в окне специальный фильтр для отображения захваченных пакетов: http.request.method == “POST”
16) И видим вместо тысячи пакетов, всего один с искомыми нами данными.
Находим логин и пароль пользователя!
17) Быстрый клик правой кнопки мыши и выбираем из меню пункт Follow TCP Steam
18) После этого в новом окне появится текст, который в коде восстанавливает содержимое страницы. Найдем поля «password» и «user», которые соответствуют паролю и имени пользователя.
19) В некоторых случаях оба поля будут легко читаемы и даже не зашифрованы, но если мы пытаемся захватить трафик при обращении к очень известным ресурсам типа: Mail.ru, Facebook, Вконтакте и т.д., то пароль будет закодирован:
HTTP/1.1 302 Found
Date: Mon, 10 Nov 2014 23:52:21 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.3
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: non=non; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/
Set-Cookie: password=e4b7c855be6e3d4307b8d6ba4cd4ab91; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/
Set-Cookie: scifuser=networkguru; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/
Location: loggedin.php
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
Таким образом, в нашем случае:
Имя пользователя: networkguru
Пароль: e4b7c855be6e3d4307b8d6ba4cd4ab91