git clone https://github.com/hashcat/maskprocessor.git
面膜处理器 MaskProcessor是一种功能强大的高级字典生成器,它支持对每个位置进行字符集配置,以实现比传统暴力破解更强大的Mask攻击。研究人员开发MaskProcessor的原因是传统的暴力破解技术在现有的网络安全环境中已经不再适用,社区希望能够减少密码的密钥空间,使其更加有效。下面我们举一个例子来说明。假设我们需要破解的密码是”Julia1984″。在传统的暴力破解攻击中,我们需要一个包含所有大写字母、小写字母和数字的字符集字典文件,即混合所有字母和数字的字典。由于待破解密码的长度为9个字符,我们需要尝试的密码组合数量将达到62^9(13,537,086,546,263,552)个。假设我们的密码破解速率为100M/s,那么破解这个密码将需要超过4年的时间。而在密码Mask攻击中,也就是使用MaskProcessor时,我们首先要了解人们设计密码的方式。上述待破解的密码符合一种简单但常见的模式,即”名字+年份”。因此,我们可以将攻击模式配置为只在第一个位置重复大写字母,而大写字母只出现在第二位或第三位的情况非常罕见。因此,在使用Mask攻击技术时,我们可以将密钥空间减少到522,626,262,610,610,101,010(237,627,520,000)种密码组合。如果我们以相同的速度进行密码破解,只需要40分钟就可以完成任务。
工具下载
研究人员可以使用以下命令将项目源码克隆到本地:
?l = abcdefghijklmnopqrstuvwxyz u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?s =«空格»!“#$%&'()* +,-。/ :; ?@ [] ^ _`{|}〜 ?a =?l?u?d?s b = 0x00-0xff
项目编译
只需在项目源码目录下运行make命令即可。
技术细节
如果待破解密码的长度为8个字节,那么我们的掩码最多必须由8个占位符组成。一个占位符是一个简单的符号,可以通过使用占位符来配置预设密码引擎的字符空间。占位符可以是自定义字符集变量、内置字符集变量或静态字符。变量由”?”符号后跟一个内置字符集(l、u、d、s、a)或自定义字符集变量名(1、2、3、4)组成。静态字符在这里不是简单地用字符表示,例如,如果我们想要一个静态字符”?”,我们必须写成”??”.
内置字符集
--custom-charset1 = CS --custom-charset2 = CS --custom-charset3 = CS --custom-charset4 = CS
l ?二 ?l?l?l ?l?l?l?l ?l?l?l?l?l ?l?l?l?l?l?l ?l?l?l?l?l?l?l ?l?l?l?l?l?l?l?l
自定义字符集
这里我们需要使用四个命令行参数来配置四个自定义字符集。这些命令行参数有四个类似的缩写,分别是-1、-2、-3和-4。您可以直接在命令行中指定字符。
密码长度增量
Mask攻击中必须指定密码长度。例如,如果我们使用的掩码是”?l?l?l?l?l?l?l?l”,那么我们只能破解长度为8个字符的密码。但是,如果我们想要尝试破解长度为7个字符的密码,就需要重复执行类似的攻击行为,并且每次都要在掩码上方添加”–increment”标签,以实现密码空间的自动增加。
命令:?l?l?l?l?l?l?l?l 密码空间:aaaaaaaa-zzzzzzzz 命令:-1?l?d?1?1?1?1?1 密码空间:aaaaa-99999 命令:密码? 密码空间:password0-password9 命令:-1?l?u?1?l?l?l?l?l19?d?d 密码空间:aaaaaa1900-Zzzzzz1999 命令:-1?dabcdef -2?l?u?1?1?2?2?2?2?2 密码空间:00aaaaa-ffZZZZZ 命令:-1 efghijklmnop?1?1?1 密码空间:eee-ppp
性能分析
目前,MaskProcessor可以算是世界上速度最快的字典生成器。以下是一些主流系统架构的测试结果:
AMD Athlon™64 X2双核处理器3800+:每核心75.80 M/s
AMD FX™-6100六核处理器:每核心138.20 M/s
英特尔(R)至强(R)CPU X5650 @ 2.67GHz:每核心97.42 M/s
英特尔®i7-920:每核心71.50 M/s
为了避免测试时出现异常情况,所有输出数据都将存储在/dev/null目录中。
工具使用示例
以下命令可以创建相应的预定密码空间: