Перейти к содержимому
Fallennn

Как перехватывать и дешифровать пароли Windows по локальной сети

Recommended Posts

Хэши, содержащие пароли входа, передаются между компьютерами Windows в локальных Wi-Fi сетях. Перехватив и дешифровав эти хэши с помощью программ Responder и John the Ripper, мы можем узнать учетные данные пользователей, которые потом можно использовать для получения физического доступа к их компьютеру. 

Как такая атака реализуется 

При взаимодействии с другими устройствами в локальной сети и для разрешения имен хостов этих устройств Windows использует протокол Link-Local Multicast Name Resolution. Любой клиент в локальной сети может взаимодействовать с протоколом LLMNR, чтобы помочь Windows в разрешении имени хоста другого устройства в этой сети. 

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

Машина хакера будет прослушивать пакеты в локальной сети на наличие LLMNR-запросов, исходящих с целевого Windows-компьютера, а затем будет отвечать на такой запрос. Полагая, что ответ настоящий, компьютер Windows попытается вступить во взаимодействие с этим сервером, и чтобы открыть сессию отправит на него пароль пользователя в формате хэширования NTLMv2. 

Хэши NTLM, используемые LLMNR, очень ценны для хакеров.

Что такое NTLMv2 

Учетные данные NTLM основаны на данных, получаемых в процессе входа в систему, и состоят из имени домена, имени пользователя и одностороннего хэша пароля пользователя. NTLM для авторизации пользователей использует шифрование, чтобы не отправлять пароли пользователей в открытом виде по сети. 

NTLM версии 2 (NTLMv2), введенная в операционные системы Windows в конце 90-х годов, повышает безопасность NTLM против большого количества спуффинговых атак и брутфорс-атак за счет повышения криптостойкости алгоритма хеширования. 

К сожалению, алгоритм хеширования HMAC-MD5, используемый NTLMv2, по-прежнему очень уязвим против брутфорс-атак, позволяя осуществлять десятки миллионов попыток ввода пароля в минуту — такие атаки можно выполнять даже с использованием устаревшего железа и Raspberry Pi.

Шаг 1. Установка и использование Responder 

Для начала атаки нужно получить NTLMv2-хэш с целевого компьютера. Это можно сделать с помощью Responder — инструмента командной строки, написанного SpiderLabs и Laurent Gaffie. Он способен анализировать и изменять ответы LLMNR и mDNS. Responder используется для взаимодействия с компьютерами Windows в локальной сети и перехвата NTLMv2-хэшей, передаваемых с целевого устройства. 

Его можно найти в репозиториях Kali Linux. Перед установкой последней версии Responder сначала воспользуйтесь командой apt-get update. Для установки используйте последовательно одну за другой вот эти команды: 

apt-get update
apt-get install responder
OD4OToEAlcM.jpg
 

 

 

Когда установка завершится, можно воспользоваться аргументом —help, чтобы просмотреть все доступные опции Responder’а.

avnc9vRvxbg.jpg
 

 

 

Запустите Responder этой командой: 

responder -I wlan0
_pbrhTLvbgE.jpg
 

 

 

Если для подключения к целевой беспроводной сети используется встроенная беспроводная карта, то именно «wlan0», скорее всего, будет именем используемого интерфейса. Аргумент -I является единственным обязательным аргументом для использования Responder. Имя интерфейса можно найти с помощью команды ifconfig. 

Терминал Responder’а перейдет в состояние «прослушивания», в котором он будет отвечать на LLMNR-запросы, проходящие в локальной сети. Когда он обнаружит NTLMv2-хэш, принадлежащий целевому Windows-компьютеру, Responder выведет этот хэш в терминале.

2bXM9FDrrPg.jpg
 

 

 

Весь хэш (выделен на скриншоте красным) нужно сохранить локально. Это можно сделать с помощью nano и сохранить в файл с именем hash.txt. 

nano hash.txt 

Чтобы сохранить изменения и выйти нажмите Ctrl + X, затем Y, затем Enter. 

Шаг 2. Установка John the Ripper 

Брутфорс полученного хэша будет последним испытанием этой атаки, и для его выполнения мы будем использовать 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
iO2b9e84098.jpg
 

 

 

John the Ripper поддерживает широкий спектр алгоритмов хэширования и шифрования. Аргументы -test и -format можно использовать для проведения замеров скорости взлома, с которой может работать John, для того, чтобы определить, какое количество NTLMv2-паролей в секунду может сгенерировать и попробовать компьютер во время брутфорс-атаки. 

john -test -format:netntlmv2
xsUe9V9ii58.jpg
 

 

 

Чтобы просмотреть все данные по бенчмаркам для всех доступных алгоритмов хэширования, поддерживаемых John the Ripper, просто воспользуйтесь аргументом -test без дополнительных опций. 

john -test 

Шаг 3. Брутфорс NTLMv2-хэшей с помощью John the Ripper 

Есть два способа выполнить брутфорс — быстрый и медленный. Каждый способ имеет свои преимущества и недостатки, но полезно знать, как каждый из них работает. 

Вариант 1. Использование вордлистов и словарей (быстрый способ) 

Атака с использованием вордлиста для подбора NTLMv2-хэшей, скорее всего, пройдет очень быстро. Мы обнаружили, что John смог обработать более 10 000 000 паролей менее чем за 20 секунд. Это связано с тем, что NTLMv2 использует слабый алгоритм хэширования, который не в состоянии обеспечить разумную степень безопасности. Даже используя старые процессоры Intel, John способен обрабатывать миллионы паролей за короткий промежуток времени. 

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

john -wordlist: passwords.txt hash.txt
HMNt6LoaWq4.jpg
 

 

 

Когда хэш будет успешно взломан, он появится в терминале рядом с именем пользователя, связанным с этим хэшем. На нашей виртуальной машине Windows 10 пароль — nullbyte, а IEUser — это имя пользователя (логин).

eF30nahsm2A.jpg
 

 

 

В качестве альтернативы хэш всегда можно просмотреть еще раз, воспользовавшись аргументом —show с указанием пути к файлу, содержащему хэш.

-8Pp6laa_M8.jpg
 

 

 

Вариант 2. Использование для взлома хэша режима маски (медленный способ) 

Читателям, у которых есть специальное железо для брутфорса или 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

Как защититься от Responder и брутфорс-атак 

Предотвращение этих типов атак не очень-то легкое дело, и есть всего пара надежных способов, которые вы можете применить: 

  • Используйте более сильный пароль. Слабый алгоритм хэширования, используемый NTLMv2, означает, что пароли длиной до 16 символов будут не слишком большой проблемой для хакеров, особенно если они используют специализированное железо. Необходимо использовать длинные сложные пароли.
  • Отключите протоколы LLMNR и NBT-NT. Протоколы Windows буквально напрашиваются на то, чтобы их скомпрометировали. При возможности отключите LLMNR и NBT-NS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а есть ченть для ламеров ? 😅

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×