Вопрос или проблема
Я тестирую John the Ripper (1.7.9 Jumbo 7) на файле, содержащем MD5-хэши без каких-либо имен пользователей. Я экспериментирую с различными правилами и конфигурациями – в данный момент я использую список слов и применяю команду --rules=single
. В результате выполнения этой команды я получаю очень хорошие результаты, однако мне не совсем ясно, что происходит за кулисами, из-за следующего абзаца, который я нашел на сайте Openwall:
‘Single Crack’ режим: Это режим, с которого вы должны начать взлом. Он будет использовать логины, поля “GECOS” и имена домашних директорий пользователей в качестве кандидатных паролей, также с применением большого набора правил преобразования. Поскольку информация используется только для паролей учетных записей, из которых она была получена (и против хэшей паролей, которым был назначен такой же соль), “single crack” режим гораздо быстрее, чем режим со списком слов. Это позволяет использовать гораздо больший набор правил манипуляции словами с “single crack”, и их использование всегда включено в этом режиме. Успешно угаданные пароли также проверяются против всех загруженных хэшей паролей, на случай если у нескольких пользователей один и тот же пароль.
Обратите внимание, что выполнение этого режима на множестве файлов паролей одновременно может иногда привести к взлому большего числа паролей, чем если бы вы запускали его на отдельных файлах паролей.
Меня смущает утверждение “режим single crack” намного быстрее, чем режим со списком слов. Как так получается, что режим single быстрее, чем простой словарный атака, если применяются правила манипуляции словами?
Любая информация о том, что происходит в режиме взлома single, будет полезной, так как я не могу найти много документации, кроме этого абзаца.
Абзац из онлайн-документации JtR, который вы добавляете к вашему вопросу, на самом деле довольно хорошо это объясняет.
Думайте о нем как о словарном режиме (или WordList Mode), но таком, который строит список всех слов, найденных в полях GECOS, делая этот словарь довольно маленьким и использует полный набор правил манипуляции, поддерживаемых JtR.
В контексте, WordList Mode будет иметь гораздо больший набор словарных слов для обработки, но использует сокращенный набор правил манипуляции, предназначенный для очень быстрого завершения на каждой записи словаря. Это ограничивает количество попыток на каждое кандидатное слово.
Таким образом, в кратком изложении, Simple Mode выполнит полный набор правил манипуляции на коротком, но очень релевантном словаре, в то время как Wordlist Mode использует гораздо более длинный словарь, но сокращает набор правил манипуляции для более быстрого завершения.
Эта релевантность (из чего составляется список слов), помимо большего числа манипуляций для каждого кандидатного слова, скорее всего, является основной причиной ваших лучших результатов при использовании Single Mode.
Он использует информацию, которая уже доступна.
admin:admin
Single crack: В этом режиме Джон попытается взломать пароль, используя
информацию для входа/GECOS в качестве паролей.
Найдено в результате поиска в Google.
Типичный формат для поля GECOS – это список, разделенный запятыми, с таким порядком:
Полное имя пользователя (или имя приложения, если учетная запись предназначена для программы)
Номер здания и комнаты или контактное лицо
Номер офисного телефона
Любая другая контактная информация (номер пейджера, факс и т. д.)
В большинстве систем UNIX эту информацию могут изменять обычные пользователи, используя команду chfn в оболочке.
Из Википедии
Если цель более продвинута в создании паролей, тогда режим single crack
в вероятности не сработает. Если у вас есть словарь других паролей, которые пользователь использовал, это будет гораздо более эффективным.
Это самая важная часть, которую другие ответы (до сих пор) упускают:
Поскольку информация используется только против паролей для учетных записей, из которых она была получена (и против хэшей паролей, которым была назначена такая же соль), “single crack” режим гораздо быстрее, чем режим со списком слов.
В большинстве атак, использующих список слов, все слова проверяются против всех хэшей. Чем больше хэшей и чем медленнее хэши, тем больше увеличивается время/работа, необходимая для атаки.
Напротив, в режиме single список слов, применяемый к каждому хэшу, берется только из другой информации рядом только с этим хэшем (имя пользователя, GECOS, домашняя папка) и применяется только к этому хэшу.
Например, если у вас есть сто записей в shadow, и первая из них
user1:[hash]:User One:/home/larrydir
… тогда только этот супер маленький список слов:
user1
User One
larrydir
… используется против только хэша user1. Атака не “тратит” время, пытаясь ‘user1’ и т. д. против хэшей user2 через user100.
Ответ или решение
В режиме "Single Crack" в John the Ripper происходит следующее:
Этот режим рекомендуется использовать в первую очередь, поскольку он применяет специфическую информацию, связанную с учетными записями, для генерации возможных паролей. В отличие от обычного режима словаря, который использует обширный набор слов из заранее подготовленного списка, режим "Single" создает более компактный и целенаправленный список кандидатов на основе имени пользователя (логина), информации поля GECOS (например, полного имени пользователя) и путей к домашним директориям.
Основные моменты, касающиеся работы режима "Single Crack":
-
Ограниченный набор кандидатов: В этом режиме John the Ripper использует информацию, доступную для конкретной учетной записи, чтобы сформировать небольшой, но более релевантный набор возможных паролей, таких как:
- Имя пользователя
- Полное имя (как указано в GECOS)
- Имя домашней директории
Это позволяет сосредоточиться на наиболее вероятных вариантах паролей для каждой конкретной учетной записи.
-
Эффективность при использовании: Одно из основных преимуществ "Single" режима заключается в том, что попытки взлома осуществляются только против паролей, соответствующих конкретной учетной записи. В отличие от режима словаря, где каждый элемент списка слов проходит по всем хэшам, "Single" режим существенно сокращает количество вычислений, поскольку он работает с гораздо меньшим набором кандидатов.
-
Использование правил изменения: Режим "Single Crack" также использует полный набор правил изменения (mangling rules), которые применяются ко всем кандидатным паролям. Эти правила могут включать в себя разнообразные варианты преобразования, что позволяет эффективно генерировать вариации заданных кандидатов (например, добавление цифр, изменение регистра и т.д.).
-
Быстрота выполнения: Из-за вышеуказанных факторов, такая специфика позволяет "Single Crack" режиму быть гораздо быстрее, особенно когда дело доходит до больших объемов хэшей, поскольку вместо проверки всех слов из множества против каждого хэша он ограничивается только определенной выборкой, что экономит ресурсы и время.
Таким образом, в случае, если пароль относится к пользователям, использующим более предсказуемые пароли (например, свои имена, что часто бывает в практике), режим "Single" окажется более эффективным. Однако это может не срабатывать, если у пользователя более сложные или нестандартные пароли, в таких случаях могут потребоваться более интегрированные подходы и использование словарных атак.
В заключение, использование команды --rules=single
в John the Ripper позволяет значительно повысить шансы на успешное взлом пароля благодаря специализированному и целенаправленному подходу к формированию кандидатных паролей, что делает этот режим чрезвычайно полезным инструментом для тестирования безопасности учетных записей.