u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口Hashcat号称是世界上最快的密码破解软件,可调用GPU进行密码破解,早在Hashcat 4.x版本就宣称可破解256个字符长度的密码,而且支持上百种算法,基本市面上所有的算法都支持。
Hashcat中有一种很强大的基于规则的攻击方式,利用不同的“规则”,可产生大量用来破解的密码,大大扩充破解字典,而且这些“规则”可以交叉利用,利用一些简单的字典就可衍生出大量复杂但规律的密码以方便破解。
只要有效利用Hashcat的规则,就可对长度超过8个字符的密码进行高效破解,但是,尝试编写自己的规则可能会令人生畏。因为它太过灵活,可配置性很高,需要了解很多知识。官方提供了一些规则的说明,在此我也会提供一些自己的总结。
我们要做的第一件事就是学习如何测试我们自己编写的规则。首先,创建一个包含spring的简单字典:
创建一个新文件,这将是我们的规则文件(我命名为test.rule)。在规则文件中输入c并保存。注意,c规则将单词的第一个字母大写,其余字母小写,因此spring应该成为Spring。测试如下:
请注意其中的大写规则,如果字符串为!spring或!SPRING,处理后仍然是!spring,因为这个规则对数字或特殊字符(第一个字符)没有任何作用。
可能我们最有用的规则是将字符附加到单词的开头或结尾。让我们看看以下这个规则,它会对字典中的密码先全部小写,再在末尾追加2019:
其中c和$之间的空格只是为了便于阅读。如果在我们的test.rule文件中保存以上规则,然后运行它,将会得到:
将字符添加到字符串的开头则有点不同,乍一眼可能看起来很奇怪。例如,要将123添加到单词的开头,则规则为:
你需要先反转要附加的字符串。如果你将上述规则添加到规则文件中,然后运行,就可以获得123spring。如果你想和其他规则结合起来,那么你需要非常小心。因为,如果你的规则是^3^2^1 c,那么输出仍然是123spring,因为此时首字符是1。要获得123Spring的输出,需要使用规则c ^3^2^1。
在需要设定很长的密码时,人们通常会通过复制来解决这个问题。而且我发现这个重复次数经常是2次或是3次,再配合上述的附加规则生成的密码往往非常有效。以下是针对“spring”一词中使用重复规则的一些示例:
还有很多其他规则可以用来构建你的字典,但上述几个应该就能解决你的大部分问题(根据我的经验)。
下一步,我们需要对我们的规则有一个明确的要求,它通常涉及某种模式。例如,在某次破解密码的过程中,我们率先知道密码是有一个固定的格式的,例如像Spring2019那种模式,第一个字符大写,后面字符小写,最后以数字结尾,通常是年份或日期。因此,如果我们想要生成这样模式的字典,我们需要将第一个字符大写,然后追加年份。最终规则看起来就像这样:
但是如果我们想要生成很多年份,而不仅仅是2019年呢?好吧,我们必须遍历写出另我们想要的年份所对应规则。它们可能看起来像下面这样:
但后来你又想在最后添加一个特殊字符,因为你记得人们经常也这样做,例如问号和感叹号,于是你写了更多的规则:
此时,你可能会强迫自己停止思考,因为这样下去没完没了。因此,你可能需要一些自动化的方法。在继续下一章自动规则生成前,如下是我经常使用的一些规则以及示例:
利用脚本去生成脚本通常是在明确知道所需的规则类型的情况下,为了减轻手动操作,节约时间而执行的操作。
我自己编写了一个脚本文件,能将各种格式的日期附加到每个规则中,并且还能在每个字符串的开头或结尾添加字符。我能使用包括00-99,0101-13131,01甚至0101中的所有内容,同时又排除不是日期的数字,最后还拥有足够的灵活性。我把这个脚本放在date_rule.py。
我不会在此深入代码的工作原理,你只需知道它能构建一个复杂的规则文件,使得最后生成的密码既包含日期,又有指定的字符串。
以上这些只需要一点创造力和编程能力即可完成。如果你不擅长编程,那就从现在开始锻炼吧。
Hashcat团队中的某个开发人员开发了一个名为maskprocessor的工具,可以让你轻松创建复杂的规则文件。可以点击这里下载。
我们可以通过Maskprocessor利用掩码的方式帮助我们编写混合了众多规则的规则文件。下面是如何使用maskprocessor生成规则文件的示例,最后生成的规则文件的具体作用分别是:1.为字典中的每个密码的结尾附加一个任意字符(列出所有情况);2.为字典中的每个密码的结尾附加两个任意字符(列出所有情况);3. 在结尾附加一个任意字符,两个任意字母或特殊字符(列出所有情况)
虽然看起来更加简洁了,但它并没有赋予我们新能力。但是,我们还是可以发现它有两种非常重要的能力:
1)我们可以在密码的两侧放置掩码。例如,假设您想要将数字(?d)添加到字符串的开头,将任何字符(?a)添加到结尾,包括所有情况。生成这种规则的命令如下:
也许你还想先首字母大写,再复制一次,然后在开头添加数字,最后在结尾添加任何字符,生成这样的规则文件的命令如下:
你可以进行你想要的任何操作,当然,产生的规则越多,攻击所需的时间就越长。以下是我最喜欢的几个规则生成命令(注意:可能需要很长时间):