Как создать словарь для брута в виндовс

Обновлено: 03.07.2024

crunch 8 8 -f lalpha-numeric -o 8alpha-num

8 - минимальная длинна слова;
8 - максимальная длинна слова;
-f lalpha-numeric - буквы анг.алфавита в нижнем регистре и цифры;
Остальные наборы символов можно просмотреть в файле charset.lst , найти его можно здесь : /usr/share/crunch .
-o 8alpha-num - имя файла в который будет записан словарь .

Третьим параметром можно просто перечислить символы из которых будут составлены слова:

crunch 4 4 0123456789abcdef -o 4hex


Вместо комбинации символов использовать комбинацию слов ( -p )

***
Разбить файл на части, не более 50000 строк в каждой

***
Преобразовать первую букву в каждой строке файла в верхний регистр (explanation):

***
Если есть база паролей в формате, например email:password то так можно отделить одно от другого

cat passwords | cut -d ':' -f 2

Утилита cut отделит поля в каждой строке по двоеточию ( -d ':' ) и выведет только второе -f 2

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

cat passwords | sort | uniq -c | sort -nr | sed 's/^ *//' | cut -d ' ' -f 2

unic -c - сосчитает ( -c ) сколько раз слово попадалось в словаре и на выходе выдаст что-то вроде 39177 qwerty , затем

sort -nr отсортирует получившиеся строки по числу ( -n - рассматривать строки как числа) вхождений в порядке убывания ( -r );

sed 's/^ *//' удалит образовавшиеся после вывода предыдущей команды пробелы в начале каждой строки;
cut -d ' ' -f 2 наконец выведет только пароль, без указания его частот.

Например сгенерировать словарь состоящий из календарных дат (без учёта числа дней в месяце):

echo -e ..\\n | tr -d " " > dates.lst

ключ -e позволяет интерпретировать символ конца строки \n , tr удаляет ( -d ) пробелы образующиеся перед датой в выводе первой программы.
Следующее выражение сгенерирует все комбинации пар слов в указанном порядке:


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

Инструменты

Пожалуй, один из самых известных инструментов для быстрого создания словарей. Он по умолчанию входит в популярный дистрибутив для проведения пентеста Kali Linux.

Инструмент работает в нескольких режимах:

Создание словаря, состоящего из перечисленных символов, например чисел



Создается словарь длиной от четырех до пяти цифр.

Создание словаря по шаблону



Сперва указывается длина пароля — 10 символов. Затем перечисляются наборы символов: буквы в нижнем регистре, буквы в верхнем регистре, цифры и спецсимволы. Ключ -t задает шаблон, где

  • ^ — спецсимволы
  • @ — буквы в нижнем регистре
  • , — буквы в верхнем регистре
  • % — цифры



Словарь состоит из всех возможных комбинаций слов Alex, Company и Position.

Подробнее изучить инструмент можно через стандартные man страницы, они достаточно подробные.

maskprocessor

Вы можете задать до четырех собственных наборов символов и использовать готовые наборы



Или можно задать набор из цифр, но добавить к нему еще несколько спецсимволов так


Получаем такой результат


John the Ripper

Популярный брутфорсер John the Ripper (JTR) тоже позволяет генерировать словари на основе правил. Делается это при помощи ключа --rules, а сами правила описываются в файле john.conf

Вот так выглядит стандартное правило, используемое для взлома NTLM хэша


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

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



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

hashcat-tools

Еще одним полезным инструментом является набор утилит от популярного брутфорсера hashcat.

Рассмотрим некоторые их них. Описания всех утилит на английском языке можно найти тут.

combinanor.bin — позволяет генерировать словарь из слов, входящих в два других словаря.


combinanor3.bin делает то же самое, но на вход принимает три файла, вместо двух.

combipow.bin — создает все возможные комбинации из слов, перечисленных в файле (похоже на ключ -p в crunch)


cutb.bin — обрезает слова в словаре до указанной длины. Можно указывать смещение (offset)


expander.bin — получает на ввод слова, разбирает их на символы, комбинирует и отправляет в STDOUT


permute.bin — создает словарь, который используется hashcat при атаке типа Permutation attack. Перед использованием словарь нужно пропустить через утилиту prepare.

gate.bin — разбивает словарь на несколько частей для параллельной обработки несколькими ядрами или несколькими машинами. В примере ниже мы разбиваем стандартный словарь JTR на две части. В первую часть попадают слова под номером 0, 2, 4, 6,…. Во вторую 1, 3, 5, 7,…


len.bin — оставляет в словаре только слова определенной длины от min до max


mli2.bin — объединяет два словаря.

req-include.bin — крайне полезный инструмент, который убирает из словаря все, что не подходит под заданные правила. Например, вы знаете, что по парольной политике в пароле обязательно присутствует буква в верхнем регистре, цифра и спецсимвол.


Число выбрано исходя из таблицы


Если таким образом нормализовать известный словарь rockyou, то можно сократить его размер в 270 раз! и не тратить ресурсы на заведомо ложные комбинации.


req-exclude.bin делает то же самое, что req-include, но с точностью до наоборот.

