概论
SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,会使调用者暂时获得该文件拥有者的权限,如果拥有SUID权限,那么我们就
可以利用系统中的二进制文件和工具进行root提权。
查找具有 SUID 权限位文件
下面的命令可以发现所有系统中运行的SUID可执行文件。其实更加准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件,然后将所有错误重定向到/dev/null,从而达到仅列出该用户具有访问权限的二进制文件的功能。
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 {} ;
-perm 表示搜索的权限
-u=s 表示查找root用户拥有的文件
-type 表示我们正在寻找的文件类型
f 表示常规文件,不是目录或特殊文件
2 表示该进程的第二个文件描述符,既stderr(标准错误)
>表示重定向
> /dev/null 是一个特殊的文件系统对象,他将丢弃写入的所有内容
当然也可以使用 sudo -l
命令,列出当前用户可执行的命令
常用提权方式
1.nmap
2.find
3.vi/vim
4.bash
5.less
6.more
7.nano
8.cp
9.wget
10.apache
11.python
12.tcpdump
13. apache
14.man
1.1 /etc/sudoers 语法
root ALL=(ALL) ALL
root 用户可以从 ALL(任何)终端执行,充当ALL(任何)用户,并运行ALL(任何)命令。第一部分指定用户,第二部分指定可充当用户,第三部分指定 sudo 可运行的命令。
liver100day ALL= /sbin/poweroff
输入liver100day用户的密码,可以 sudo 执行