0x01

逛圈子社区论坛 看到了 linux sudo root 权限绕过漏洞(CVE-2019-14287) 跟着复现下

综合来说 这个漏洞作用不大  需要以下几个前提条件

1.知道当前普通用户的密码

2.当前普通用户在souduers文件中

3.本地提权需要本地操作 估计远程ssh连接的终端会失败

0x02

此漏洞可以使受限制的用户运行root命令

1.8.28之前的sudo版本均会受到影响

0x03 原文复现

普通用户:

poc,执行 sudo -u#-1 /bin/bash 后直接切换到root权限:

0x04 自己复现

创建一个普通用户pei

提示没在souduers文件中

以root权限 加入pei用户到sudoers文件中

此时 普普通用户登录

0x04 漏洞细节

因为需要用户拥有root权限,这也意味着用户的sudoers中的runas说明符中具有特殊值ALL

我们这里来查看一下/etc/sudoers

我们可以看到下面几个用户权限的配置信息,它们的含义是这样的

授权用户/组 主机=[(切换到哪些用户或组)][是否需要输入密码验证] 命令1,命令2

第一个字段中,不以%开头的,代表“将要授权的用户”,例如其中的root;以%开头的表示“将要授权的组”,比如其中的%admin、%sudo

第二个字段表示允许登陆的主机,ALL表示所有,这里指明的是用户可以在哪些服务器上登陆本服务器来执行sudo命令,比如

pei ALL=/usr/sbin/reboot,/usr/sbin/shutdown

表示的是普通用户pei在所有主机上,都可以通过sudo运行reboot和shutdown两个命令

第三个字段如果省略的话,表示切换到root用户,如果为ALL,则表示可以切换到任何用户,里面的(ALL:ALL)表示的是允许切换到任何(用户:组)

PS:如果没有省略,必须使用括号将两个值括起来

第四个参数为NOPASSWD,这个文件中的这个省略掉了,意味着都是需要密码来进行操作的,如果为下面这个样子就不需要输入密码了

pei ALL=(ALL:ALL) NOPASSWD:ALL

第五个参数为授权操作的命令,如果值为ALL的话,就可以执行任意的命令了

这里解释了这么多,也就是说明了我们这个环境下的所有的用户都是可以执行sudo的。

在这种情况下,我们就可以使用#uid语法以任意用户ID来运行它

例如执行

sudo -u#1234 id -u

将会返回1234

但是sudo执行前用于更改用户ID的setresuid(2)和setreuid(2),特别对待用户ID-1(或其等效的4294967295),不会更改此用户的ID值,实际上他们返回的值为0

这是因为sudo本身已经用用户ID 0运行,因此在尝试更改用户ID为-1时,是不会发生任何更改的,另外由于通过-u指定的用户ID在密码数据库是不存在的,因此不会允许任何PAM会话模块

0x06 参考

https://www.sudo.ws/alerts/minus_1_uid.html

https://mp.weixin.qq.com/s/xdJdOr_aaH1mkRwxxp_Qeg

linux sudo root 权限绕过漏洞(CVE-2019-14287)的更多相关文章

  1. Python 实现 Discuz论坛附件下载权限绕过漏洞

    背景:最近压力有些大,想玩点游戏放松下,去Mac论坛下载,发现需要各种权限,于是蛋疼了. 所以,上网查了discuz! x3.1破解,手动替换,发现出现“链接已过期”.所以写了下面程序. 0.将下列代 ...

  2. Android电话拨打权限绕过漏洞(CVE-2013-6272)分析

    原文:http://blogs.360.cn/360mobile/2014/07/08/cve-2013-6272/ 1. CVE-2013-6272漏洞背景 CVE-2013-6272是一个安卓平台 ...

  3. Couchdb 垂直权限绕过漏洞(CVE-2017-12635)漏洞复现

    couchdb简介: Apache CouchDB是一个开源的NoSQL数据库,专注于易用性和成为“完全拥抱web的数据库”.它是一个使用JSON作为数据存储格式,javascript作为查询语言,M ...

  4. CVE-2017-12635(Couchdb垂直权限绕过漏洞)

    简介 Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapRedu ...

  5. CVE-2021-4034 Linux Polkit本地权限提升漏洞

    0x00 前言 公司放假两天,突然一天下午,群里面实验室的大哥发了个通告,就是这个臭名昭著刚爆出来的漏洞.通杀目前市场上大多数Linux操作系统.随后我看到各种微信公众号纷纷发表文章,POC已经出现了 ...

  6. 亚马逊云VPS AWS更改LINUX为ROOT权限密码登陆

    LINUX VPS没有ROOT权限是很难受的事,并且密码登陆也方便一些.首先用AWS证书验证的账户登录,1.修改ROOT密码sudo passwd root2.sudo chmod 777 /etc/ ...

  7. Linux赋予root权限

    按照帖子都一一尝试了下 https://blog.csdn.net/yajie_china/article/details/80636783 首先增加用户和给新用户创建密码,都不用说 用useradd ...

  8. PJzhang:CVE-2019-14287 sudo权限绕过漏洞复现

    猫宁!!! 参考链接:Ms08067实验室公众号 sudo 1.8.28版本之前有漏洞. 更新完kali linux,deepin截图工具失效,只能用自带的,不能划重点. 看一下sudo版本,1.8. ...

  9. linux 开启普通用户sudo root权限操作获取免密

    root 身份登陆 $ visudo然后进入修改配置找到 root    ALL=(ALL) ALL 在下面增加: yourusername ALL=(ALL)   NOPASSWD:  ALL ex ...

随机推荐

  1. 【Git初探】Git中fatal: Not a git repository (or any of the parent directories): .git错误的解决办法

    今天用git bash更新项目时遇到了无论使用什么命令都会报fatal: Not a git repository (or any of the parent directories): .git的情 ...

  2. Python集训营45天—Day08 (文件操作)

    目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...

  3. python 对excel进行截图

    工作中需要对excel的单元格区域进行截图,以前是调用vba进行(走了很多弯路,虽然能实现,但比较low),后来逐步发现python的win32com与vba师出同门,很多方法操作都是类似的. 可以对 ...

  4. scalikejdbc 学习笔记(1)

    build.sbt: import sbt._ import Process._ import Keys._ EclipseKeys.createSrc := EclipseCreateSrc.Def ...

  5. ELK 学习笔记之 elasticsearch bool组合查询

    elasticsearch bool组合查询: 相当于sql:where _type = 'books' and (price = 500 or title = 'bigdata') Note: mu ...

  6. Docker service update更新不成功的问题

    一.基本信息 1.Docker版本 [root@ip---- ~]# docker --version Docker version , build a872fc2f86   2.系统版本 [root ...

  7. 网络游戏开发-客户端2(自定义websocket协议格式)

    Egret官方提供了一个Websocket的库,可以让我们方便的和服务器长连接交互. 标题写的时候自定义websocket的协议格式.解释一下,不是说我们去动websocket本身的东西,我们是在we ...

  8. Unity动态改变物体遮挡关系

    在动态创建物体时,通常同父级下先创建的子物体会被后创建的遮挡,此时就需要我们用代码改变对象的层级. GameObject go;go.transform.SetAsLastSibling();//设置 ...

  9. 无人机基于Matlab/Simulink的模型开发(连载一)

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  10. Redis 复制过程详解

    Redis 的复制功能分为同步( sync )和命令传播( command propagate )两个步骤: 同步用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态. 命令传播则用于在主服务 ...