【linux提权】利用setuid进行简单提权
首先先来了解一下setuid漏洞:
SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义,在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件XINO,其属主为root,当我们通过非root用户登录时,如果XINO设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限。
然后我们连接我们的靶机看看
![](https://img2023.cnblogs.com/blog/3310839/202312/3310839-20231224233805125-833394873.png)
可以发现,这里有一个s的标志,表示执行该文件或其子进程时都将获得root权限,我们用file看一下这个是什么文件
![](https://img2023.cnblogs.com/blog/3310839/202312/3310839-20231224234244428-1201848142.png)
是一个elf文件,这里运行该程序,发现输出了一段话,这里可以考虑用strings命令看一下该文件
![](https://img2023.cnblogs.com/blog/3310839/202312/3310839-20231224234455842-231390809.png)
发现有一个greetings字符串,对应刚才的那个greetings文件,应该是运行该程序时调用了该greetings文件,那如果我们将/bin/bash名字改成greetings的话,运行welcome程序,就可以达到getshell的目的,这里先rm greetings,删除该文件
![](https://img2023.cnblogs.com/blog/3310839/202312/3310839-20231224235217431-17681669.png)