首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux sudo提权漏洞是这么回事

Linux sudo提权漏洞是这么回事

作者头像
李俊鹏
发布2021-02-23 10:23:07
发布2021-02-23 10:23:07
8800
举报
文章被收录于专栏:运维研习社运维研习社

14号外媒曝出的sudo安全策略隐患,Security Bypass:CVE-2019-14287具体情况如下:

sudo,是linux系统下,以超级管理员身份运行得意思,配置了某用户拥有sudo执行某些命令得权限,该用户可通过在命令前添加sudo来以root用户执行当前用户没有权限得命令,而不需要切换用户。

root用户可通过/etc/sudoers文件来配置其他用户的sudo权限

sudo用户可以通过sudo -l查看自己的权限

大概说下sudoers文件的规则,在sudoers文件中,每行算一个规则,前面带#号的是说明内容,也就是注释,不执行,剩下的就是规则

sudoers规则大致分两类:一类是别名定义,另外一类是授权规则。别名定义并不是必须的,但是授权规则是必须的

别名规则定义格式如下:

Alias_Type NAME = item1, item2, ...

或Alias_Type NAME = item1, item2, item3: NAME = item4, item5 ...

别名类型(Alias_Type)包括以下四种:

Host_Alias 定义主机别名:

User_Alias 用户别名,可以是用户或者用户组,用户组要在前面加%

Runas_Alias 用来定义runas别名,就是目标用户,即sudo允许切换至的用户

Cmnd_Alias 定义命令别名

Name就是别名了,你可以自定义名称

item就是成员,用户成员,或者命令成员,

sudoers的授权规则是分配权限的执行规则,前面定义的别名就是为了更方便的授权引用别名

授权规则主要的三个要素是“授权用户”、“主机”、“命令动作”,这三个要素缺一不可,在动作之前也可以指定切换到的特定用户,切换的用户要用括号括起来,如果不需要密码直接允许命令的,需要添加NOPASSWD参数,但是这些可以省略

格式如下:

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

举例来说:

www ALL=/bin/chown,/bin/chmod

这条表示,www用户可以在任何主机名的系统中,切换到root用户下执行chown和chmod命令,这里省略了指定切换到的用户和是否需要密码验证,默认切换到的是root用户,默认需要密码验证

而由苹果信息安全部门的Joe Vennix发现的CVE-2019-14287漏洞,就是在授权规则的时候,以(All, !root)权限来制定权限的前提下,可以通过以下两种方式以root身份执行授权命令,如果你是ALL,或者是默认的话,那本身你给的就是root权限,那就没啥好说的了,如果是指定了某个组,或者某个用户,这个漏洞也没有办法利用

  • sudo -u#-1 [命令]
  • sudo -u#429496795 [命令]

而漏洞的原因是,将用户ID转换为用户名的函数会将-1(或无效等效的4294967295)误认为是0,而0正好是root用户的User ID,此外由于通过-u参数指定的User ID在密码数据库中不存在,因此不会触发任何PAM会话模块,从而能够执行任意命令,因为要去查询用户ID,所以,如果指定了用户或组的话,也就不存在被利用的情况

下面简单演示:

登陆nginx用户,并查看其拥有的sudo权限

这边只授权了nginx可以sudo到ftp用户的权限,所以我们正常执行vi命令是无法执行的

然后利用上面说的漏洞,也是无法执行的

然后我们改下sudoers配置,给nginx用户(ALL, !root)权限,然后再尝试

可以以root用户去执行授权命令,只是执行授权命令,并不是任意命令

所以根据以上信息,判断你的配置,不过最好的方式是更新sudo到1.8.28版本

ubuntu的目前可以通过apt直接更新sudo,如果是centos或redhat写文章的时候还是无法直接通过yum更新的,需要从sudo官网下rpm包来更新

下载地址:https://www.sudo.ws/download.html

温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档