$ 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
通用密码模式生成器,基于字符串列表
positional arguments:
MUTATION_MODE 要执行的变异模式:(prefix-mode |
suffix-mode | dual-mode)
STRINGS_FILE 包含待变异字符串的文件
OUTPUT_FILE 写入变异后字符串的文件
optional arguments:
-h, --help 显示此帮助信息并退出
-fy FROM_YEAR, --from-year FROM_YEAR
迭代开始的年份(默认:
2015)
-ty TO_YEAR, --to-year TO_YEAR
迭代结束的年份(默认:
2020)
-sy, --short-year 迭代时也添加更短的两位年份形式
(默认:False)
-nf NUMBERS_FILE, --numbers-file NUMBERS_FILE
数字前缀/后缀文件(默认:
./files/numbers/numbers_set2.txt)
-sf SYMBOLS_FILE, --symbols-file SYMBOLS_FILE
符号前缀/后缀文件(默认:
./files/symbols/symbols_set2.txt)
-cf CUSTOM_FILE, --custom-file CUSTOM_FILE
自定义词语/日期/缩写等文件
(默认:None)
-sbs, --symbols-before-suffix
在年份/数字/自定义内容之前也插入符号
(当使用 suffix-mode 或 dual-mode 时)
(默认:False)
-sap, --symbols-after-prefix
在年份/数字/自定义内容之后也插入符号
(当使用 prefix-mode 或 dual-mode 时)
(默认:False)
-mm MUTATION_METHODS, --mutation-methods MUTATION_METHODS
要执行的变异方法(逗号
分隔,无空格)(有效方法参见
MUTATION_METHODS.md)
(默认:
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