跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Linux下密码Hash——加解密方法的技术安排


XenoG

推荐的帖子

0x00 前言

在Linux系统下,用户的密码将被加密并存储在文件/etc/shadow中。密码的加密方法和破解方法有哪些?本文试着对这部分进行梳理,介绍基础知识,测试常用方法,帮助你对此有更直观的认识。

0x01 简介

本文将介绍以下内容:

Linux下用户密码的保存格式

Linux下用户密码的加密方法

破解用户密码哈希的常用工具和方法

0x02 Linux下用户密码的保存格式

Linux密码信息保存在两个文件中:/etc/passwd和/etc/shadow。

/etc/passwd:

普通用户权限可以查看

保存用户信息,每行代表一个用户,每行用冒号分成七个部分:

用户名

密码,x表示密码保存在/etc/shadow中。

UID,0代表根

GID,表示组。

描述,其次是全名,房间号,工作电话,家庭电话和其他。

用户目录

默认外壳类型

eg.

test2:x:1001:1001:test2,11111,111111-11,222222-22,test:/home/test2:/bin/bash

用户名:test2

密码保存在/etc/shadow中。

UID是1001

GID是1001

描述信息:

全名[]:测试2

房间号[]: 11111

工作电话[]: 111111-11

住宅电话[]: 222222-22

其他[]:测试

用户目录是/home/test2。

默认的shell是/bin/bash

/etc/shadow:

只有根权限可以查看它。

保存用户的加密密码和相关密码信息,每行代表一个用户,每行用冒号分成九个部分:

用户名

加密密码

上次修改密码的时间(自1970年1月1日以来的总天数)

密码更改的最小间隔天数。如果是0,则没有限制。

密码更改的最大间隔天数表示用户密码过期的天数。如果是99999,没有限制。

提前多少天警告用户密码将过期?

密码过期多少天后,禁用该用户?

用户的到期日期(自1970年1月1日以来的总天数)。如果为0,则用户永远可用。

保留

注:

参数描述可以通过man shadow获得。

eg.

test 2:$ 6 $ C/vGzhVe $ akk 6 qgdhztmyyxp 8。e 68 gcbkphlwq 4 w 7/opcfqyv . qsctkav 00 btowh 286 YY 73 jedg 6 i0 qslzkqqy . wmi udj 0:17470:0:99999:7:

用户名:test2

加密密码:$ 6 $ c/vgzhve $ akk 6 qgdhztmyx p 8 . e 68 gcbkphlwq 4 w 7/opcfqyv . qsctkav 00 btowh 286 YY 73 jedg 6 i0 qslzkzqqy . wmi udj 0

上次修改密码的时间(自1970年1月1日以来的总天数是17470)

两次之间的密码更改间隔:无限制。

密码更改的最大间隔天数:无限制。

提前7天警告用户密码将过期。

用户永远是可用的。

该示例显示加密密码具有固定格式:

$ id $ salt $加密

Id代表加密算法,1代表MD5,5代表SHA-256,6代表SHA-512。

Salt是密码学中的盐的意思,由系统随机生成。

Encrypted表示密码的哈希。

0x03 破解用户密码hash的常用工具和方法

因为Linux的密码加密用的是Salt,彩虹表破解不了。常用的方法有字典破解和暴力破解。

字典破解和暴力破解的常用工具:

1、John the Ripper

(1) 字典破解

Kali2.0集成了开膛手约翰。

字典文件位于/usr/share/john/password.lst中。

在Kali Linux上使用John提供的密码列表。路径是/usr/share/John/password.lst。

使用字典破解:

John-word list=/usr/share/John/password . lst。/阴影

注:

也可以使用其他词典。

(2) 暴力破解:

约翰。/阴影

列出破解的明文密码:

约翰-秀。/阴影

结果如下

2-1.png

2、hashcat

Kali2.0集成了hashcat。

对字典文件使用/usr/share/john/password.lst。

修改散列格式:仅保持$ salt $加密

eg.

原始哈希:

test 2:$ 6 $ C/vGzhVe $ akk 6 qgdhztmyyxp 8。e 68 gcbkphlwq 4 w 7/opcfqyv . qsctkav 00 btowh 286 YY 73 jedg 6 i0 qslzkqqy . wmi udj 0:17470:0:99999:7:

修改后:

$6$C/vGzhVe$aKK6QGdhzTmYyxp8。e 68 gcbkphlwq 4 w 7/opcfqyv . qsctkav 00 btowh 286 YY 73 jedg 6 i0 qslzkzqqy . wmi udj 0

(1) 字典破解:

hashcat-m 1800-o found 1 . txt-remove shadow/usr/share/John/password . lst

参数描述:

-m:哈希型,1800对应SHA-512。

有关详细参数,请参见表:https://hashcat.net/wiki/doku.php? id=example _ hashes

-o:输出文件

-remove:表示哈希被破解后将从哈希文件中删除。

Shadow:表示散列文件

/usr/share/john/password.lst:代表字典文件

成功破解2个哈希,如下图所示

2-2.png

(2) 暴力破解:

hashcat-m 1800-a 3-o found 2 . txt shadow?l?l?l?左旋力

参数描述:

-a:攻击模式,默认为0,3代表暴力破解,即暴力破解。

?l:表示小写字母,即abcdefghijklmnopqrstuvwxyz,4?l代表剧烈开裂的长度为4。

?u:表示大写字母,即ABCDEFGHIJKLMNOPQRSTUVWXYZ。

?h:代表小写十六进制字符,即0123456789。

?h:代表十六进制字符大写,即0123456789abcdef。

?s:表示一种特殊的符号,就是!"#$%'()* ,-./:=?@[]^_`{|}~

?答:意思是所有的人物,就是说?l?u?d?s

?b:表示十六进制,即0x00-0xff。

Hash被暴力破解成功,结果如下

2-3.png

3、在线网站

1.https://hce.iteknical.com/

HCE分布式计算平台,需要积分才能使用。

2.http://www.cmd5.com/

目前不支持SHA-512。

4、mimipenguin

下载地址:

https://github.com/huntergregal/mimipenguin

原理类似于mimikatz,通过内存导出明文密码。

0x04 小结

介绍了Linux下的密码保存格式,并分别使用字典和蛮力测试了两个常用工具:开膛手John和hashcat。

作为一篇总结基础知识的文章,希望能尽量简洁实用。欢迎读者补充,这部分会在后续不断完善。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...