rli.bin — эта утилита удаляет значения из первого словаря, если они встречаются во втором. Полезно использовать, если вы создаете один словарь из нескольких.

Когда под рукой нет утилит

Может оказаться так, что воспользоваться набором hashcat-utils или crunch нет возможности, а нужно срочно создать словарь или нормализовать его. Некоторые алгоритмы довольно сложны в реализации, но базовые операции можно выполнить просто в командной строке.

Простой словарь с датами можно создать серией подобных команд



Если нужно разбить словарь на части для параллельной обработки, можно воспользоваться командой split



Быстро объединить два словаря можно так



Чтобы сделать заглавной первую или последнюю буквы в каждом слове, нужно выполнить, соответственно, команды


Для перевода регистра в нижний нужно заметить «u» на «l»

Дописать что-то в начало каждого слова из словаря можно так


А так можно дописать слово в конец


Следующей командой можно добавить в начало число от 0 до 99 к каждому слову в словаре


Можно очистить словарь от значений, в которых не присутствует хотя бы 2 числа так


Это лишь некоторые примеры. Можно писать более сложные обработки на Python и других скриптовых языках. Но всегда нужно помнить, что создание качественного словаря и его нормализация под целевой протокол — важный этап при проведении тестирования на проникновение.

Программа для создания брут словаря "Rain Pass Creation" (Portable) (690 Kb)

Программа по указанным параметрам (вид символов, длина пароля) генерирует список всех возможных паролей с заданными характеристиками, сохраняет список в файл TXT.

Как пользоваться

Программа Portable - т.е. устанавливать не нужно, просто запускаете и всё.


Первым делом заходите в настройки, пункт "символы".

Ставьте галочки напротив символов которые вам нужны в паролях.


Заполняем поля

Число паролей - это ограничение количества паролей, которые будут сгенерированы - эта функция полезна на больших длинах пароля - т.к. скорость генерации зависит от мощи компа. (прога генерирует пароли на среднем компе со скоростью 1500-2000 паролей/сек, на мощном до 10000 в сек). Например, мне нужно сгенить не более 1.000.000 паролей, тогда пишите 1000000.
Если не знаете сколько вам нужно - пишите 999999999, либо повнимательней прочитайте следующий абзац))

Число символов - это длина генерируемого пароля. Т.е. если вы ставите, например, цифру 3, то прога сгенерирует вам 3х значные пароли.


Важно! полезная функция кнопка "Сосчитать". Перед тем как запустить генерацию - посчитайте сколько (штук) паролей получится! Если число устраивает - жмите кнопку "Принять" - и поле "Число паролей" заполнится само.
Так, например, из символов - цифры, лат. буквы и заглавные лат. буквы при длине пароля всего 3 символа получится - 287496 вараинтов! Откуда? - 10 цифр, 28 букв + ещё 28 букв = 66 символов. Длина 3 знака, поэтому 66 возводим в 3ю степень (т.е. в куб) = 287496. Если длина пароля 4 знака, то возводим в 4ю степень и т.д.

Для этого и нужно ограничение в кол-ве вариантов пароля.))

На среднем компе используйте макс длина пароля - до 10 символов, на мощном до 15. Иначе долго ждать.

После генерации жмите кнопку "Сохранить" и листинг со сгенерированными паролями сохраниться в TXT файл


Аудит ИБ

На текущий момент пароли остаются самыми популярным методом аутентификации. Атака перебора паролей по словарю также стара как мир и существует множество механизмов защиты от подобного вида атак. Однако возможны ситуации, когда брутфорс (bruteforce) весьма эффективен. Словарей паролей для брута можно найти огромное количество на просторах Интернета. Однако в них в большинстве случаев в них будут англоязычные слова, редко применяемые в России, например названия городов США, баскетбольных команд, американских имен и т.д.

В результате из полученных данных составляем список:

Далее объединяем оба списка в один и сохраняем wordlist.txt. Стоит отметить, что наш словарь составил лишь 84 слова и создан для примера. Понятно, что для эффетивного словаря необходимо куда большее колличество слов, например если словарь создается под определенную организацию необходимо указать все города присутсвия, выпускаемую продукцию, наименование используемых сервисов, структурных подразделений, список имен в соответствии с территориальным расположением (например в республике Башкортостан, помимо русских имен популярны такие как: Эмир, Амир, Шариф, Тагир, Самир, Рамазан), также крылатые фразы, профессиональный слэнг, текущие тренды, (например COVID19) и т.д.

Для примера снова вновь созданного wordlist.tx t , в котором после слова идёт от 2 до 4 цифр и в котором буквы замены на специальные символы.



В появившемся окне зададим значения от 1 до 9999 с нулями в каждой ячейке, чтобы в конце слова добилось 4 цифры



И в появившемся окне выберем необходимые символы:



Далее указываем интересующие нас символы:


После конфигурирования всех нужных правил нажимаем на кнопку Process, выбираем Full Wordlist и куда сохранить результаты формирования словаря. В результате получаем словарь из 2 519 748 слов, размером 31 MB.



Люби ИБ, уважай ИТ!

¯\_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

Читайте также: