Как я взломал ваш пароль Windows (часть 2)

Опубликовано: 9 Апреля, 2023
Как я взломал ваш пароль Windows (часть 2)

Введение

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

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

Получение хэшей паролей

Чтобы взломать пароли, вы должны сначала получить хэши, хранящиеся в операционной системе. Эти хэши хранятся в файле Windows SAM. Этот файл находится в вашей системе в папке C:WindowsSystem32config, но недоступен во время загрузки операционной системы. Эти значения также хранятся в реестре по адресу HKEY_LOCAL_MACHINESAM, но опять же эта область реестра также недоступна во время загрузки операционной системы.

Здесь есть несколько различных вариантов в зависимости от уровня доступа, который у вас есть к машине, которую вы проверяете.

Физический доступ

Если у вас есть физический доступ, одним из наиболее эффективных методов является загрузка компьютера в другой операционной системе. Если вам удобно использовать Linux, это означает, что вы можете просто загрузиться с живого компакт-диска Linux, способного читать диски NTFS, смонтировать раздел Windows и скопировать файл SAM на внешний носитель.

Если вам неудобно делать это, вы можете использовать знаменитый Offline NT Password Editor П. Нордала, доступный здесь. Это загрузочный дистрибутив Linux, предназначенный для помощи системным пользователям, которые забыли свои пароли, позволяя им сбросить их. Программное обеспечение принимает ввод пользователя, создает действительный хэш и заменяет старый хэш в файле SAM новым. Это полезно для нас, потому что мы также можем использовать дистрибутив, чтобы просто прочитать файл SAM и получить хэш-данные.

Для этого загрузитесь с образа компакт-диска и выберите системный раздел, расположение файла SAM и кустов реестра, выберите параметр сброса пароля [1], запустите встроенный редактор реестра [9], перейдите к SAM ДоменУчетная записьПользователи, перейдите в каталог пользователя, к которому вы хотите получить доступ, и используйте команду cat для просмотра хэша, содержащегося в файлах. Вывод будет в шестнадцатеричном формате, но он работает с простым преобразованием.

Изображение 23596
Рисунок 1: Шестнадцатеричный вывод хэша SAM

Прежде чем использовать автономный редактор паролей NT для фактического сброса пароля, убедитесь, что вы не используете зашифрованную файловую систему (EFS) на чем-либо, выпущенном после Windows XP/2003. Если вы сделаете это, это приведет к тому, что операционная система потеряет свои ключи EFS, что приведет к большему количеству проблем, чем просто забытый пароль.

Доступ к консоли

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

После того, как вы загрузили fgdump на хост, вы можете просто запустить его без каких-либо опций для создания дампа SAM-файла локального компьютера.

Изображение 23597
Рисунок 2: Подтверждение того, что утилита Fgdump работает правильно

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

Изображение 23598
Рисунок 3: Хеши паролей, выдаваемые Fgdump

Доступ к сети

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

Если вы находитесь в том же сегменте сети, что и целевой клиент, вы можете использовать программу Cain and Abel для перехвата хэшей паролей при их передаче между устройствами. Cain and Abel — бесплатная утилита, которую можно загрузить отсюда. Используя Cain and Abel, вы можете инициировать процесс, называемый отравлением кеша ARP, который представляет собой атаку «человек посередине», которая использует протокол ARP для маршрутизации трафика между двумя хостами через ваш компьютер. Пока активно отравление кеша ARP, вы можете использовать встроенный сетевой сниффер Cain and Abel, позволяющий перехватывать хэши паролей NTLM, которые передаются между отравленными хостами. Теория, лежащая в основе отравления кеша ARP, и то, как это сделать, — это еще один урок сам по себе и немного выходит за рамки этой статьи, но если вы хотите узнать больше об отравлении кеша ARP, вы можете сделать это здесь.

Взлом паролей с помощью Каина и Авеля

Теперь, когда у нас действительно есть хэши паролей, мы можем попытаться их взломать. Если вы уже загрузили и установили Cain & Abel, то вы уже на шаг впереди, потому что мы будем использовать его для взлома наших примеров паролей LM.

