2048 AI社区 Hashcat 爆破Linux密码使用工具

Hashcat 爆破Linux密码使用工具

Jul 20, 2016 Hashcat 爆破Linux密码使用工具今天拿了个linux的主机,提下来了,以前提成root之后就没深入过,这次想着先把root密码破解出来; 以前交洞的时候只是单纯证明存在/etc/passwd和/etc/shadow,但从没管过里面的hash; 看网上教程也很多,我也记录一下; 都知道linux系统中有一个用户密码配置文件 /etc/shadow ,里面...

Hashcat 爆破Linux密码使用工具

今天拿了个linux的主机,提下来了,以前提成root之后就没深入过,这次想着先把root密码破解出来;

以前交洞的时候只是单纯证明存在/etc/passwd和/etc/shadow,但从没管过里面的hash;

看网上教程也很多,我也记录一下;

都知道linux系统中有一个用户密码配置文件 /etc/shadow ,里面存放着用户名以及一串密文:

形如:

root:$6$7vXyCOws$Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.:16821:0:99999:7:::
用户名:加密密码:上次更改密码的时间:最小更改密码间隔:密码有效期限:密码过期提示时间:密码锁定期:账户有效期:保留字段

另外一个 /etc/passwd 文件是用户账户配置文件,只保存用户账户的基本信息,并不保存密码信息。

形如:

root:x:0:0:root:/root:/bin/bash
用户名:密码:用户id:组ID:GECOS:主目录:默认Shell

由于要破解是root密码,则只需要把/etc/shadow的root的加密密码拿出来即可;

$6$7vXyCOws$Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.

最后小数点不要漏掉,因为这些文件内容格式都是:分割的,其余的都是内容;

这里来解释一下$分割的各个部分的含义:

6:表示一种类型标记为6的密码散列;

7vXyCOws:加盐(Salt)值;

Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.:hash值;

具体也就是magic、salt、password

将这段加密密码保存到一个文件里,文件后缀.hash;

这里保存为1.hash;

kali下的一款hash破解工具 hashcat ,网上说的天花乱坠,这直接记录破解root密码的具体用法,其他用法类似;

hashcat据官网说牛逼得很,每秒最快可爆破80亿数据;

这里利用他的暴力破解,就是常说的爆破,这也是得看字典;

具体命令:

hashcat -m 1800 -a 0 -o found.txt 1.hash 1.txt

解释一下:

-m 是指定那种加密类型,1800是SHA-512(Unix)的代号,具体–help来查看;
-a 是指定攻击模式,0代表Straight模式,使用字典进行破解尝试;
-o 是破解出来的信息输出结果文件,输出到found.txt文件中;
1.hash 是我们上面保存的加密密码文件;
1.txt 是我们的爆破密码,越大越精越好;

这里碰到了一点小问题,hash-identifier 来看root密码检查是 SHA-256 加密,但这个并不是我这台机子linux的加密方式,使用这个是不能开始爆破的;

20160820221925.jpg

但这可以先记住一点:

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=SHA512</code></pre></div></div><p>magic6SHA512magic1800</p><p></p><p>6000root</p><p><imgsrc="/assets/images/20160720/3841251480.jpg"alt="20160820221718.jpg"></p><p>700</p><p>found.txthashcat.pot</p><p></p><p><imgsrc="/assets/images/20160720/2788163530.jpg"alt="20160820221758.jpg"></p><p></p><p>1hashcathashhelp</p><p>2使hashidentifier</p><p>3salthash</p><p>e.g.</p><divclass="languageplaintexthighlighterrouge"><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>4linux分割,其余字符都是内容,有点 . 也得带上。

转自:https://ai-sewell.me/2016/Hashcat-%E7%88%86%E7%A0%B4Linux%E5%AF%86%E7%A0%81%E4%BD%BF%E7%94%A8%E5%B7%A5%E5%85%B7/
作者:SewellDinG 老锥

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐

  • 浏览量 6391
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献14条内容