哈希猫(Hashcat)是一款在渗透人员、系统管理员,甚至是网络罪犯和网络间谍人员中广泛使用的口令破解工具。
为什么要使用口令破解工具
口令破解与口令猜测不同,后者的尝试次数极为有限,通常在三次到五次之后就会被网站暂停登录。而对于已经拥有加密口令(哈希)的人,通常会破解这些哈希以恢复口令。
在数据泄露泛滥的今天,明文口令存储的情况已经十分罕见,业界普遍使用单向函数的哈希加密。它的优点在于瞬间加密,但如果想暴力破解将函数逆向出来,以目前的计算机算力而言,在我们有生之年几乎是不可能的。(数世咨询:王小云教授的破解不是指可以还原出原始口令,而是可以伪造与原始口令相同的哈希值)但还是有一些无需借助暴力破解的其他方法,可以将原始口令恢复出来。哈希猫就是其中一种工具。
除了犯罪和间谍活动会涉及到以外,口令破解还有着许多合法的其他用途。例如,系统管理员会将其用于检测用户口令的安全性,而渗透测试人员则利用破解口令在网络中横向移动或者提权。如果哈希猫能破解的口令,攻击者当然也可以。和漏洞扫描工具一样,安全人员和攻击者都在使用以发现漏洞,但前者是为了防护,后者是为了攻击。
哈希猫的实现原理
这种工具得以实现的原理是利用人类行为的可预测性,为了使用方便人们往往会设置一些简单或是有规律的口令。哈希猫首先会猜测一个口令,然后进行哈希加密,最后与真正口令的哈希值进行比对。两者匹配的话,即得到原始口令。如果不匹配,则继续猜测。这里的猜测有几种典型的模式,包括字典攻击、组合攻击、掩码攻击和基于规则的攻击等。此外,如果你真得有闲置设备和时间耐心的话,哈希猫也能够基于GPU的算力来进行暴力破解。下面我们来逐一看看这几种攻击模式。
1)字典攻击
首先给出一个字典地址,https://www.scrapmaker.com/data/wordlists/dictionaries/rockyou.txt,这个txt文件包含了1400多万个口令,并按照使用频率进行了排序。既有年年都排在口令使用前列的123456、password、iloveyou等口令,也有大小写字母加数字、字符,如ie168、xCvBnM、7iVamos!等非常用口令。想找的话,网上有非常多的免费字典可以免费使用,并且分各种不同的特定语言种类。
2)组合攻击
有些人喜欢把两个单词组合起来形成口令,或者在其中加入一些符号,比如blue-car、yellowbike!、you@me等等。
3)掩码攻击
掩码攻击针对的是根据某种特定格式变换的口令,类似于首字母大写的单词或尾部带个数字这样的格式,如Hello123、Zhangwei123这样的类型。Hashcat通过替换单词这样的格式(掩住某个口令的组成部分不断替换尝试),可以大幅度降低猜解的次数。这里的大幅度降低可以具体解释一下:
如果是暴力破解,长度为9个字母或字符的口令,尝试次数最大可达到62的9次方,以每秒尝试100万次的速率来计算,尝试完所有的组合需要四年的时间。但如果根据模式来尝试(前提是有规律,比如首字母大写的单词加数字),只需40分钟足矣。
4)基于规则攻击
很简单,就是基于对猜测对象的了解,综合以上所有方法,通过修改函数、裁剪或扩展单调,跳过不大可能的选择等方法进行编程式猜解。哈希猫的官方网站这样描述基于规则的攻击:
“基于规则的攻击是所有攻击模式中最为复杂的攻击手法,如同专门为口令生成而设计的编程语言,涉及到函数修改、参数调整、条件运算等编程的基本规则。因此,基于规则的攻击堪称最为弹性、精准和有效的攻击模式。”
5)暴力破解
当上述攻击模式全部尝试完也无果的情况下,还是需要祭起暴力破解的大旗。这个时候我们所能做的,就是期待运气。或者,量子计算?
声明:本文来自数世咨询,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。