0x01 html
逛圈子社区论坛 看到了 linux sudo root 权限绕过漏洞(CVE-2019-14287) 跟着复现下 linux
综合来讲 这个漏洞做用不大 须要如下几个前提条件数据库
1.知道当前普通用户的密码bash
2.当前普通用户在souduers文件中服务器
3.本地提权须要本地操做 估计远程ssh链接的终端会失败ssh
0x02ui
此漏洞可使受限制的用户运行root命令spa
1.8.28以前的sudo版本均会受到影响htm
0x03 原文复现blog
普通用户:
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://mp.weixin.qq.com/s/xdJdOr_aaH1mkRwxxp_Qeg