Генерация и модификация словарей по заданным правилам
Для генерации словарей существуют очень гибкие в настройке программы maskprocessor и Crunch. Они позволяют создать любые словари, которые можно описать довольно сложными правилами или определённым шаблоном, например, словари с:
- номерами телефонов
- датами рождений
- восмисимвольными паролями, в котором встречаются буквы и цифры
- пароли, начинающиеся на определённое слово, после которого идёт определённое количество цифр
- пароли, в которых первыми двумя символами являются заглавные буквы, затем идёт 4 прописных буквы, затем восемь цифр, затем два символа шестнадцатеричного числа
- и т. д.
Вариантом можно придумать огромное количество, но так или иначе они сводятся к описанию в какой позиции какой символ должен находиться.
Если взять более абстрактные конструкции, например:
- пароль из имён, который завершается несколькими числами,
- словарь популярных слов, в которых символы «a» заменены на «@»
- словарь, в котором изменён регистр некоторых букв
- бранные слова, в которых перед словом помещена определённая строка
- и т. д.
Для выполнения подобных задач создана программа Mentalist. Она умеет строить «цепи» действий — можно задать любую логику обработки готовых словарей или модификации заданной строки. У программы графический пользовательский интерфейс, и ещё она работает как в Linux, так и в Windows.
Как установить Mentalist
Установка достаточно простая, независимо от того — решили вы использовать готовый бинарный файл или установить из исходных кодов. Подробности об установке смотрите на странице программы: https://kali.tools/?p=4862.
Как использовать Mentalist
Для понимания работы Mentalist, необходимо рассмотреть основные концепции программы.
Цепь
Mentalist генерирует списки слов, связывая вместе узлы, которые образуют цепочку. Первый узел в цепочке всегда является узлом Base Words (базовые слова). Когда цепочка обрабатывается, каждое базовое слово переходит к следующему узлу в цепочке, который может изменить слово, оставить его прежним или создать больше его вариантов. Наконец, результаты записываются в выходной файл в виде полного списка слов или правил для создания эквивалентного списка.
Узлы
Есть 5 типов узлов. Каждый тип имеет свой собственный набор атрибутов, который может быть добавлен в любой комбинации. Атрибуты узла определяют его функцию. Кроме того, атрибуты в одном и том же узле являются взаимоисключающими друг от друга.
Некоторые узлы могут создавать более одного выходного слова для каждого входного слова. В таких случаях только набор уникальных выходных слов для базового слова передаётся следующему узлу. Другими словами, каждый узел выполняет дедупликацию для каждого базового слова.
Тип | Описание |
---|---|
Base Word (Базовые слова) | Всегда первый узел в цепочке Mentalist'а. Он предоставляет начальные слова, которые должны обрабатываться каждым узлом при прохождении по цепочке. |
Case (Регистр) | Изменяет регистр букв в слове. Каждый атрибут, добавленный к узлу Case, производит различную вариацию входного слова, за исключением атрибута No Case Change, который пропускает исходное слово без изменений. |
Substitution (Замена) | Заменяет символы в слове. Как и в случае с регистром, каждый атрибут, добавленный к узлу замещения, создаёт другое выходное слово, которое подлежит дедупликации. Атрибут No Substitution даёт неизмененное входное слово. |
Append (Добавить) | Узлы Append добавляют строки в конец входного слова. Большинство атрибутов Append создают много вариантов входного слова. Например, атрибут Numbers: Small (0-100) добавляет 101 выходное слово для каждого входного слова. |
Prepend (Предварить) | Узлы Prepend добавляют строки в начало входного слова. Его атрибуты и функциональность в остальном идентичны «Append». |
Атрибуты
Каждый узел имеет возможность выполнять одно или несколько действий над входными словами. Эти действия указаны в атрибутах каждого узла. Атрибуты в пределах одного и того же узла взаимно исключают друг друга, и, как следствие, узел не может иметь повторяющихся атрибутов.
Атрибуты узлов
Base Words (базовые слова
Атрибут | Описание |
---|---|
No Words (без слов) | Предоставляет пустую строку |
Custom File… (пользовательский файл) | Указанный файл со списком слов |
Custom String… (пользовательская строка) | Указанная строка |
English Dictionary (словарь английских слов) | Английский словарь взятый из файла слов Unix |
Common Names (распространённые имена) | |
Men (мужские) | 1,000 самых популярных мужских имён в США |
Women (женские) | 1,000 самых популярных женских имён в США |
Pets (домашние любимцы) | 1,200 самых популярных имён домашних животных в США |
Other (другое) | |
Slang & Expletives (слэн и оскорбления) | Словарь слэнговых слов и ругательств |
Months & Seasons (месяца и сезоны) | Список месяцев и сезонов |
Case (изменение регистра)
Атрибут | Описание | Ввод | Результат |
---|---|---|---|
No Case Change (без изменения регистра) | Не выполняет действий | TeSt | TeSt |
Lowercase (нижний регистр) | |||
Lowercase All (перевести все в нижний регистр) | Переписать всё слово строчными буквами | TeSt | test |
Lowercase First, Upper Rest (первая буква в нижнем регистре, остальные - в верхнем) | Сделать первую букву строчной, а остальные - заглавными | TeSt | tEST |
Uppercase (верхний регистр) | |||
Uppercase All (все буквы в верхнем регистре) | Переписать всё слово заглавными буквами | TeSt | TEST |
Uppercase First, Lower Rest (первая в верхнем регистре, остальные в нижнем) | Записать первую букву заглавной, а все остальными - строчными | TeSt | Test |
Toggle Nth…(поменять регистр каждой N-ной буквы) | Поменять регистр каждого N-ного символа | TeSt (N=2) | TESt |
Substitution (подстановка)
Атрибут | Описание | Ввод | Результат |
---|---|---|---|
No Substitution… (без подстановки) | Не выполняет действий | test | test |
Replace All Instances… (заменить все совпадения) | Заменяет все экземпляры указанных символов |
test ('t'→'+') |
+es+ |
Replace First Instance… (заменить первое совпадение) | Заменить первый экземпляр указанных символов |
test ('t'→'+') |
+est |
Replace Last Instance… (заменить последнее совпадение) | Заменить последний экземпляр указанных символов |
test ('t'→'+') |
tes+ |
Если слово не соответствует критериям замены, оно будет выведено без изменений.
Примечание: заменить первый экземпляр и заменить последний экземпляр несовместимы с правилами Hashcat и John. Если вы попытаетесь сохранить правила, используя один из этих атрибутов в вашей цепочке, Mentalist спросит, хотите ли вы заменить эти атрибуты на «Заменить все экземпляры», что является поддерживаемым правилом.
Дополнительные параметры замещения
Замена One at a Time заменит один заменитель за раз.
Подстановка All at Once заменит все символы одновременно.
Опция | Ввод | Подстановка | Вывод |
---|---|---|---|
One at a Time (одна замена за проход) | apple |
'a'→'@' 'e'→'3' |
@pple appl3 |
All at Once (все за раз) | apple |
'a'→'@' 'e'→'3' |
@ppl3 |
Append / Prepend
Атрибут | Описание |
---|---|
No Append / Prepend (не добавлять) | Не выполняет действий |
Words (слова) | |
Custom File… (пользовательский файл) | User-specified custom wordlist file |
Custom String… (пользовательская строка) | User-specified custom string |
English Dictionary (английский словарь) |
English dictionary taken from the Unix words file
|
Common Names (распространённые имена) | |
Men (мужские) | 1,000 most common mens' names in the US |
Women (женские) | 1,000 most common womens' names in the US |
Pets (домашние животные) | 1,200 most common pets' names in the US |
Other (другое) | |
Slang & Expletives (слэнг и ругательства) | Wordlist of US slang and expletives |
Months & Seasons (месяца и сезоны) | Wordlist of months and seasons |
Numbers (числа) | |
User Defined… (заданные пользователем) | User-specified numbers (From, To, 0-padding) |
Small: 0-100 | Numbers ranging from 0 to 100 |
Basic: 0-1000 | Numbers ranging from 0 to 1000 |
Full: 0-10000 | Numbers ranging from 0 to 10000 |
Years: 1950-2025 | Numbers ranging from 1950 to 2025 |
Dates… (даты) | Dates: From Year, To Year, Format (e.g. mmddyy), Leading 0 |
Special Characters… (специальные символы) | Special characters (one at a time only) |
Area Codes (US) (телефонные коды США) | |
By State (по штатам) | Area codes by state |
By City (по городам) | Area codes by city (largest 50 available) |
Zip Codes (US) (географические индексы США) | |
By State (по штатам) | Zip codes by state |
By City (по городам) | Zip codes by city (largest 50 available) |
Вывод результатов (сохранение словарей и правил)
Полный список слов
Эта опция выводит весь список слов, как указано цепочкой. Информацию о примерном количестве слов и размере файла можно найти в верхней части интерфейса Mentalist.
Hashcat/John Rules
Для автономного взлома бывают случаи, когда полный список слов слишком велик для вывода его целиком в файл. В этом случае имеет смысл выводить в правила, чтобы Hashcat или John могли программно сгенерировать полный список слов.
Обратите внимание, что атрибуты первой и последней замены не совместимы с Hashcat/John. Когда цепочка содержит эти атрибуты, сохранение в Hashcat/John предупредит, что First или Last будут заменены на All в выходных данных правил.
Только базовые слова
Эта опция вывода позволяет вам вывести базовые слова в один файл, который будет использоваться с вашими правилами. Это полезно, если у вас есть несколько источников базовых слов (несколько атрибутов базовых слов).
Повторное использование правил
Сохранение Цепей
Mentalist может сохранить цепочку файлов для дальнейшего использования. Чтобы сохранить файл цепочки, перейдите в меню Load/Save→Save Chain, который спросит у вас, где вы хотите сохранить файл. Файл будет иметь расширение .mentalist.
Загрузка Цепей
Mentalist может загружать файлы цепочек, щёлкнув Load/Save→Load Chain. Если файл цепочки ссылается на указанный пользователем файл, которого нет в текущей системе, Mentalist поместит красную рамку вокруг этого атрибута файла и предотвратит обработку. Чтобы это исправить, нажмите кнопку Fix… рядом с файлом и укажите вместо него локальный файл.
Примеры использования Mentalist
1.
Предположим, нам нужно создать словарь на основе существующего списка слов, добавив к каждому слову от 2 до 4 цифр и в котором все буквы «a» заменены на «@», а буквы «s» заменены на «$».
Запускаем программу:
mentalist
Обратите внимание, что по умолчанию уже выбран список английских слов. Удаляем его, для этого нажимаем на знак «-».
Затем нажимаем знак «+» рядом с «Base Word», выбираем «Custom File…» и указываем желаемый для изменения словарь.
Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Append».
Затем нажимаем знак «+» рядом с «Append», затем выбираем «Numbers» и затем «User Defined…». Устанавливаем нужные нам параметры добавляемых цифр.
Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Substitution».
Затем нажимаем знак «+» рядом с «Substitution», затем выбираем «Replace All Instances…», ставим нужные галочки и переключаем на «All together».
Обратите внимание, что если вместо All together выбрать One at a time, то будет делаться замена сначала первого символа и затем это слово будет отправляться далее по конвейеру, затем будет делаться замена во втором символе и слово вновь будет отправлено далее по конвейеру. То есть опция One at a Time увеличивает количество новых слов кратно — в соответствии с количеством замен.
Для сохранения нового словаря нажимаем Process, затем выбираем Full Wordlist.
2.
Допустим, теперь нам нужно создать словарь на основе женских имён, в которых буквы «a» заменены на символ «@». Причём нужно, чтобы были сохранены как оригинальные имена, так и с заменой символов. Затем после имени идёт тире. Затем вставляется дата в формате ДДММГГГГ.
Запускаем программу:
mentalist
Обратите внимание, что по умолчанию уже выбран список английских слов. Удаляем его для этого нажимаем на знак «-».
Затем нажимаем знак «+» рядом с «Base Word», выбираем «Common Names», затем «Women».
Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Substitution…».
Вновь нажимаем знак «+» рядом с «Substitution», затем выбираем «Replace All Instances…», ставим нужные галочки и переключаем на «All together».
Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Append».
Затем нажимаем знак «+» рядом с «Append», затем выбираем «Special Characters…» и ставим галочку напротив символа «-»:
Теперь вновь нажимаем знак «+» рядом с «Append», затем выбираем «Numbers» и затем «Dates…». Устанавливаем желаемый диапазон и формат:
Получаем следующий результат, обратите внимание на примерное количество слов в новом словаре и размер словаря в мегабайтах:
Для сохранения нового словаря нажимаем Process, затем выбираем Full Wordlist.
Заключение
Итак, Mentalist это удобная и простая в обращении программа для создания словарей по более абстрактным правилам, чем maskprocessor и Crunch. В первую очередь она удобна для модификации уже существующих словарей под специфичные условия. При этом она не сможет заменить maskprocessor и Crunch, поскольку они более гибки в создании словарей на основе правил расположения символов в определённых позициях.
Связанные статьи:
- Продвинутые техники создания словарей (99.3%)
- Программы для создания словарей (74.4%)
- Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows (68%)
- Как создать словари, соответствующие определённым политикам надёжности паролей (с помощью Атаки на основе правил) (60.9%)
- Как ускорить создание словарей с паролями (60.9%)
- Автоматизированный взлом Wi-FI WEP с Besside-ng и Wesside-ng (RANDOM - 0.7%)