每日一句:
俯视洛阳川,茫茫走胡兵。 ——李白《古风·其十九》
本文内容:
~Hashcat简介
~扫描模式
~常用参数
~实例破解
目的:常见的哈希密码离线解密
一、Hashcat简介
1,定义
hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于GPUGPU规则引擎,免费多GPU(高达128个GPU),
多哈希,多操作系统(Linux和Windows本地二进制文件),多平台(OpenCL和CUDA支持),多算法,
资源利用率低,基于字典攻击,支持分布式破解等等,hashcat目前支持各类公开算法高达247类,市面上面公开的密码加密算法基本都支持!
2,基本信息
官网: https://hashcat.net/hashcat/
Wiki: https://hashcat.net/wiki/ //维基百科
下载地址:https://hashcat.net/files/hashcat-5.1.0.7z
问:kali自带,但是我们为什么还要下载?
答:因为Hashcat基于GPU运行,虚拟机的GPU都是虚拟的,计算力不强
问:在首次使用hashcat的时候要注意什么?
安装最新的显卡驱动文件,intel检测网站:
https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html
问:在kali下为什么无法使用hashcat?
在kali下没有显卡的支持,容易报错,所以我们在windows本机测试
问:Hashcat支持多少种哈希类型?
hashcat目前支持各类公开算法高达247类,市面上面公开的密码加密算法基本都支持!
问:学习hashcat的要点是什么?
1.破解模式: 2.哈希类型
3,为什么要下载这个工具?在线网站不行吗?
在渗透测试中我们往往会得到很多hash,需要去解密,
而一些在线的网站无法解密出来所以我们可以使用hashcat在本地进行密码恢复
4,彩虹表
定义:
彩虹表(Rainbow Table)是一种破解哈希算法的技术,是一款跨平台密码破解器,主要可以破解MD5、HASH等多种密码。
它的性能非常让人震惊,在一台普通PC上辅以NVidia CUDA技术,对于NTLM算法可以达到最高每秒103,820,000,000次明文尝试(超过一千亿次),
对于广泛使用的MD5也接近一千亿次。更神奇的是,彩虹表技术并非针对某种哈希算法的漏洞进行攻击,
而是类似暴力破解,对于任何哈希算法都有效。
补充:
彩虹表作为扩展功能,不任性深入。详细的可以去下边的链接
https://www.cnblogs.com/bokun-wang/p/3887463.html
二、扫描模式
0,前提
下载安装好此款软件,没有找到的同学私信我就行
1,运行
~找到hashcat的安装文件夹
~cmd这个文件夹
~直接hashcat64.exe -h ===打开帮助菜单
2,hashcat的扫描模式
0 | Straight(字典破解) :基于字典进行破解
1 | Combination(组合破解) :基于多个字典进行破解
3 | Brute-force(掩码暴力破解) :基于掩码设置进行破解
6 | Hybrid Wordlist + Mask(字典+掩码破解)
7 | Hybrid Mask + Wordlist(掩码+字典破解)
===一般放在-a的参数里
问:hashcat字段破解的作用是?
基于字典进行破解
问:Hashcat组合破解的作用是?
基于多个字典进行破解
问:Hashcat掩码破解的作用是?
基于掩码设置进行破解
3,常见的掩码问题
~代表字符
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
问:如何指定破解模式?
使用命令:-a,例如指定掩码模式破解:-a 3
问:如何指定破解哈希类型?
使用命令:-m,例如指定md5破解:-m 0,默认使用md5破解
问:如何把破解好的哈希保存到本地?
使用命令:-o ,例如:-o outfile.txt,把结果导出到outfile文件种
三、常用参数
-a 指定要使用的扫描模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-m 指定要破解的hash类型,如果不指定类型,则默认是MD5
===类型,一般根据密文来处判断类型
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
--show 显示已经破解的hash及该hash所对应的明文
--increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
--increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
--increment-max 密码最大长度,同上
--outfile-format 指定破解结果的输出格式id,默认是3
四、实例破解
1,掩码破解
1、数字破解(8位:12345678)
hashcat64.exe -m 0 -a 3 25d55ad283aa400af464c76d713c07ad ?d?d?d?d?d?d?d?d
===-a指定模式
===-m是MD5
===掩码匹配8位数字
2、小写字母(6位:abcdef)
hashcat64.exe -m 0 -a 3 e80b5017098950fc58aad83c8c14978e ?l?l?l?l?l?l
3、字母+数字(8位:1a31fa1c)
hashcat64.exe -a 3 -m 0 --force b54e53e2f21b7260df895bc885ceaa3e --increment --increment-min 1 --increment-max 8 ?h?h?h?h?h?h?h?h
===--force 忽略破解过程中的警告信息
2,字典破解
字典破解密码:
hashcat64.exe -m 0 -a 0 ./dict/hash.txt ./dict/password.txt -o result.txt
===-a 0是指定字典破解模式,
===-o是输出结果到文件中
3,破解Windo ws hash
场景:拿下一台win系统的服务器,经过提权和mimikatz得到一串hash。现在用hashcat去破解
NT-hash:
hashcat64.exe -a 3 -m 1000 b4814903533072474831d4791b7d4a9c ?l?l?l?d?d?d?s
===-a指定模式
===-m指定类型,注意这次不是md5,是NTLM对应的值 最后的掩码可以用a