Введение
В этой лабораторной работе вы погрузитесь в мир безопасности паролей, научившись взламывать хэши NTLM (NT LAN Manager). NTLM — это алгоритм хэширования, используемый системами Microsoft Windows для хранения паролей пользователей. Понимание того, как эти хэши могут быть взломаны, является фундаментальным навыком в тестировании на проникновение и аудите безопасности.
Вы будете использовать Hashcat, мощный и популярный инструмент для восстановления паролей, для выполнения словарной атаки на образце хэша NTLM. К концу этой лабораторной работы вы поймете основной процесс взлома паролей и оцените важность использования надежных, сложных паролей.
Понимание того, что такое хэши NTLM
На этом этапе вы узнаете об основах хэшей NTLM. Эти фундаментальные знания крайне важны перед попыткой их взлома.
NTLM (NT LAN Manager) — это набор протоколов безопасности, разработанный Microsoft. Одной из его ключевых функций является обработка аутентификации. Когда вы устанавливаете пароль в системе Windows, он не хранится в открытом виде. Вместо этого он преобразуется в значение хэша с использованием алгоритма NTLM.
Хэш NTLM представляет собой 128-битное значение, обычно отображаемое в виде 32-символьной шестнадцатеричной строки. Например, хэш NTLM для пароля "password" выглядит так: 8846f7eaee8fb117ad06bdd830b7586c.
Поскольку хэширование — это односторонний процесс, вы не можете напрямую "дехэшировать" его, чтобы получить исходный пароль. Однако злоумышленники могут использовать такие методы, как словарные атаки или атаки полным перебором, чтобы угадать пароль, хэшировать свое предположение и проверить, совпадает ли оно с целевым хэшем. Это процесс, который мы будем исследовать в этой лабораторной работе.
На этом этапе нет команд для выполнения. Пожалуйста, переходите к следующему шагу, чтобы создать файл с образцом хэша.
Создание файла с образцом хэша NTLM
На этом этапе вы создадите файл, содержащий образец хэша NTLM. В реальном тесте на проникновение вам сначала потребуется извлечь эти хэши из базы данных Security Account Manager (SAM) системы Windows. Для этой учебной лаборатории мы просто создадим текстовый файл с известным хэшем.
Вся ваша работа будет проводиться в каталоге ~/project. Сначала используйте команду echo для создания файла с именем ntlm_hash.txt и записи в него образца хэша NTLM. Этот хэш соответствует распространенному, слабому паролю.
echo "8846f7eaee8fb117ad06bdd830b7586c" > ~/project/ntlm_hash.txt
Теперь проверьте, что файл был создан правильно, отобразив его содержимое с помощью команды cat.
cat ~/project/ntlm_hash.txt
Вы должны увидеть следующий вывод, который является хэшем, который вы только что сохранили:
8846f7eaee8fb117ad06bdd830b7586c
Теперь, когда файл с хэшем готов, вы можете приступить к подготовке к процессу взлома.
Выбор правильного режима хэширования для NTLM
На этом этапе вы узнаете, как определить правильный режим хэширования в Hashcat для хэшей NTLM.
Hashcat — это универсальный инструмент, поддерживающий сотни различных типов хэшей, от хэшей паролей веб-приложений до хэшей операционных систем. Чтобы работать правильно, вы должны точно указать Hashcat, какой тип хэша вы пытаетесь взломать. Это делается с помощью определенного номера режима.
Вы можете найти номер режима для NTLM, просмотрев справочное меню Hashcat. Используйте команду grep для фильтрации вывода по запросу "NTLM".
hashcat --help | grep NTLM
В выводе будут перечислены различные типы хэшей, связанные с NTLM. Найдите запись для стандартного NTLM.
...
1000 | NTLM | Operating System
...
Как видно из вывода, номер режима для NTLM — 1000. Вы будете использовать это число на следующем шаге, чтобы указать Hashcat, как интерпретировать хэш в вашем файле ntlm_hash.txt.
Запуск словарной атаки на хэш NTLM
На этом этапе вы будете использовать Hashcat для запуска словарной атаки на хэш NTLM. Словарная атака — это метод взлома пароля путем перебора списка распространенных слов и фраз, известных как "список слов" или "словарь".
Скрипт настройки для этой лаборатории уже загрузил популярный список слов под названием rockyou.txt в ваш каталог ~/project. Теперь вы составите команду Hashcat для начала атаки.
Структура команды следующая:
hashcat: Название программы.-m 1000: Режим хэширования для NTLM, который вы определили на предыдущем шаге.~/project/ntlm_hash.txt: Путь к вашему файлу, содержащему целевой хэш.~/project/rockyou.txt: Путь к списку слов.--force: Эта опция указывает Hashcat работать, даже если он обнаруживает потенциальные проблемы с окружением, что может быть полезно в виртуализированных лабораториях.
Теперь выполните полную команду в вашем терминале:
hashcat -m 1000 ~/project/ntlm_hash.txt ~/project/rockyou.txt --force
Hashcat начнет работу. Процесс может занять несколько минут, пока он загружает список слов и начинает сравнивать хэши. Вы увидите вывод, похожий на следующий:
hashcat (vX.X.X) starting...
...
Session..........: hashcat
Status...........: Running
Hash.Type........: NTLM
Hash.Target......: 8846f7eaee8fb117ad06bdd830b7586c
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (~/project/rockyou.txt)
...
Session..........: hashcat
Status...........: Cracked
...
Сообщение "Status...........: Cracked" указывает на то, что Hashcat успешно нашел пароль.
Анализ взломанного пароля NTLM
На этом этапе вы просмотрите и проанализируете взломанный пароль, обнаруженный Hashcat.
Как только Hashcat успешно взломает хэш, он сохраняет результат в файле, называемом "potfile" (от англ. "pot of gold" - горшочек с золотом). Это избавляет вас от необходимости повторно взламывать тот же хэш в будущем. Расположение этого файла по умолчанию: ~/.local/share/hashcat/hashcat.potfile.
Самый простой способ увидеть взломанный пароль — использовать опцию Hashcat --show. Эта команда указывает Hashcat отобразить все взломанные пароли для хэшей, предоставленных в вашем входном файле.
Выполните следующую команду:
hashcat -m 1000 ~/project/ntlm_hash.txt --show
Hashcat проверит свой potfile и отобразит результат для вашего хэша:
8846f7eaee8fb117ad06bdd830b7586c:password
Формат вывода: hash:plaintext_password. Как вы можете видеть, исходный пароль для хэша 8846f7eaee8fb117ad06bdd830b7586c — это password.
Вы также можете просмотреть сам potfile напрямую, используя команду cat:
cat ~/.local/share/hashcat/hashcat.potfile
Это покажет тот же результат. Теперь вы успешно взломали хэш NTLM и восстановили исходный пароль.
Резюме
В этой лаборатории вы успешно выполнили базовую атаку по подбору пароля на хэш NTLM.
Вы узнали:
- Что такое хэши NTLM и как они используются в системах Windows.
- Как использовать Hashcat, мощный инструмент для восстановления паролей.
- Концепцию словарной атаки и важность списков слов, таких как
rockyou.txt. - Процесс определения правильного типа хэша, запуска атаки и просмотра взломанного пароля.
Это упражнение демонстрирует, насколько легко могут быть скомпрометированы слабые пароли. Оно подчеркивает критическую важность использования надежных, уникальных и сложных паролей, а также надежных механизмов хэширования для защиты систем и данных от несанкционированного доступа.


