用户
搜索

该用户从未签到

管理员

Rank: 9Rank: 9Rank: 9

56

主题

74

帖子

808

魔法币
收听
0
粉丝
0
注册时间
2018-12-17
发表于 2021-6-3 17:39:29 52873
对于Windows操作系统来说,Linux系统是比较难于渗透和控制的,其根本原因来自Linux的安全机制。

今天i春秋将通过一期公开课《Linux登录密码生成与爆破》深入解析Linux操作系统中的密码应用场合、密码分类与加密原理、密码被泄露的几种可能、没有john能不能爆破密码文件等方面进行详细讲解,帮助大家快速了解Linux操作系统登录密码的产生方式和加密类型。

900-383.jpg


Linux密码原理

Linux密码构成

在Linux系统中涉及系统登录密码的有两个重要文件/etc/passwd和etc/shadow,第一个文件记录用户信息,第二个是真正保存用户密码信息的。

在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用冒号分割。比如下面是一个Linux系统中的/etc/passwd 的两行,其格式为username:x:UID:GID:username full:username home:shell type。

第一字段:用户名(也被称为登录名);

第二字段:口令,显示为x表示其实密码已被映射到/etc/shadow 文件中;

第三字段:UID;

第四字段:GID;

第五字段:用户名全称,这是可选的,可以不设置;

第六字段:用户的家目录所在位置;

第七字段:用户所用SHELL的类型,常见为/bin/bash;

/etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd产生的,这两个文件应该是对应互补的,shadow内容包括用户名及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等,这个文件只有root权限可以读取和操作。

/etc/shadow 文件的内容包括9个段位,每个段位之间用冒号分割。通过研究发现即使两个帐号的密码相同,其密码加密值也不一样。其各个字段的含义如下:

第一字段:用户名(也被称为登录名),/etc/shadow中的用户名和/etc/passwd中的用户名 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起,这个字段是非空的;

第二字段:密码(已被加密),如果有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;

第三字段:上次修改口令的时间。这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;

第四字段:两次修改口令间隔最少的天数,也就是说用户必须经过多少天才能修改其口令。如果设置为0,则禁用此功能。此项功能用处不是太大,默认值是从/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;

第五字段:两次修改口令间隔最多的天数。这个能增强管理员管理用户口令的时效性,应该说增强了系统的安全性;系统默认值是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;

第六字段:提前多少天警告用户口令将过期。当用户登录系统后,系统登录程序提醒用户口令将要作废。系统默认值是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;

第七字段:在口令过期之后多少天禁用此用户。此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,完全禁用;

第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;

第九字段:保留字段,目前为空,以备将来Linux发展之用;

例如某系统root帐号在etc/shadow文件中的表现方式为:root1$kbIAhX/R$PiLL1U.n6bivtIr4oTi2y0:15377:0:99999:7::: 。


Linux密码文件位置

绝大部分Linux操作系统的密码文件名称为shadow,但也有一些特殊的Linux/Unix操作系统的密码文件名称为passwd,而且密码文件所在位置也不一样。
下面是一些Linux常见系统的密码文件位置:

[AppleScript] 纯文本查看 复制代码
Linux /etc/shadow

SystemV Release 4.2 /etc/security

SystemV Release 4.0 /etc/shadow

SunOS 5.0 /etc/shadow

SCOUnix / tcb /auth/files/

OSF/1 /etc/passwd

HP-UX /.secure/etc/ passwd

BSD4.x /etc/master.passwd

AIX3 /etc/security/passwd

IRIX5 /etc/shadow


Linux系统采用的加密算法

查看密码的加密算法

Linux帐户的密码加密后存放于/etc/shadow文件中。对于Linux操作系统的密码采用哪种加密方式,取决于/etc/pam.d/system-auth或者/etc/pam.d/passwd文件定义,通过more /etc/pam.d/system-auth或者authconfig --test | grep hashing命令可以获取操作系统使用哪种加密算法,目前有sha256、sha512和md5加密算法。

在Red Hat Enterprise Linux Server中,可以通过authconfig --test | grep hashing命令来获取当前系统帐号的密码加密算法,如图1所示。

1.jpg

图1 获取Red Hat Enterprise Linux Server系统帐号加密算法


Linux/UNIX采用5种加密算法

Linux/UNIX操作系统目前采用5种加密算法,可以通过加密后的密码值来识别,主要是通过帐号后面的$X来判断。头两字节为$1表示MD5加密算法,$2表示使用Blowfish加密算法,$5表示使用SHA-256加密算法,$6表示使用SHA-512加密算法,其余为标准的DES。

例如“root1$kbIAhX/R$PiLL1U.n6bivtIr4oTi2y0:15377:0:99999:7:::”其加密算法为md5。


这个老师声音有特色的,之前就听过他的讲座,不错,很有水平。
使用道具 举报 回复
发表于 2021-6-3 17:40:14
使用道具 举报 回复
这课程的实操性很强,全程看下来也学会操作了。
使用道具 举报 回复
课程挺好的,听完受益匪浅,学习了!
使用道具 举报 回复
发表于 2021-6-3 17:43:18
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册