Содержание:
Хэши, содержащие пароли входа, передаются между компьютерами Windows в локальных Wi-Fi сетях. Перехватив и дешифровав эти хэши с помощью программ Responder и John the Ripper, мы можем узнать учетные данные пользователей, которые потом можно использовать для получения физического доступа к их компьютеру.
При взаимодействии с другими устройствами в локальной сети и для разрешения имен хостов этих устройств Windows использует протокол Link-Local Multicast Name Resolution
Уязвимость заключается в готовности Windows принимать запросы от любого устройства в такой сети, даже если такой запрос некорректен. В протокол LLMNR не включена проверка входящих данных, что создает благоприятные условия для ее использования хакерами.
Машина хакера будет прослушивать пакеты в локальной сети на наличие LLMNR-запросов, исходящих с целевого Windows-компьютера, а затем будет отвечать на такой запрос. Полагая, что ответ настоящий, компьютер Windows попытается вступить во взаимодействие с этим сервером, и чтобы открыть сессию отправит на него пароль пользователя в формате хэширования NTLMv2.
Хэши NTLM, используемые LLMNR, очень ценны для хакеров.
Учетные данные NTLM основаны на данных, получаемых в процессе входа в систему, и состоят из имени домена, имени пользователя и одностороннего хэша пароля пользователя. NTLM для авторизации пользователей использует шифрование, чтобы не отправлять пароли пользователей в открытом виде по сети.
NTLM версии 2 (NTLMv2), введенная в операционные системы Windows в конце 90-х годов, повышает безопасность NTLM против большого количества спуффинговых атак и брутфорс-атак за счет повышения криптостойкости алгоритма хеширования.
К сожалению, алгоритм хеширования HMAC-MD5, используемый NTLMv2, по-прежнему очень уязвим против брутфорс-атак, позволяя осуществлять десятки миллионов попыток ввода пароля в минуту — такие атаки можно выполнять даже с использованием устаревшего железа и Raspberry Pi.
Для начала атаки нужно получить NTLMv2-хэш с целевого компьютера. Это можно сделать с помощью Responder — инструмента командной строки, написанного SpiderLabs и Laurent Gaffie. Он способен анализировать и изменять ответы LLMNR и mDNS. Responder используется для взаимодействия с компьютерами Windows в локальной сети и перехвата NTLMv2-хэшей, передаваемых с целевого устройства.
Его можно найти в репозиториях Kali Linux. Перед установкой последней версии Responder сначала воспользуйтесь командой apt-get update. Для установки используйте последовательно одну за другой вот эти команды:
apt-get update apt-get install responder
Когда установка завершится, можно воспользоваться аргументом —help, чтобы просмотреть все доступные опции Responder’а.
Запустите Responder этой командой:
responder -I wlan0
Если для подключения к целевой беспроводной сети используется встроенная беспроводная карта, то именно «wlan0», скорее всего, будет именем используемого интерфейса. Аргумент -I является единственным обязательным аргументом для использования Responder. Имя интерфейса можно найти с помощью команды ifconfig.
Терминал Responder’а перейдет в состояние «прослушивания», в котором он будет отвечать на LLMNR-запросы, проходящие в локальной сети. Когда он обнаружит NTLMv2-хэш, принадлежащий целевому Windows-компьютеру, Responder выведет этот хэш в терминале.
Весь хэш (выделен на скриншоте красным) нужно сохранить локально. Это можно сделать с помощью nano и сохранить в файл с именем hash.txt.
nano hash.txt
Чтобы сохранить изменения и выйти нажмите Ctrl + X, затем Y, затем Enter.
Брутфорс полученного хэша будет последним испытанием этой атаки, и для его выполнения мы будем использовать John the Ripper. Он осуществляет перебор паролей с использованием CPU. В настоящее время он доступен в большинстве популярных дистрибутивов Linux, таких как Kali Linux и ParretSec.
Основной целью John the Ripper является обнаружение слабых паролей путем проведения различных брутфорс-атак против обычных алгоритмов хэширования и шифрования, для таких объектов, как защищенные паролем ZIP-файлы, приватные SSH-ключи PuTTY, зашифрованные базы данных паролей Firefox, «связки ключей» macOS (keychains), хэши Windows NTLMv2 и многие другие.
John the Ripper (в консоли называемый просто john) можно установить с помощью этой команды:
apt-get install john
John the Ripper поддерживает широкий спектр алгоритмов хэширования и шифрования. Аргументы -test и -format можно использовать для проведения замеров скорости взлома, с которой может работать John, для того, чтобы определить, какое количество NTLMv2-паролей в секунду может сгенерировать и попробовать компьютер во время брутфорс-атаки.
john -test -format:netntlmv2
Чтобы просмотреть все данные по бенчмаркам для всех доступных алгоритмов хэширования, поддерживаемых John the Ripper, просто воспользуйтесь аргументом -test без дополнительных опций.
john -test
Есть два способа выполнить брутфорс — быстрый и медленный. Каждый способ имеет свои преимущества и недостатки, но полезно знать, как каждый из них работает.
Атака с использованием вордлиста для подбора NTLMv2-хэшей, скорее всего, пройдет очень быстро. Мы обнаружили, что John смог обработать более 10 000 000 паролей менее чем за 20 секунд. Это связано с тем, что NTLMv2 использует слабый алгоритм хэширования, который не в состоянии обеспечить разумную степень безопасности. Даже используя старые процессоры Intel, John способен обрабатывать миллионы паролей за короткий промежуток времени.
Чтобы указать желаемый вордлист для брутфорс-атаки, используйте аргумент -wordlist.
john -wordlist: passwords.txt hash.txt
Когда хэш будет успешно взломан, он появится в терминале рядом с именем пользователя, связанным с этим хэшем. На нашей виртуальной машине Windows 10 пароль — nullbyte, а IEUser — это имя пользователя (логин).
В качестве альтернативы хэш всегда можно просмотреть еще раз, воспользовавшись аргументом —show с указанием пути к файлу, содержащему хэш.
Читателям, у которых есть специальное железо для брутфорса или Raspberry Pi, которые способны работать в течение нескольких дней (или недель) без перерыва, режим маски (Mask Mode) у John’а может предложить комплексное решение.
Режим маски позволяет проводить более полный и тщательный брутфорс всех возможных символов в пароле. Например, «Password23», скорее всего, будет найден в большинстве вордлистов, а вот «Pzzw1rD» скорее всего, не будет. Используя режим маски, Джон может пробовать каждый возможный символ от A до Z и цифру от 0 до 9.
По умолчанию у Джона есть предопределенные наборы символов. Вот эти наборы:
? l = abcdefghijklmnopqrstuvwxyz ? u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ? d = 0123456789
Аналитика паролей, основанная на попавших в паблик базах данных, говорит нам, что большинство паролей будут от шести до восьми символов и в основном состоят из строчных букв. Это правило может быть представлено с использованием аргумента -mask и параметра ?l, как показано в приведенной ниже команде.
john -mask=?l?l?l?l?l?l?l?l hash.txt
Каждый «?l» представляет собой один символ в пароле. «l» здесь буквально означает «строчный регистр». Маска, содержащая только прописные буквы, вместо этого использует «?u».
john -mask=?u?u?u?u?u?u?u?u?u hash.txt
Также возможно комбинирование наборов символов.
John -mask=?u?l?l?l?l?l?l?l hash.txt
Как упоминалось ранее, большинство паролей — длиной от шести до восьми символов. Чтобы сэкономить время при выполнении брутфорса можно принудительно установить минимальную длину с помощью аргумента -min-len.
john -mask=?u?l?l?l?l?l?l?l -min-len=6 hash.txt
Чтобы добавить цифры в конце паролей, можно использовать параметр ?d.
john -mask=?u?l?l?l?l?l?d?d -min-len=6 hash.txt
Чтобы просмотреть прогресс John’а, пока идет брутфорс, можно нажать на стрелку вниз на клавиатуре для вывода в консоль информации о деталях перебора.
Те, кто хочет ускорить выполнение брутфорс атак, могут посмотреть наши материалы по использованию Hashcat или почитать на Stackoverflow о брутфорсе с помощью GPU.
Предотвращение этих типов атак не очень-то легкое дело, и есть всего пара надежных способов, которые вы можете применить:
Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…
Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…
Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…
В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…
От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…
Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…