Генерация и модификация словарей по заданным правилам


Для генерации словарей существуют очень гибкие в настройке программы 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, поскольку они более гибки в создании словарей на основе правил расположения символов в определённых позициях.



Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *