
Генератор распространенных шаблонов паролей на основе списка строк
$ git clone https://github.com/localh0t/m4ngl3m3
$ cd m4ngl3m3
$ ./main.py
usage: main.py [-h] [-fy FROM_YEAR] [-ty TO_YEAR] [-sy] [-nf NUMBERS_FILE]
[-sf SYMBOLS_FILE] [-cf CUSTOM_FILE] [-sbs] [-sap]
[-mm MUTATION_METHODS]
MUTATION_MODE STRINGS_FILE OUTPUT_FILE
Common password pattern generator using strings list
positional arguments:
MUTATION_MODE Mutation mode to perform: (prefix-mode |
suffix-mode | dual-mode)
STRINGS_FILE File with strings to mutate
OUTPUT_FILE Where to write the mutated strings
optional arguments:
-h, --help show this help message and exit
-fy FROM_YEAR, --from-year FROM_YEAR
Year where our iteration starts (default:
2015)
-ty TO_YEAR, --to-year TO_YEAR
Year where our iteration ends (default:
2020)
-sy, --short-year Also add shorter year form when iterating
(default: False)
-nf NUMBERS_FILE, --numbers-file NUMBERS_FILE
Numbers prefix/suffix file (default:
./files/numbers/numbers_set2.txt)
-sf SYMBOLS_FILE, --symbols-file SYMBOLS_FILE
Symbols prefix/suffix file (default:
./files/symbols/symbols_set2.txt)
-cf CUSTOM_FILE, --custom-file CUSTOM_FILE
Custom words/dates/initials/etc file
(default: None)
-sbs, --symbols-before-suffix
Insert symbols also before years/numbers/
custom (when in suffix-mode or dual-mode)
(default: False)
-sap, --symbols-after-prefix
Insert symbols also after years/numbers/
custom (when in prefix-mode or dual-mode)
(default: False)
-mm MUTATION_METHODS, --mutation-methods MUTATION_METHODS
Mutation methods to perform (comma
separated, no spaces) (valid: see
MUTATION_METHODS.md)
(default:
normal,uppercase,firstup,replacevowels)
Здесь мы задаём, с какого года скрипт должен начинать и заканчивать перебор. Часто люди включают текущий год для увеличения энтропии. Поскольку пароли могут быть устаревшими или включать годы из (близкого) будущего, мы будем добавлять их в виде диапазона. Для онлайн- сред обычно используется консервативный подход с диапазонами порядка (-1, +1) или (-2, +2). Для офлайн- сред диапазон может быть шире: (-20, +5) или даже (-50, +10). Пример вывода:
password2017
[...]
password2018
[...]
password2019
При переборе годов также добавлять их сокращённую двузначную форму. Пример вывода:
password17
[...]
password18
[...]
password19
В этом аргументе мы выбираем файл с числами, которые люди часто добавляют к своим паролям. По умолчанию я включил 6 наборов, самый большой — 6, остальные — подмножества предыдущего. Числа из первых наборов (1,2…) встречаются с большей вероятностью, чем те, что есть только в последних наборах (…5,6). Для онлайн- сред обычно используют первые три набора, для офлайн- — последние. По умолчанию скрипт использует набор номер 2. Пример вывода:
password1
[...]
password123
[...]
password1234
В этом аргументе мы выбираем файл с символами, которые люди часто добавляют к паролям. Набор номер 1 — самый короткий, набор номер 6 — самый длинный. Символы из первых наборов (1,2…) встречаются с большей вероятностью, чем те, что есть только в последних наборах (…5,6). По умолчанию скрипт использует набор номер 2. Пример вывода:
password123!
[...]
password2018?
[...]
password1234.
Здесь мы добавляем всё остальное, что знаем о наших целях (и что не считается «основой» самого пароля). Дайте волю творчеству! Это могут быть инициалы компании, даты рождения, особые даты… конкретные годы, короткие ключевые слова и т.д. Эти пользовательские строки обрабатываются так же, как годы/числа. Пример вывода:
passwordABC
[...]
password01011980!
[...]
password.admin
В этом параметре мы выбираем, как инструмент будет работать при изменении строк. Можно выбрать один из трёх режимов:
Файл, содержащий строки для преобразования. Если вы, например, проводите пентест и не знаете, с чего начать, рекомендую использовать инструмент вроде CeWL для сканирования сайта компании и сохранить наиболее часто встречающиеся слова (включая, конечно, название компании).
Просто файл, в который мы хотим записать преобразованные строки.
Когда этот флаг включён и инструмент работает в режиме suffix-mode или dual-mode, скрипт также добавляет символы перед годами/числами/пользовательскими строками. Пример вывода:
password2018!
[...]
password!2018
[...]
Когда этот флаг включён и инструмент работает в режиме prefix-mode или dual-mode, скрипт также добавляет символы после годов/чисел/пользовательских строк. Пример вывода:
!2018password
[...]
2018!password
[...]
В этом параметре мы задаём, какие методы преобразования будут применяться.
Методы преобразования — это базовые изменения, выполняемые перед
началом перебора годов/чисел/символов/пользовательских строк. Вы можете
выбрать любое количество методов. Список всех допустимых методов см. в
файле MUTATION_METHODS.md.
По умолчанию m4ngl3m3! работает со следующими методами: Normal, UpperCase,
FirstUp и ReplaceVowels.
Примеры базового использования см. в файле USAGE_EXAMPLES.md
См. LICENSE.md