密码破解-hashcat的简单使用
在我们抓取到系统的hash值之后,需要通过一些工具来破解密码
hashcat是一款可以
基于显卡暴力破解密码的工具,几乎支持了所有常见的加密,并且支持各种姿势的密码搭配
在kali Linux
中自带的有,也支持Windows Mac
平台,可以在官网下载:https://hashcat.net
得到一个压缩包,加压后其中有各种版本的可执行文件.sh .exe
这里我使用的是windows
版,在windows
中使用hashcat
只需要在根目录进入命令行
进入命令行输入hashcat64.exe
如果你是机器是x32
位的可以使用hashcat32.exe
使用hashcat64.exe -h
可以查看工具相关的帮助
会列出很多帮助,首先是命令参数,然后是命令参数的值
-m hash的类型
指定hash的加密类型,默认是MD5类型
在对应的类型前面有它的id,可以通过id来指定类型
当我们想要找一个类型在hashcat
支不支持的时候,例如windows系统加密的是NTML,可以执行命令
hashcat64.exe -h | findstr NTLM
可以看到NTLM
的ID号为1000
-a 攻击方式
破解密码的方式
分别有:
0 | Straight 字典破解
1 | Combination 组合破解
3 | Brute-force 掩码破解
6 | Hybrid Wordlist + Mask 混合字典 + 掩码
7 | Hybrid Mask + Wordlist 混合掩码 + 字典
掩码
当没有字典的时候,可以使用掩码指定密码的每一位是什么类型的字符,首先我们知道密码有多少位
例如:?d?d?d?d?d?d?d?d
代表密码为8为数字,?u?l?l?l?l?d?d?d
代表密码为7位,首个字母大写,然后三个小写字母,最后三个数字
破解windows hash密码
使用字典爆破windows hash
hashcat64.exe -a 0 -m 1000 hash或者hashfile 字典文件
准备好我们的密码本,这里我使用的是手写的2.txt
hashcat64.exe -a 0 -m 1000 e45a314c664d40a227f9540121d1a29d 2.txt
执行后会进入这样一个状态,这里每个可能不一样,在破解成功或者跑完字典后会自动停止
可以看到我们的密码已经被破解出来,为Admin123
在破解后,会在根目录下的hashcat.potfile
文件记录这个hash的缓存
这里我们将改文件清空,方便后续做实验
使用掩码破解windows hash
hashcat64.exe -a 3 -m 1000 e45a314c664d40a227f9540121d1a29d ?u?l?l?l?l?d?d?d
破解成功
在我们爆破的同事,会有
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>
分别:查看破解状态,暂停,绕过,检查,退出
破解Linux hash密码
在linux
中,我们知道,密码分别存储在/etc/passwd和/etc/shadow中,只需要more /etc/shadow
,将其中的文件复制出来,使用工具破解即可
将root和jackson用户的密码保存到/var/www/html/pass
Web服务目录中
root:$6$90/diajJs2fHcIGa$hB5wj4tMF8Qdd6o5VNRTY4v4vEpV8x0NP4O1N/tpJ8ns7JmJ8RyvSih7.W8TQdfwweUFh16dJejFpKw07i2uR1::0:99999:7:::
jackson:$6$Zje1WaoS$eH24JFr5n67149yBcDWWsfxME5cYlOXMmJxnf2uinbvYm8vWc0BmjvAoXIFY/0ZUJItRpPhHkCGDiqjXT10EV0:19066:0:99999:7:::
注意这里的换行,一个用户的hash值是一行
启动Web服务
并在实验机器下载,这里使用certutil将pass文件内容下载到了D盘下的pass文件中去
Linux使用的是 sha512crypt加密方式,在hashcat中寻找是否有该方法
hashcat64.exe -h|findstr sha512crypt
代号为1800
继续使用我们的2.txt
对d:\pass
文件进行暴力破解
hashcat64.exe -a 0 -m 1800 d:\pass 2.txt
这里我更换了root
和jackson
用户在文件中的位置
爆破成功,得到jackson
的密码为root
,但是只爆破出了一个密码,应该只支持一个密码的破解
注意:复制的时候一定不要有换行,不然是无法破解成功的