介绍
hashcat是用来做密码破解的一个工具,支持多种类型hash的暴破,例如windows账户的密码ntlm。
破解分两种情况,一种在线的,即实时的不断的去尝试登录服务。一种离线的,把hash拿到本地,根据明文加密去不断的匹配。
hashcat支持在线和离线,支持GPU使用。
安装
hashcat在kali中自带,也可以自己手动安装在windows、linux和mac下,地址如下:
https://github.com/hashcat/hashcat/
掩码暴破
以一个命令来记录,命令如下:
hashcat -m 1000 -a 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ?a?a?a?a?a?a?a?a -o found.txt
先看下m参数,m指定要暴破的hash类型,1000就是代表ntlm hash,而hashcat支持很多种hash类型,目前最新版是399,看了下kali是三百二十多,更新到最新版是399,所支持的hash类型可以通过help参数查看:
1000为ntlm hash:
a参数指定破解模式,3代表的是掩码攻击,其实就是字母数字特殊符号进行组合,所支持模式如下:
0:代表的是字典攻击。
1:代表的是组合模式。
3:上面说的掩码形式。
6:字典加掩码。
7:掩码加字典。
9:关联攻击。
?a参数:?a和掩码配合,即?l?u?d?s,luds意思如下:
l是小写字母,u是大写,d是数字,s是特殊符号,上面命令写了8个?a,代表用luds四种类型组合出8位密码进行暴破。
o参数就是把正确的结果保存到文件中。
按照上面的组合,共94个字符,8位密码的话,即94的8次方,共以下次数:
掩码拓展
这时渗透组丢过来一组ntlm hash,比较多,我们需要简单处理一下去下重,这里以之前ntds获取的hash为例:
但是我们不知道密码的位数,渗透组说话了,从之前获取到的密码看,8位几率很高,先试试8位吧,特殊符号常用的就是!@#.这四个,那针对这个情况,列了以下命令:
hashcat -m 1000 -a 3 a.txt --custom-charset1='?l?u?d' ?1?1?1?1?1?1?1?1 -o found.txt --remove
新加的--custom-charset1=?l?u?d代表自定义字符集,字符集名称是1,包括了lud,参数说明如下:
但是没有特殊字符,特殊字符集合里面符号太多,我们用不了那么多,只需要用大佬说的!@#.四个就行了,怎么办,在自定义参数后面追加上就行了,修改如下:
hashcat -m 1000 -a 3 a.txt --custom-charset1='?l?u?d!@#.' ?1?1?1?1?1?1?1?1 -o found.txt --remove
新加了remove参数,意思是如果有hash暴出了结果,就把它从文件中删除,否则文件有多个hash的情况,下次还要做对比,会增加工作量。
我们暴破完了,发现并没有得到多少结果,问了下大佬,大佬说可以试试6-9位的,因为8位刚才试过了,所以需要分两次,一次6-7,一次9,6-7的示例如下:
hashcat -m 1000 -a 3 a.txt --custom-charset1='?l?u?d!@#.' ?1?1?1?1?1?1?1 --increment --increment-min 6 --increment-max 7 -o found.txt --remove
increment参数是增量的意思,范围性暴破使用需要和min、max结合一起用,min指定最少位数,max指定最大位数。
字符集指定的时候,需要以最大位数为准,即上面的?1要7位。
GPU问题
显卡配置高,可以提高暴破速度,基本上只要安装好自己显卡对应的驱动就可以,比如AMD、NVIDA、Inter等,运行hashcat -b测试(b参数用来计算破解速度和显示硬件信息),如果支持显卡应用,则会显示显卡设备的相关信息:
如果不显示,可能是windows自带显卡驱动问题,可以去官方从新下载安装下试试。
字典暴破
字典模式成功与否取决于字典,示例:
hashcat -m 1000 -a 0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx wordlist.txt -o found.txt
hashcat也支持多个字典:
hashcat -m 1000 -a 0 hashlist.txt wordlist.txt wordlist1.txt wordlist2.txt -o found.txt
其它模式使用频率不高,就不记了。
完。
原文始发于微信公众号(aFa攻防实验室):hashcat使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论