渗透利器-kali工具 (第六章-1) 密码破解 - Hashcat
本文内容:
- 在线解密hash密码
- hashcat简介
- 扫描模式
- 常见掩码设置
- 常用参数
- 实例破解
1,在线解密hash密码:
* Domain : WIN-06FPCJSH5P8
* LM : 23b982a597a7a732aad3b435b51404ee
* NTLM : 0b6fb439a176cce1fb1d34adfd9571b1
* SHA1 : bfa75eec175e274ae355f7d0c2ed0620a89e84c5
windows系统下的hash密码格式为:
用户名:RID
LM-HASH值
NT-HASH值 [存在NT,直接破解 NT]
LM-HASH值都是hash算法
在线解密:https://www.objectif-securite.ch/ophcrack
常见的hash离线解密:
1,hashcat简介:
hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于CPU规则引擎,免费多个CPU[高达128个CPU]。
多哈希、多操作系统[Linux和Windows本地二进制文件],多平台[OpenGl和CUDA支持],多算法,资源利用地,基于字典攻击,支持分布式破解等等。
hashcat目前支持各类公开算法高达247类,市面上公开的密码加密算法基本都支持。
官网:https://hashcat.net/hashcat/
wiki:https://hashcat.net/wiki/
下载地址:https://hashcat.net/files/hashcat-5.1.0.7z
在渗透测试中我们往往会得到很多hash,需要去解密,而一些在线的网站无法解密出来,所以我们可以使用hashcat在本地进行密码恢复。
彩虹表:是一款破解hash算法的技术,是一块跨平台密码破解工具,主要可以MD5、HA5H等多种密码:
https://www.cnblogs.com/bokun-wang/p/3887463.html
https://www.jianshu.com/p/732d9d960411
要从hash逆向得到原始明文密码有三种方法:
1.暴力破解法:时间成本太高
2.字典法:提前构建一个"明文--->密码"对应关系的一个大型数据库。
3.构建彩虹表:在字典法的基础上改进,以时间换空间,是现在破解hash常用的办法。
2,扫描模式:-a执行扫描模式:
# | Mode
===+======
0 | Straight(字典破解) :基于字典进行破解
1 | Combination(组合破解) :基于多个字典进行破解
3 | Brute-force(掩码暴力破解) :基于掩码设置进行破解
6 | Hybrid Wordlist + Mask(字典+掩码破解)
7 | Hybrid Mask + Wordlist(掩码+字典破解)
3,常见掩码设置:
? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz 纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ 纯大写字母
d | 0123456789 纯数字
h | 0123456789abcdef 常见小写字母和数字
H | 0123456789ABCDEF 常见大写字母和数字
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 特殊字符
a | ?l?u?d?s 键盘上所有可见的字符
b | 0x00 - 0xff 可能是用来匹配像空格这种密码的
常见的组合:
八位数字密码:?d?d?d?d?d?d?d?d
八位未知密码:?a?a?a?a?a?a?a?a
前四位为大写字母,后面四位为数字:?u?u?u?u?d?d?d?d
前四位为数字或者是小写字母,后四位为大写字母或者数字:?h?h?h?h?H?H?H?H
前三个字符未知,中间为admin,后三位未知:?a?a?aadmin?a?a?a
6-8位字母密码:--increment --increment-min 6 --increment-max 8 ?l?l?l?l?l?l?l?l
6-8位数字+小写字母密码:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h
4,常用参数:
使用命令:hashcat64.exe -h 查看帮助文档
-a 指定要用的扫描模式,其值参考后面对应的参数,"-a 0" 字典攻击,"-a 1" 组合攻击,"-a 3" 掩码攻击。
-m 指定掩码,如果不指定类型,则默认是MD5, [Hash modes ]是类型 ,从来处可以判断hash类型。
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定文件中。
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项。
--show 显示已经破解的hash及hash所对应的明文。
--increment 启用增量破解模式,可以利用此模式让hashcat在指定的密码长度范围内执行破解过程。
--increment-max 密码最大长度,后面直接等于一个整数即可,配置increment模式一起使用。
--increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用。
--outfile-format 指定破解结果的输出格式 id,默认是3。
5,实例破解:
1.数字破解:[8位:12345678]
hashcat64.exe -m 0 -a 3 25d55ad283aa400af464c76d713c07ad ?d?d?d?d?d?d?d?d
2.小写字母破解:[6位:abcdef]
hashcat64.exe -m 0 -a 3 e80b5017098950fc58aad83c8c14978e ?l?l?l?l?l?l
3.小写字母+数字:[6-8位:1a31fa1c]
hashcat64.exe -m 0 -a 3 --force b54e53e2f21b7260df895bc885ceaa3e --increment --increment-min 1 --increment-max 8 ?h?h?h?h?h?h?h?h
4.字典破解:
-a 0 是指定字典破解模式,-o 是输出结果到文件中
举例:
hashcat64.exe -m 0 -a 0 ./dict/hash.txt ./dict/password.txt -o result.txt
5.破解Windows hash
1.使用mimikatz获取windows hash:
windows使用命令需要管理员权限:
mimikatz.exe log
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
mimikatz # exit
meterpreter >mimikatz_command -f version //查看版本信息
meterpreter > mimikatz_command -f samdump::hashes//读取本地hash
windows系统下的hash密码格式为:
用户名:RID
LM-HASH值
NT-HASH值 [存在NT,直接破解 NT]
LM-HASH值都是hash算法
破解NT-Hash:
hashcat64.exe -a 3 -m 1000 b4814903533072474831d4791b7d4a9c ?l?l?l?d?d?d?s
6.zip压缩包破解:
使用zip2john获取密码哈希值
设置hash类型:win-zip 扫描模式:掩码模式
hashcat64.exe -m 13600 -a 3 $zip2$*0*3*0*b71633a9a7fc15682a0dad00d17f1a43*2cee*1d*4c55a370878091d08bd637730ae11c1abdcdbcdbe099d14c166826216d*770b0e7ff9bbc5e4149c*$/zip2$ ?d?d?d?d?d?d --show