专栏首页渗透云笔记Linux sudo权限提升漏洞(CVE-2019-14287)

Linux sudo权限提升漏洞(CVE-2019-14287)

目录

0x01 漏洞介绍

0x02 漏洞影响

0x03 漏洞复现

0x04 漏洞细节

0x05 参考

0x01 漏洞介绍

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

0x02 漏洞影响

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

此漏洞的利用需要使用户具有sudo的权限

0x03 漏洞复现

0x04 漏洞细节

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

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

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

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

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

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

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

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

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

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

wuxin 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会话模块

0x05 参考

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

本文分享自微信公众号 - 渗透云笔记(shentouyun)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ubuntu1~16.04.9 下安装python3.6 详细教程(在腾讯云服务器上安装实例)

    1.输入 sudo add-apt-repository ppa:jonathonf/python-3.6

    用户6544262
  • Ubuntu18.04 ROS1Melodic ROS2Dashing 机器人工具集学习镜像的制作说明 Pinguy

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    zhangrelay
  • 掌握运维必备技能--问题故障定位

    a. on-CPU:执行中,执行中的时间通常又分为用户态时间user和系统态时间sys。

    用户6543014
  • CVE-2019-14287(Linux sudo 漏洞)分析

    近日 sudo 被爆光一个漏洞,非授权的特权用户可以绕过限制获得特权。官方的修复公告请见:https://www.sudo.ws/alerts/minus_1_...

    Seebug漏洞平台
  • 简单几步搭建一个基于 Docker 的 Tomcat 运行环境!

    Docker 旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器 (轻量级虚拟机) 并部署和运行应用程序,并通过配置文件可以轻松实...

    用户6543014
  • AOP框架Dora.Interception 3.0 [4]: 基于特性的拦截器注册

    按照单一职责的原则,拦截器只负责需要的拦截操作的执行,至于它采用何种方式应用到目标方法上,以及它在整个拦截器管道中的位置则属于“拦截器注册”的范畴。Dora.I...

    蒋金楠
  • 如何实现 Go Module 依赖关系的可视化

    最近,我开发了一个非常简单的小工具,总的代码量 200 行不到。今天,简单介绍下它。这是个什么工具呢?它是一个用于可视化展示 Go Module 依赖关系的工具...

    波罗学
  • 五分钟搞定Bash功能与使用技巧

    一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无法与硬件或内核打交道的,用户通...

    用户6543014
  • 用Python爬取英雄联盟英雄皮肤壁纸

    http://lol.qq.com/web201310/info-heros.shtml

    HuangWeiAI
  • R&Python Data Science 系列:数据处理(1)

    数据科学主要以统计学、机器学习、数据可视化等,使用工具将原始数据转换为认识和知识(可视化或者模型),主要研究内容包括数据导入、数据转换、可视化、构建模型等。...

    1480

扫码关注云+社区

领取腾讯云代金券