Если вы еще не установили Каин и Авель, вы можете скачать его отсюда. Для установки достаточно несколько раз нажать Next. Если он еще не установлен, вам также будет предложено установить драйвер перехвата пакетов WinPCap, используемый для функций прослушивания Cain and Abel. После установки вы можете запустить программу и щелкнуть вкладку Cracker в верхней части экрана. После этого щелкните заголовок LM & NTLM Hashes на панели слева, щелкните правой кнопкой мыши пустую область в центре экрана и выберите «Добавить в список».

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

Изображение 23599
Рисунок 4: Допустимое форматирование хэшей паролей

Если вы извлекли хэши своих паролей вручную, вам нужно будет создать файл со строковой записью для каждой учетной записи пользователя. Каждая строка должна содержать имя пользователя, часть относительного идентификатора (RID) SID пользователя и хэши. Формат этих элементов должен быть:

Имя пользователя:RID:LMHash:NTLMHash:::

Перейдите к этому файлу, выберите его и нажмите «Далее», чтобы импортировать хэши в Cain and Abel. Как только это будет сделано, вы можете щелкнуть правой кнопкой мыши учетную запись, пароль которой вы хотите взломать, выбрать параметр «Атака грубой силы» и выбрать хэши LM. Метод атаки грубой силы пытается использовать каждую возможную комбинацию пароля для хеш-значения, пока не найдет совпадение. На следующем экране вы можете выбрать символы, которые хотите использовать для атаки методом грубой силы, а также минимальную и максимальную длину пароля. Обратите внимание, что набор символов автоматически настраивается на использование только символов верхнего регистра и цифр максимальной длины 7 из-за характеристик хэшей LM.

В нашем примерном сценарии, где у нас есть пароль PassWord123, мы увидим немедленные частичные результаты, поскольку программа вернет, что «Простой текст 664345140A852F61 — это D123». Мы уже взломали вторую половину хеша пароля. На современном компьютере проверка всех возможных комбинаций паролей занимает не более 2-3 часов, что гарантирует окончательный успех.

Изображение 23600
Рисунок 5. Cain успешно взламывает хэш пароля LM

Взлом паролей с помощью John the Ripper

Cain and Abel хорошо справляется со взломом паролей LM, но он немного медленный, а его функциональность для взлома хэшей NTLMv2 еще медленнее. Если вам удобно использовать командную строку для взлома паролей, то John the Ripper — один из самых быстрых и наиболее предпочтительных движков для взлома.

Вы можете скачать Джона Потрошителя отсюда. После извлечения содержимого файла вы найдете исполняемый файл john-386.exe в подкаталоге /run. У John есть несколько различных режимов, в которых он может быть запущен, но чтобы запустить его в режиме по умолчанию, все, что вам нужно сделать, это указать файл, содержащий хэш пароля, в качестве аргумента при запуске исполняемого файла из командной строки.

Изображение 23601
Рисунок 6: Джон Потрошитель пытается взломать пароль

После завершения John the Ripper отображает взломанные пароли и сохраняет результаты в файле john.pot. В большинстве случаев режим взлома по умолчанию подходит, но у Джона Потрошителя также есть следующие доступные режимы взлома:

  • Single Crack Mode — использует варианты имени учетной записи.
  • Режим списка слов — опирается на словарь для подбора пароля.
  • Инкрементальный режим — основан на атаке методом грубой силы.
  • Внешний режим — полагается на другое (предоставленное пользователем) приложение для подбора пароля.

John очень эффективен во всех режимах взлома и является моей типичной программой для взлома паролей.

Взлом паролей с помощью радужных таблиц

Когда вы подозреваете, что пароль NTLMv2 очень сложен и, в свою очередь, требует слишком много времени для взлома, единственным логическим решением является использование радужных таблиц. Радужная таблица — это таблица поиска, состоящая из хэшей паролей для каждой возможной комбинации паролей с учетом используемого алгоритма шифрования. Как вы понимаете, радужные таблицы могут занимать довольно много места для хранения. В прошлом для создания и хранения этих таблиц требовалось слишком много ресурсов процессора и хранилища, но с развитием современных вычислений как этичные тестеры на проникновение, так и злонамеренные хакеры становятся все более и более распространенным явлением, когда внешние жесткие диски содержат наборы радужных таблиц.

