Linux:SUID提权

目录

一、什么是SUID权限:

二、提权步骤:

1、查看当前用户身份:

2、find命令寻找具有SUID权限的文件:

3、find命令提权:


一、什么是SUID权限:

  SUID是一种对二进制程序进行设置的特殊权限,在运行相应程序时会拥有临时的root权限,也就是仅在运行时拥有root权限,且只在此程序拥有root权限,程序外则无,若是对一些特殊命令 (命令也是程序的一种)设置了SUID,那么将会有被提权的风险,常用的SUID提权命令有nmap、vim、find、bash、more、less、nano和cp等

二、提权步骤:

1、查看当前用户身份:

  在命令行输入whoami等命令,确认自己为普通用户(其实这一部可以省略,大多数情况下都是普通用户,不然也不需要提权)

2、find命令寻找具有SUID权限的文件:

命令为:

find / -user root -perm -4000 -print 2>/dev/null

补充:


find命令的格式为 find [路径] [参数]


命令解释:

        / :代表根目录,也就是说从根目录开始查找

        -user :按文件属主类型查找

        -perm:按文件权限来查找,4000,2000,1000为分别表示SUID,SGID,SBIT

        -print:将匹配到的文件进行标准输出

        2>/dev/null : 2代表标准错误输出(文件描述符的一种),>代表输出重定向,/dev/null是一个特殊的文件,输出到此文件的东西都会被丢弃,你为可以理解为垃圾桶

执行结果为:

 我们可以看到结果大多为/bin文件夹里面的文件,这里要说一下:/bin目录下包含了用户命令文件,也就是说find的命令匹配到的/bin目录里的命令大多都可以进行提权操作,在执行相关命令的同时拥有root权限

3、find命令提权:

通过搜索结果我们可以看到,find命令是拥有SUID权限的,接下来我们便利用find命令进行提权

如果你所查看的SUID权限里面没有find命令的话,可以采用以下命令,赋予其SUID权限

chmod u+s /bin/usr/find

这里需要用到find命令里面的一个参数: -exec (对匹配的文件执行该参数所给出的shell命令)

shell命令格式应为:命令 { };   {}代表find所查找出来的文件

exec后面的命令是以分号为结尾的,故 ; 不可省略

提权命令:

find 任意已有文件名 -exec whoami \;

(\为转义字符,将引号转义为最初的引号,因为;在不同系统不同命令中有着不同的含义,所以需要转义)

结果为:

我们可以看到当前用户为root

到此find提权结束,你可以令-exec后为任何shell命令,它都将以root的权限进行

其他命令的提权以后再更新

更多相关内容请查看作者博客icon-default.png?t=N176http://blog.byzhb.top/

猜你喜欢

转载自blog.csdn.net/Elite__zhb/article/details/129349409