linux 的/etc/shadow文件中hash算法包括缺省的DES经典算法、MD5哈希算法($1)、Blowfish加密算法($2或$2a)和SHA哈希算法($5或$6)。
因此利用hashcat进行破解的参数也不同,比如MD5哈希算法($1),使用hashcat -m 500参数;
SHA哈希算法($5或$6),使用hashcat -m 1800 参数。
具体标记如下:
1. $0 = DES
2. $1 = MD5
3. $2a(2y) = Blowfish
4. $5 = SHA-256
5.
6
=
S
H
A
−
512
<
/
c
o
d
e
>
<
/
p
r
e
>
<
/
d
i
v
>
<
/
d
i
v
>
<
p
>
这
里
可
以
直
接
看
m
a
g
i
c
标
记
值
来
直
接
判
断
,
这
里
是
6
,
所
以
是
S
H
A
−
512
的
m
a
g
i
c
值
1800
;
<
/
p
>
<
p
>
回
车
开
始
爆
破
。
<
/
p
>
<
p
>
拿
本
地
操
作
一
下
,
放
了
个
6000
小
字
典
,
里
面
放
上
了
虚
拟
机
r
o
o
t
的
密
码
;
<
/
p
>
<
p
>
<
i
m
g
s
r
c
=
"
/
a
s
s
e
t
s
/
i
m
a
g
e
s
/
2016
−
07
−
20
/
3841251480.
j
p
g
"
a
l
t
=
"
20160820221718.
j
p
g
"
>
<
/
p
>
<
p
>
可
以
看
到
,
很
快
就
爆
破
出
来
了
,
每
秒
近
700
次
,
还
是
挺
快
的
;
<
/
p
>
<
p
>
结
果
会
在
当
前
目
录
生
产
两
个
文
件
f
o
u
n
d
.
t
x
t
和
h
a
s
h
c
a
t
.
p
o
t
;
<
/
p
>
<
p
>
里
面
内
容
一
样
,
都
是
爆
破
出
来
的
结
果
;
<
/
p
>
<
p
>
<
i
m
g
s
r
c
=
"
/
a
s
s
e
t
s
/
i
m
a
g
e
s
/
2016
−
07
−
20
/
2788163530.
j
p
g
"
a
l
t
=
"
20160820221758.
j
p
g
"
>
<
/
p
>
<
p
>
总
结
:
<
/
p
>
<
p
>
1
、
h
a
s
h
c
a
t
支
持
市
面
上
存
在
的
近
乎
全
部
的
h
a
s
h
加
密
,
–
h
e
l
p
可
以
看
到
;
<
/
p
>
<
p
>
2
、
在
并
不
知
道
密
文
的
情
况
下
,
我
们
可
以
先
使
用
h
a
s
h
−
i
d
e
n
t
i
f
i
e
r
来
帮
助
检
测
下
,
虽
然
有
的
不
准
确
;
<
/
p
>
<
p
>
3
、
各
种
加
盐
(
s
a
l
t
)
的
顺
序
,
以
及
h
a
s
h
值
的
具
体
得
来
的
方
式
不
同
,
也
会
导
致
加
密
的
类
型
产
生
差
别
;
<
/
p
>
<
p
>
e
.
g
.
<
/
p
>
<
d
i
v
c
l
a
s
s
=
"
l
a
n
g
u
a
g
e
−
p
l
a
i
n
t
e
x
t
h
i
g
h
l
i
g
h
t
e
r
−
r
o
u
g
e
"
>
<
d
i
v
c
l
a
s
s
=
"
h
i
g
h
l
i
g
h
t
"
>
<
p
r
e
c
l
a
s
s
=
"
h
i
g
h
l
i
g
h
t
"
>
<
c
o
d
e
>
0
=
M
D
510
=
m
d
5
(
6 = SHA-512 </code></pre></div></div> <p>这里可以直接看magic标记值来直接判断,这里是6,所以是SHA-512的magic值1800;</p> <p>回车开始爆破。</p> <p>拿本地操作一下,放了个6000小字典,里面放上了虚拟机root的密码;</p> <p><img src="/assets/images/2016-07-20/3841251480.jpg" alt="20160820221718.jpg"></p> <p>可以看到,很快就爆破出来了,每秒近700次,还是挺快的;</p> <p>结果会在当前目录生产两个文件found.txt和hashcat.pot;</p> <p>里面内容一样,都是爆破出来的结果;</p> <p><img src="/assets/images/2016-07-20/2788163530.jpg" alt="20160820221758.jpg"></p> <p>总结:</p> <p>1、hashcat支持市面上存在的近乎全部的hash加密,–help可以看到;</p> <p>2、在并不知道密文的情况下,我们可以先使用hash-identifier来帮助检测下,虽然有的不准确;</p> <p>3、各种加盐(salt)的顺序,以及hash值的具体得来的方式不同,也会导致加密的类型产生差别;</p> <p>e.g.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0 = MD5 10 = md5(
6=SHA−512</code></pre></div></div><p>这里可以直接看magic标记值来直接判断,这里是6,所以是SHA−512的magic值1800;</p><p>回车开始爆破。</p><p>拿本地操作一下,放了个6000小字典,里面放上了虚拟机root的密码;</p><p><imgsrc="/assets/images/2016−07−20/3841251480.jpg"alt="20160820221718.jpg"></p><p>可以看到,很快就爆破出来了,每秒近700次,还是挺快的;</p><p>结果会在当前目录生产两个文件found.txt和hashcat.pot;</p><p>里面内容一样,都是爆破出来的结果;</p><p><imgsrc="/assets/images/2016−07−20/2788163530.jpg"alt="20160820221758.jpg"></p><p>总结:</p><p>1、hashcat支持市面上存在的近乎全部的hash加密,–help可以看到;</p><p>2、在并不知道密文的情况下,我们可以先使用hash−identifier来帮助检测下,虽然有的不准确;</p><p>3、各种加盐(salt)的顺序,以及hash值的具体得来的方式不同,也会导致加密的类型产生差别;</p><p>e.g.</p><divclass="language−plaintexthighlighter−rouge"><divclass="highlight"><preclass="highlight"><code>0=MD510=md5(pass.
s
a
l
t
)
20
=
m
d
5
(
salt) 20 = md5(
salt)20=md5(salt.
p
a
s
s
)
300
=
m
d
5
(
u
n
i
c
o
d
e
(
pass) 300= md5(unicode(
pass)300=md5(unicode(pass).
s
a
l
t
)
40
=
m
d
5
(
salt) 40 = md5(
salt)40=md5(salt.unicode(
p
a
s
s
)
)
3300
=
M
D
5
(
S
u
n
)
3500
=
m
d
5
(
m
d
5
(
m
d
5
(
pass)) 3300 = MD5(Sun) 3500 = md5(md5(md5(
pass))3300=MD5(Sun)3500=md5(md5(md5(pass)))
3610 = md5(md5(
s
a
l
t
)
.
salt).
salt).pass)
3710 = md5(
s
a
l
t
.
m
d
5
(
salt.md5(
salt.md5(pass))
3720 = md5(
p
a
s
s
.
m
d
5
(
pass.md5(
pass.md5(salt))
3800 = md5(
s
a
l
t
.
salt.
salt.pass.
s
a
l
t
)
3910
=
m
d
5
(
m
d
5
(
salt) 3910 = md5(md5(
salt)3910=md5(md5(pass).md5(
s
a
l
t
)
)
4010
=
m
d
5
(
salt)) 4010 = md5(
salt))4010=md5(salt.md5(
s
a
l
t
.
salt.
salt.pass))
4110 = md5(
s
a
l
t
.
m
d
5
(
salt.md5(
salt.md5(pass.
s
a
l
t
)
)
4210
=
m
d
5
(
salt)) 4210 = md5(
salt))4210=md5(username.0.
p
a
s
s
)
4300
=
m
d
5
(
s
t
r
t
o
u
p
p
e
r
(
m
d
5
(
pass) 4300 = md5(strtoupper(md5(
pass)4300=md5(strtoupper(md5(pass)))
4400 = md5(sha1(
p
a
s
s
)
)
.
.
.
.
<
/
c
o
d
e
>
<
/
p
r
e
>
<
/
d
i
v
>
<
/
d
i
v
>
<
p
>
4
、
这
里
l
i
n
u
x
的
密
码
只
看
pass)) .... </code></pre></div></div> <p>4、这里linux的密码只看
pass))....</code></pre></div></div><p>4、这里linux的密码只看分割,其余字符都是内容,有点 . 也得带上。