-m hash的类型

指定hash的加密类型,默认是MD5类型
img
在对应的类型前面有它的id,可以通过id来指定类型
当我们想要找一个类型在hashcat支不支持的时候,例如windows系统加密的是NTML,可以执行命令
hashcat64.exe -h | findstr NTLM
img
可以看到NTLM的ID号为1000

-a 攻击方式

破解密码的方式
分别有:

highlighter- 1c

1
2
3
4
5
0 | Straight  字典破解
1 | Combination 组合破解
3 | Brute-force 掩码破解
6 | Hybrid Wordlist + Mask 混合字典 + 掩码
7 | Hybrid Mask + Wordlist 混合掩码 + 字典

img

掩码

当没有字典的时候,可以使用掩码指定密码的每一位是什么类型的字符,首先我们知道密码有多少位
img
例如:?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
img
hashcat64.exe -a 0 -m 1000 e45a314c664d40a227f9540121d1a29d 2.txt
执行后会进入这样一个状态,这里每个可能不一样,在破解成功或者跑完字典后会自动停止
img
img
可以看到我们的密码已经被破解出来,为Admin123
在破解后,会在根目录下的hashcat.potfile文件记录这个hash的缓存
img

使用掩码破解windows hash
hashcat64.exe -a 3 -m 1000 e45a314c664d40a227f9540121d1a29d ?u?l?l?l?l?d?d?d
img
img
破解成功

在我们爆破的同时,会有

1
[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>

分别:查看破解状态,暂停,绕过,检查,退出

还有如下例子:

image-20250118140015954

破解Linux hash密码

linux中,我们知道,密码分别存储在/etc/passwd和/etc/shadow中,只需要more /etc/shadow,将其中的文件复制出来,使用工具破解即可
img
将root和jackson用户的密码保存到/var/www/html/passWeb服务目录中

1
2
root:$6$90/diajJs2fHcIGa$hB5wj4tMF8Qdd6o5VNRTY4v4vEpV8x0NP4O1N/tpJ8ns7JmJ8RyvSih7.W8TQdfwweUFh16dJejFpKw07i2uR1::0:99999:7:::
jackson:$6$Zje1WaoS$eH24JFr5n67149yBcDWWsfxME5cYlOXMmJxnf2uinbvYm8vWc0BmjvAoXIFY/0ZUJItRpPhHkCGDiqjXT10EV0:19066:0:99999:7:::

img
注意这里的换行,一个用户的hash值是一行
img
启动Web服务
img
并在实验机器下载,这里使用certutil将pass文件内容下载到了D盘下的pass文件中去
img
Linux使用的是 sha512crypt加密方式,在hashcat中寻找是否有该方法
hashcat64.exe -h|findstr sha512crypt
img
代号为1800
继续使用我们的2.txtd:\pass文件进行暴力破解
hashcat64.exe -a 0 -m 1800 d:\pass 2.txt
img
img
这里我更换了rootjackson用户在文件中的位置
爆破成功,得到jackson的密码为root,但是只爆破出了一个密码,应该只支持一个密码的破解
注意:复制的时候一定不要有换行,不然是无法破解成功的