Найти место для создания или загрузки набора радужных таблиц — это просто поиск в Google, если вы предпочитаете это делать, но есть лучшие методы для «случайного» взлома паролей. Одним из таких методов является использование веб-службы, содержащей собственный набор радужных таблиц. Вот один из таких веб-сервисов. Этот сайт поддерживает несколько наборов радужных таблиц, для которых вы можете отправлять хэши паролей для взлома, а также список недавно взломанных паролей для повышения эффективности.

Чтобы отправить хэши на plain-text.info, вы можете просто щелкнуть ссылку «Добавить хэши», чтобы указать хэш и режим шифрования. Если этот хэш уже был взломан, вам будут показаны результаты, а если нет, хэш будет отправлен в очередь. Вы можете отслеживать статус очереди, перейдя по ссылке «Поиск» и выполнив поиск хэша, который сообщит вам его позицию в очереди. Сложные пароли часто могут занимать некоторое время с помощью этого метода, но, как правило, это быстрее, чем позволить вашему собственному оборудованию выполнять эту работу.

Защита от взлома паролей

Люди склонны думать, что цель шифрования — сделать зашифрованный текст таким, чтобы никто никогда не смог его расшифровать, но это немного ошибочное представление. Эта мысль основана на вере в то, что компьютеры способны генерировать случайные числа для целей шифрования, но, честно говоря, компьютеры не так хорошо справляются со «случайными», поскольку «случайные» полностью зависят от запрограммированной логики. В результате настоящая цель шифрования состоит в том, чтобы сделать зашифрованный текст настолько трудным для взлома, чтобы время, необходимое для взлома, перевешивало пользу от этого.

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

Используйте сложные и меняющиеся пароли

Самый логичный способ помешать людям взломать ваш пароль — сделать его невероятно сложным. Если ваш пароль содержит строчные буквы, прописные буквы, цифры, специальные символы и является достаточно длинным, его невозможно будет взломать в разумные сроки. Чтобы придать вещам дополнительную степень сложности, частая смена пароля означает, что когда злоумышленник взломает ваш пароль, он уже будет изменен. Нет лучшей защиты, чем использование надежного пароля, который часто меняется.

Отключить LM-хеширование

К настоящему моменту вы должны хорошо разбираться в слабых сторонах LM-хэшей. Для нас хорошо, что нам больше не нужно их использовать. Современные операционные системы Windows можно настроить для использования исключительно NTLMv2 с помощью нескольких модификаций реестра.

Вы можете отключить хранение хэшей LM, перейдя в HKLMSystemCurrentControlSetControlLSA в реестре. Оказавшись там, создайте ключ DWORD с именем NoLMHash со значением 1.

Еще один шаг — отключить аутентификацию LM в сети. Еще раз перейдите к HKLMCurrentControlSetControlLSA. Оказавшись там, найдите ключ с именем LMCompatibiltyLevel. Можно установить значение 3, чтобы отправлять только аутентификацию NTLMv2, что является отличным параметром для клиентов домена. В качестве альтернативы можно установить для этого значения значение 5, которое настроит устройство на прием только запросов аутентификации NTLMv2, что отлично подходит для серверов.

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

Используйте СИСТЕМНЫЙ КЛЮЧ

SYSKEY — это функция Windows, которую можно реализовать для добавления дополнительных 128 битов шифрования к файлу SAM. SYSKEY работает с использованием созданного пользователем ключа, который используется для шифрования файла SAM. После включения SYSKEY нельзя отключить.

Важно помнить, что SYSKEY защищает только сам файл SAM, защищая его от копирования. SYSKEY НЕ защищает от инструментов, извлекающих хэши из оперативной памяти, таких как Cain и fgdump.

Вы можете прочитать больше о SYSKEY на http://support.microsoft.com/kb/143475.

Вывод

Взлом паролей является важным навыком для тех, кто пытается взломать систему, и поэтому системным администраторам необходимо понимать, как хранятся, крадут и взламывают пароли. По мере того как потенциальные злоумышленники тыкают и тыкают в системы, их рты будут течь при виде хэша LM, и их цель будет достигнута более чем наполовину, если пользователи используют простые пароли. Помните, знание — это полдела, поэтому, если вы воспользуетесь этой информацией и ничего не сделаете, вы окажетесь только на полпути. Используя предоставленные защитные методы, вы можете удержать злоумышленников от компрометации паролей ваших систем.

разделу Как я взломал ваш пароль Windows (часть 1)