Linux sudo权限绕过漏洞详解

219 篇文章 0 订阅
14 篇文章 0 订阅

这几年大热的bug时间,就是Linux sudo权限绕过漏洞CVE-2019-14287事件,对此,我们做了一些研究。虽然各大平台已经把核心的东西晒出来了,但是,因为目前没有说的特别完整的,所以,笔者研究一番后,总算是把这个过程都弄明白了。

关于sudo的定义,我们就不细说了,不了解的小伙伴可以问度娘。这里我们主要说一下漏洞的问题。

本漏洞存在于sudo 1.8.28之前的版本,随便打开个虚拟机看看当前版本。如果版本没有问题,那就直接开撸。
在这里插入图片描述
先附上发现者苹果信息安全部门Joe Vennix的原文:
6E5FDED0-5D43-41e0-970E-F0044DC20411_副本
从这里我们知道,要复现这个漏洞是有前提的,上文中作者赋予bob用户通过sudo命令执行vi命令的权利,但是只拥有除了root权限以外的权限,很明显,这样以来,是不能修改和访问root用户和用户组的文件的。

而如果不添加这个权限,bob是不能执行sudo命令的,举个例子:
在这里插入图片描述文件中并没有赋予其他用户使用sudo命令的权利,我们切换到common用户,执行sudo命令:
在这里插入图片描述
很明显,common用户不能使用sudo,我们将common用户添加到sudoers中,也赋予非root权限执行vi命令:

首先赋予sudoers root用户写的权利,原本sudoers是没有写的权利的:
在这里插入图片描述
然后将非root使用vi命令的权利赋给common:
2F72EE5A-0
我们现在来试试common的sudo vi:
在这里插入图片描述
OK,我们可以使用sudo vi修改文件了,但是现在没有root权限,所以无法修改root组的/etc/passwd文件。

我们知道,root用户的id是0,如果我们能将common用户的id也变成0就可以执行root的权限了,这也就是漏洞的原理所在,当前sudo版本会将id为-1和4294967295的用户作为id为0来进行识别,所以我们只需要将uid指定为0或4294967295均可绕过上面的权限控制执行root权限:
在这里插入图片描述
OK,这样我们就可以让common用户以root权限执行vi命令了。

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值