上一篇文章中,介绍了开源的密码破解分析平台——Hashview,Hashview基于hashcat,可以使用字典、掩码、暴力破解、字典规则多种方式对密码破解。工具有了,还需要一个强大的字典,针对个人的字典的制作可以使用CUPP,而在企业环境的弱密码检测工作中,CUPP并不是很适合,这时我们可以使用另一套简单的hashcat规则生成字典,这就是本篇文章将要介绍的Hob0Rules。
项目地址
https://github.com/praetorian-inc/Hob0Rules
Hob0Rules简介
Hob0Rules是一套基于统计学的hashcat密码生成规则,这套规则的更多详细内容,请看这里。作者分析了Rockyou、LinkedId、eHarmony等多个字典共计3566万个密码,统计各种密码组合规则,并制作成两个hashcat密码生成规则组合hob064和d3adhob0,hob064包含64条最常见的密码规则,d3adhob0则包含了更广泛的规则,总共是57000多条。
Hob0Rules使用
规则文件下载
从Github上下载Hob0Rules规则文件:
git clone https://github.com/praetorian-inc/Hob0Rules.git
使用Git Clone方式会把整个目录下载,包括Wordlist文件夹,我们并不需要这里面的字典文件,所以也可以单独下载两个密码规则文件。
打开文件页面,在Raw
上右键,选择目标另存为
保存文件。
下载好文件后移动到hashcat的rules目录下,完整路径/usr/share/hashcat/rules
,改目录下已包含了一些Hashcat自带的规则文件。
规则文件内容
每一行表示密码的一个变形规则:
":" - 不做任何改变
"r" - 翻转字符,如`p@ssW0rd` → `dr0Wss@p`
"u" - 英文字符全部转变为大写,如`p@ssW0rd` → `P@SSW0RD`
"$@" - 在末尾添加@,如`p@ssW0rd` → `p@ssW0rd@`
"^1" - 在开头添加1,如`p@ssW0rd` → `1p@ssW0rd`
更多详细的规则参考内容,请移步Hashcat官方文档Rule-based Attack。
使用规则生成字典
建立一个基本字典文件,只包含abc
和password
两个密码,使用规则生成新的字典:
//虚拟机无独立显卡时,添加--force
参数强制使用CPU进行运算。
hashcat --stdout password.txt -r /usr/share/hashcat/rules/hob064.rule -o password-new.txt --force
如果密码生成规则不满足我们的使用需求,还可以自己添加。
比如,hob064.rule
这个基本规则中,添加特殊字符,没有在末尾添加”_”这个规则,使用VI编辑规则文件添加一行:
d3adhob0.rule
这个规则包含了57540条规则,规则更为丰富。大多数企业员工为了密码便于记忆,会使用公司或部门名称变换大小写字母、添加特殊符号和数字等,基本上最常用的密码变形规则,已包含在d3adhob0.rule
中了。用于检测服务器弱口令,通过搜集公司、部门名称等,结合该规则生成字典已足够使用了。
密码规则的组合使用
在实际使用中,我发现d3adhob0.rule
规则没有包含P@ssw0rd_2017这样的密码,那么,为了生成更丰富的密码字典,继续在hob064.rule
添加几条规则,将hob064.rule
和d3adhob0.rule
两个规则文件组合使用。
注意两个规则文件的顺序不一样,生成的字典文件也是不一样的。
两个规则组合使用生成的密码存在重复值,对两个字典文件去重合并:
通过”abc”和”password”两个密码,经过密码策略变化,已生成含13008587个密码的字典,再在字典文件中搜索P@ssw0rd_2017
、Password#169
这类密码,均能找到。
直接使用规则破解密码
密码破解过程中,如果源字典比较大,使用密码规则生成新字典保存在硬盘上的方式就不太明智了,更常用的方式是直接在命令中指定规则使用。
shadow-test.txt
包含一个测试账号Hash。密码文件包含abc
和password
两个密码,hash类型为sha512,使用密码字典+规则破解的命令如下:
hashcat -a 0 -m 1800 shadow-test.txt ./password.txt -r /usr/share/hashcat/rules/d3adhob0.rule --force
Hashview使用密码规则
Hashview的Rules中已经自带了d3adhob0.rule和hob064.rule,收集一份公司名单,上传到Wordlists中,然后在Tasks中添加密码和规则。
之后新建Jobs时便可以选择该规则进行密码破解。
文章评论