Введение
Hashcat — это мощный и универсальный инструмент для восстановления паролей, широко известный своей скоростью и поддержкой многочисленных алгоритмов хеширования и режимов атак. Одной из его наиболее инновационных функций является атака PRINCE (Probabilistic Relevant Incremental Nonce-based Candidate-generator Extension).
В отличие от стандартной словарной атаки, которая пробует только слова из списка, атака PRINCE генерирует новые кандидаты в пароли, комбинируя слова из заданного списка различными способами. Это делает ее высокоэффективной против паролей, которые являются конкатенациями двух или более словарных слов — распространенного шаблона для создания запоминающихся, но кажущихся сложными паролей.
В этой лабораторной работе вы изучите основы режима атаки PRINCE в Hashcat. Вы подготовите список слов, выполните атаку PRINCE на образце хеша, проанализируете сгенерированные кандидаты и, наконец, объедините ее с файлом правил для решения еще более сложных вариаций паролей.
Понимание вероятностной генерации слов с помощью PRINCE
На этом этапе вы изучите основную концепцию режима атаки PRINCE. Режим атаки PRINCE обозначается флагом режима атаки -a 8 в Hashcat. Его сила заключается в создании новых кандидатов в пароли из меньшего списка слов, а не в использовании огромного словаря. Он алгоритмически комбинирует слова из вашего исходного списка для генерации гораздо большего, более сложного набора потенциальных паролей.
Например, если ваш список слов содержит "apple" и "pie", PRINCE может сгенерировать такие кандидаты, как "apple", "pie", "applepie", "pieapple", "appleapple" и так далее.
Давайте начнем с подтверждения опции режима атаки PRINCE в меню справки Hashcat. Вы можете использовать grep для фильтрации обширного вывода справки, чтобы найти соответствующую строку.
Выполните следующую команду в вашем терминале:
hashcat --help | grep "PRINCE"
Вы увидите строку, определяющую режим атаки PRINCE, подтверждающую его доступность и соответствующий номер режима атаки.
8 | PRINCE
Это подтверждает, что -a 8 является правильным флагом для вызова атаки PRINCE.
Подготовка небольшого базового списка слов
На этом этапе вы создадите небольшой базовый список слов. Эффективность атаки PRINCE напрямую связана с качеством входного списка слов. Даже небольшой, хорошо подобранный список слов может быть невероятно мощным. Для этой лабораторной работы мы создадим файл, содержащий несколько простых слов.
Наш целевой пароль для первой части лабораторной работы — "labexrocks". Следовательно, наш список слов должен содержать базовые слова "labex" и "rocks".
Используйте команду echo с перенаправлением вывода для создания файла с именем wordlist.txt в вашей текущей директории (~/project).
echo -e "labex\nrocks\npass\nword" > wordlist.txt
Флаг -e включает интерпретацию управляющих последовательностей с обратной косой чертой, поэтому \n создает новую строку для каждого слова.
Теперь проверьте содержимое вашего нового списка слов с помощью команды cat.
cat wordlist.txt
Вы должны увидеть следующий вывод, подтверждающий, что файл был создан правильно:
labex
rocks
pass
word
Теперь у вас есть базовый список слов, готовый для атаки PRINCE.
Выполнение атаки PRINCE с флагом -a 8
На этом этапе вы будете использовать созданный вами список слов для взлома образца хэша MD5. Скрипт настройки для этой лабораторной работы уже создал файл с именем hash.txt, содержащий хэш MD5 пароля "labexrocks".
Сконструируем команду Hashcat:
hashcat: Исполняемый файл.-m 0: Указывает режим хэширования.0соответствует MD5.-a 8: Указывает режим атаки, которым является PRINCE.hash.txt: Файл, содержащий целевой хэш.wordlist.txt: Ваш базовый список слов.
Теперь выполните полную команду в вашем терминале:
hashcat -m 0 -a 8 hash.txt wordlist.txt
Hashcat инициализируется и начнет атаку. Поскольку список слов небольшой, а пароль является прямой комбинацией слов из него, процесс будет очень быстрым. Вы увидите вывод, детализирующий сессию, и, что самое важное, взломанный пароль.
Вывод будет выглядеть примерно так (некоторые детали могут отличаться):
...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 22
* Keyspace..: 468
2d4a2b23999534c734b26e1b31b5579d:labexrocks
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 2d4a2b23999534c734b26e1b31b5579d
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Mode.......: PRINCE
Speed.#*.........: ...
Recovered........: 1/1 (100.00%) Digests
Progress.........: 468/468 (100.00%)
Rejected.........: 0/468 (0.00%)
Restore.Point....: 468/468 (100.00%)
Restore.Sub.#*...: ...
Candidate.Engine.: PRINCE
Candidates.#*....: ...
Hardware.Mon.#*..: ...
...
Строка 2d4a2b23999534c734b26e1b31b5579d:labexrocks четко показывает исходный хэш и восстановленный пароль. Вы успешно использовали атаку PRINCE для взлома пароля.
Анализ сгенерированных кандидатных паролей
На этом этапе вы изучите, что PRINCE делает "за кулисами". Вместо взлома хэша вы можете указать Hashcat просто выводить сгенерированные им кандидатные пароли на консоль. Это делается с помощью флага --stdout. Это отличный способ понять, как ваш базовый список слов преобразуется.
Давайте используем --stdout с нашим wordlist.txt, чтобы увидеть сгенерированные кандидаты.
hashcat --stdout -a 8 wordlist.txt
Это выведет на экран большое количество комбинаций. Чтобы сделать вывод более управляемым, вы можете перенаправить его в команду head, чтобы просмотреть только первые 10 строк.
hashcat --stdout -a 8 wordlist.txt | head -n 10
Вывод покажет первые несколько кандидатов, сгенерированных PRINCE.
pass
word
labex
rocks
passpass
password
passlabex
passrocks
wordpass
wordword
Как вы можете видеть, PRINCE начинает с исходных слов, а затем начинает создавать новые комбинации. Пароль, который мы взломали ранее, "labexrocks", будет сгенерирован дальше в этом списке. Это демонстрирует способность PRINCE расширять небольшой список слов в гораздо больший и более эффективный набор предположений о паролях.
Комбинирование PRINCE с файлом правил для большей сложности
На этом этапе вы узнаете, как сделать атаку PRINCE еще более мощной, комбинируя ее с файлом правил. Файлы правил применяют специфические мутации к каждому кандидат-паролю, сгенерированному PRINCE. Это позволяет тестировать распространенные вариации, такие как изменение регистра, добавление чисел или добавление специальных символов.
Настройка лабораторной работы предоставила файл хэша hash2.txt (для пароля "Labexrocks") и общий файл правил с именем best64.rule. Этот файл правил содержит 64 наиболее эффективных правила для модификации паролей.
Поток атаки будет следующим:
- PRINCE генерирует кандидата (например, "labexrocks").
- Hashcat применяет правила из
best64.ruleк этому кандидату (например, изменение первой буквы на заглавную -> "Labexrocks"). - Модифицированный кандидат тестируется против хэша.
Чтобы объединить атаку PRINCE с файлом правил, просто добавьте флаг -r, за которым следует путь к файлу правил.
Выполните следующую команду:
hashcat -m 0 -a 8 hash2.txt wordlist.txt -r best64.rule
Hashcat теперь выполнит атаку PRINCE, но каждый сгенерированный кандидат будет модифицирован правилами из best64.rule перед тестированием.
Вы увидите успешный взлом в выводе:
...
15895e67271a552214b5e422d5752e47:Labexrocks
Session..........: hashcat
Status...........: Cracked
...
Восстановленный пароль — "Labexrocks". Он был найден, потому что PRINCE сгенерировал "labexrocks", а одно из правил в best64.rule изменило первую букву на заглавную, что совпало с целевым паролем. Эта комбинация режимов атаки чрезвычайно эффективна в реальных сценариях.
Резюме
В этой лабораторной работе вы успешно научились использовать режим атаки PRINCE в Hashcat. Вы получили практический опыт применения одной из самых креативных и эффективных техник взлома паролей.
Вы научились:
- Понимать концепцию атаки PRINCE (
-a 8) и как она вероятностно генерирует кандидатные пароли. - Подготавливать простой, целенаправленный список слов, который послужит основой для атаки.
- Выполнять базовую атаку PRINCE для взлома пароля, сформированного путем конкатенации слов.
- Использовать флаг
--stdoutдля анализа кандидатов, сгенерированных PRINCE, и понимания его логики. - Комбинировать атаку PRINCE с файлом правил (
-r) для взлома более сложных паролей с вариациями, такими как изменение регистра.
Атака PRINCE является мощным инструментом в арсенале любого специалиста по безопасности, особенно при работе с паролями, созданными из нескольких слов. Освоение ее использования и комбинации с другими режимами атаки значительно повысит ваши возможности по восстановлению паролей.


