XenoG 发布于2022年11月8日 分享 发布于2022年11月8日 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、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) 暴力破解: 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被暴力破解成功,结果如下 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。 作为一篇总结基础知识的文章,希望能尽量简洁实用。欢迎读者补充,这部分会在后续不断完善。 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子