linux sudo提权漏洞,linux CVE-2019-14287 Sudo提权漏洞(示例代码)

CVE-2019-14287

sudo介绍

sudo,也就是以超级管理员身份运行(superuser do)的意思。sudo 是 Linux 中最常使用的重要实用程序之一,它功能十分强大,几乎安装在每一款基于 UNIX 或 Linux 的操作系统上,也是这些操作系统的核心命令。作为一个系统命令,普通用户可通过它以特殊权限来运行程序或命令(通常以 root 用户身份运行命令),而无需切换使用环境。

§ sudo能够限制用户只在某台主机上运行某些命令。

§ sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。

§ sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。

§ sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。

漏洞介绍及其利用

此漏洞可以使受限制的用户运行root命令,1.8.28之前的sudo版本均会受到影响,此漏洞的利用需要使用户具有sudo的权限。

漏洞影响版本:1.8.28之前

利用此sudo漏洞的前提是规定安全策略设置如下:

yunying = (ALL, !root) /bin/bash

意思为:规定yunying用户可以以除了root以外的用户身份去执行//bin/bash命令

据悉,该漏洞由苹果信息安全部门的 Joe Vennix 追踪发现(漏洞的 CVE ID 为 CVE-2019-14287 )。如果想要利用这个漏洞,只需按以下的方式运行即可:

sudo -u#-1 id -u

或者

sudo -u#4294967295 id -u

187a30f18d254d72b17f2dbe08f581b1.jpg

之所以会产生这个漏洞,是因为将用户 ID 转换为用户名的函数会将 -1(或无效等效的 4294967295)误认为是 0,而这正好是 root 用户 User ID 。此外,由于通过 -u 选项指定的 User ID 在密码数据库中不存在,因此不会运行任何 PAM 会话模块。

漏洞复现

靶机:centos7

sudo版本:

创建一个普通用户yunying

useradd yunying // useradd -d /usr/yunying -m yunying 选项可以创建一个用户目录

passwd yunying

赋予root用户写的权限,编辑/etc/sudoers,增加yunying用户,设置前提权限

98a1cd61994644f3bc801e612c357ea3.jpg

正常切换至yunying用户执行bash命令

ef4506d4b77242c083c53c3f66f1efd7.jpg

利用漏洞以root用户执行bash命令

7f03e40113e54b199e6a11fad313e45f.jpg修复建议

升级到 sudo 1.8.28检索/etc/sudoers 是否存在 ALL 关键词的复合限制逻辑

centos升级命令:yum update sudo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值