Введение
KeePass — популярный менеджер паролей с открытым исходным кодом, который помогает безопасно управлять вашими паролями. Он хранит пароли в зашифрованном файле базы данных, обычно с расширением .kdbx. Несмотря на высокую степень безопасности, надежность защиты базы данных в значительной степени зависит от мастер-пароля, выбранного пользователем.
В этой лаборатории вы выступите в роли аналитика по безопасности, чтобы проверить надежность пароля базы данных KeePass. Вы изучите фундаментальный процесс взлома паролей в этических и образовательных целях. Мы будем использовать keepass2john, инструмент из набора John the Ripper, для извлечения хэша пароля из образца файла .kdbx, а затем используем hashcat, мощный инструмент для восстановления паролей, для его взлома с помощью словарной атаки.
Этот практический опыт продемонстрирует, как злоумышленники могут использовать слабые пароли, и подчеркнет важность использования надежных, сложных мастер-паролей.
Создание образца базы данных KeePass с простым паролем
На этом шаге мы создадим целевую базу данных KeePass. Чтобы провести тест на взлом пароля, нам сначала нужен файл .kdbx для работы. Мы будем использовать приложение KeePass для создания новой базы данных и защиты ее простым, легко угадываемым паролем в демонстрационных целях.
Сначала запустите приложение KeePass, набрав его название в терминале.
keepass2
Это откроет графический интерфейс KeePass. Теперь выполните следующие шаги для создания базы данных:
- В окне KeePass перейдите в меню и нажмите
File->New.... - Появится окно "Create New Password Database". Нажмите
OKдля продолжения. - Вам будет предложено сохранить новый файл базы данных. Перейдите в каталог
/home/labex/project, назовите файлMySecrets.kdbxи нажмитеSave. - Далее появится окно "Create Master Key". Здесь вы устанавливаете мастер-пароль для базы данных. Для этой лаборатории введите
password123в поле "Master password" и повторите его в поле "Repeat password". НажмитеOK. - Появится окно "New Password Database - Step 2". Вы можете оставить настройки по умолчанию. Нажмите
OK. - Ваша новая, пустая база данных теперь создана и открыта. Вы можете добавить образец записи, но это не требуется для данной лаборатории.
- Наконец, закройте приложение KeePass, нажав
File->Exit.
Теперь у вас должен быть файл с именем MySecrets.kdbx в вашем каталоге ~/project. Вы можете проверить его наличие с помощью команды ls.
ls -l ~/project
В выводе вы должны увидеть MySecrets.kdbx.
Использование keepass2john для извлечения хэша
На этом шаге мы извлечем хэш пароля из файла MySecrets.kdbx. Инструменты для взлома паролей, такие как hashcat, не работают напрямую с самим файлом базы данных. Вместо этого они оперируют "хэшем", который является криптографическим представлением мастер-пароля.
Мы будем использовать keepass2john, утилиту, входящую в набор инструментов для взлома паролей John the Ripper, для преобразования информации о ключе базы данных KeePass в формат, понятный hashcat.
Откройте терминал и выполните следующую команду. Эта команда считывает файл MySecrets.kdbx и выводит соответствующий хэш, который мы перенаправляем и сохраняем в новый файл с именем keepass.hash.
keepass2john ~/project/MySecrets.kdbx > ~/project/keepass.hash
Эта команда не даст видимого вывода в терминале, поскольку вывод был перенаправлен в файл keepass.hash. Чтобы увидеть содержимое только что созданного файла хэша, используйте команду cat:
cat ~/project/keepass.hash
Вывод будет представлять собой одну длинную строку текста, которая выглядит примерно так:
MySecrets:$keepass$*2*6000*0*b1b5b8a8a5b8a8a5b8a8a5b8a8a5b8a8*...*...
Эта строка и есть хэш. Она содержит всю необходимую информацию для hashcat для попытки взлома пароля, включая алгоритм шифрования, соль (salt) и зашифрованный мастер-ключ.
Определение правильного режима hashcat для KeePass
На этом шаге мы определим правильный режим, который hashcat должен использовать при взломе нашего хэша KeePass. hashcat — это чрезвычайно универсальный инструмент, поддерживающий сотни различных типов хэшей, от паролей операционных систем до форматов, специфичных для приложений.
Чтобы работать корректно, мы должны явно указать hashcat, какой тип хэша мы предоставляем. Это делается путем указания числового режима с использованием флага -m. Чтобы найти номер режима для KeePass, мы можем просмотреть справочную документацию hashcat.
Выполните следующую команду в терминале. Она передает полный вывод справки hashcat в grep, который затем фильтрует строки, содержащие слово "keepass".
hashcat --help | grep -i keepass
Флаг -i в grep делает поиск нечувствительным к регистру. Вывод покажет вам соответствующие режимы:
13400 | KeePass 1 (AES/Twofish) / KeePass 2 (AES) | Password Managers
Из этого вывода мы видим, что режим для баз данных KeePass 1 и 2 — 13400. Это число нам понадобится на последнем шаге для запуска атаки.
Подготовка списка слов для атаки
На этом шаге мы подготовим список слов для нашей словарной атаки. Словарная атака (или атака по списку слов) — это метод, при котором инструмент взлома пробует каждое слово из заранее скомпилированного списка в качестве потенциального пароля. Успех этой атаки полностью зависит от того, включен ли правильный пароль в список.
В реальных сценариях злоумышленники используют огромные списки слов, содержащие миллионы или даже миллиарды распространенных паролей. Для этой лаборатории мы создадим очень маленький, пользовательский список слов, чтобы обеспечить быстрый и успешный процесс взлома. Самое главное, мы включим правильный пароль, password123, в наш список.
Используйте текстовый редактор nano для создания нового файла с именем wordlist.txt.
nano ~/project/wordlist.txt
Как только nano откроется, введите следующие пароли в редактор, каждый на новой строке:
password
123456
password123
qwerty
labex
После ввода слов сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y для подтверждения и, наконец, Enter.
Теперь у нас есть готовый список слов для использования hashcat.
Запуск атаки и восстановление мастер-пароля
На этом заключительном шаге мы объединим все и запустим атаку на взлом пароля с помощью hashcat. У нас есть файл хэша (keepass.hash), правильный режим хэширования (13400) и наш пользовательский список слов (wordlist.txt).
Теперь выполните следующую команду в терминале, чтобы начать атаку:
hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt
Разберем эту команду:
hashcat: Программа, которую мы запускаем.-m 13400: Указывает режим хэширования для KeePass 2, который мы определили на предыдущем шаге.-a 0: Указывает режим атаки. Режим0— это "прямая" атака или словарная атака.~/project/keepass.hash: Путь к нашему файлу, содержащему целевой хэш.~/project/wordlist.txt: Путь к нашему списку слов.
hashcat инициализируется и начнет проверять пароли из вашего списка слов. Поскольку наш список очень короткий и содержит правильный пароль, процесс будет очень быстрым. Вы увидите обновления статуса, и вскоре процесс завершится.
После завершения атаки hashcat сохраняет найденные пароли в файле, называемом "potfile". Чтобы просмотреть взломанный пароль, вы можете снова запустить ту же команду с флагом --show.
hashcat -m 13400 -a 0 ~/project/keepass.hash ~/project/wordlist.txt --show
Эта команда мгновенно отобразит взломанный хэш и соответствующий ему пароль:
MySecrets:$keepass$*2*6000*0*...:password123
Вывод четко показывает исходный хэш, за которым следует двоеточие и восстановленный пароль: password123. Поздравляем, вы успешно взломали пароль базы данных KeePass!
Резюме
В этой лаборатории вы успешно выполнили словарную атаку для восстановления мастер-пароля базы данных KeePass KDBX.
Вы изучили полный, практический рабочий процесс аудита паролей, который включал:
- Создание образца базы данных KeePass со слабым паролем.
- Использование
keepass2johnдля извлечения хэша пароля в формате, подходящем для взлома. - Определение правильного режима хэширования (
13400) вhashcatдля баз данных KeePass. - Подготовку пользовательского списка слов, содержащего потенциальные пароли.
- Запуск атаки с помощью
hashcatи успешное восстановление пароля.
Это упражнение подчеркивает критический принцип безопасности: безопасность всей базы данных паролей так же сильна, как и ее мастер-пароль. Использование простых, распространенных или легко угадываемых паролей делает их уязвимыми для словарных атак, даже при защите сильным шифрованием. Всегда используйте длинные, сложные и уникальные мастер-пароли для ваших менеджеров паролей.


