CPU破解和GPU破解的差距
必须先清楚hashcat的GPU破解和aircrack的CPU破解,两者哪个快,快多少。
通过hashcat -b我们可知各类哈希类型在hashcat中的每秒哈希数,在这主要以其中每秒哈希数值最小的WPA2为对比,可以此为标准知道CPU破解和GPU破解的差距。
图中显示WPA2类型的哈希在hashcat中速度为每秒400次左右的哈希,1000kh/s=1mh/s(每秒一千次哈希)。
首先控制变量,使用字典破解。aircrack-ng破解(cpu破解)可知每秒尝试密码为5000次左右(5007k/s)。
hashcat在字典破解中,其字典每秒尝试密码数=restored.pinot的字典数/进行的时间。
从图中计算得出,4187487/44=每秒96170次左右,hashcat字典破解速度是Cpu破解19倍。
然后再对比hashcat中,掩码破解的速度。
掩码破解的速度为1835008/47=每秒39042次左右,为CPU破解的8倍,为GPU下字典破解的1/2,掩码破解正是用时间换了空间。
从中可以知道,GPU破解始终优于CPU破解,从hashcat -b的表中可知,除了WPA2-PBKDF2这类的加盐哈希,hashcat在处理其他类型的哈希时,都有不俗的表现。
加盐哈希,hashcat如何使用GPU加速破解
那如何破解WPA2类型哈希,既使有GPU加速,也要付出很大代价,有几种选择:
1.字典破解
使用足够完整的字典,使得GPU破解时得到最大速度,占用最大空间,得到最小时间,先看下完整的字典有多大,使用kali自带的crunch生成字典。
得到8位所有小写字母的组合,将占用空间为1750GB!!!每多一位就是26倍,这样还不算包括数字+大写字母+特殊符号,相信已经能让人望而生畏了。一共是26的8次208,827,064,576个密码,粗略算了txt大小及密码数,与之匹配。
2.掩码破解
正因为纯字典需要的巨量空间,需要考虑用时间换空间的掩码破解,这将完全摆脱字典的依赖,但相应的损失一半的破解速度,似乎是划算的,但更重要的问题是,即使保留了机器能实现的最大速度,仍需面对海量数据,这使得破解需要的时间是巨大的,甚至时间是字典破解的一倍。
3.彩虹表
有没有更好的方法,聪明的hacker想出了彩虹表,彩虹表就像中华字典的字母表一样,根据既定的规律,查找内含的明文,一张完整的彩虹表大的也有百GB,常见的彩虹表,这使得虽然损失了空间,但是极大的提升破解的速度,既空间换时间,但这并没有持续多久,哈希加盐的出现,使得彩虹表不再生效,变量的添加使得不存在预先制作好的彩虹表可供查找,破解就无法避免需要进行哈希计算,这让hacker们只能使用像字典破解-掩码破解-规则破解的方式去尝试破解密码,问题再次归于算力。
4.社工字典
当只能使用依靠算力破解的时候,就不能避免空间问题和时间问题,怎样才能更快的破解呢?速度越快、空间越小,满足两者使得破解更快,于是就必然出现依靠社会工程学的字典破解,保留了字典破解的最大速度,同时更高效的密码占用更少的空间,提高破解速度的同时提高破解成功率,虽然这必然导致字典本身是不完整的,更多的密文成为不可解。
5.Pyrit与加盐hash
对于聪明的hacker而言,他们似乎并不满足于社工字典这种靠运气的方式,于是彩虹表的原理换了一种新的形式出现了,hacker创造了工具Pyrit来处理加盐的问题,根据变量生成类似彩虹表的缓存表,这种动态的“彩虹表”显然没有静态彩虹表好用,但Pyrit不失为一种对加盐哈希的挑战。
请登录/注册后在FreeBuf发布内容哦