SUID提权是给予文件的一个一个特殊类型的文件权限。在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
以下命令可以发现系统上运行的所有SUID可执行文件。
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
其中的参数解释如下:
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/ dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
实例
在一次内网渗透的过程中,拿到了主机的shell,但是却无法查看flag
然后我们使用suid进行提权。先找到具有root权限的suid文件 。
find / -perm -u=s -type f 2>/dev/null
找到root权限的suid的find,执行whoami命令。
提权得到flag