{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

近日曝光的Linux Sudo工具的root提权漏洞,到底是怎么一回事?

zonezone 回答0 收藏1
收藏问题

2条回答

LiuRhoRamen

LiuRhoRamen

回答于2022-06-28 10:03

谢谢阅读

sudo的全称是“superuserdo”,它是linux系统的管理指令,允许用户在不切换环境的前提下以root身份运行命令。对于编号是CVE-2019-14287的sudo漏洞,其实威胁还是挺大的。

当然这个漏洞也是有前提,首先你的具有sudo权限,并且可以执行所有命令或者vi命令,这样就可以绕过安全策略,直接使用root权限修改系统文件。

影响sudo版本1.8.28以前的所有版本,也就是10月16日刚刚更新,我使用Centos7 yum更新,暂未发现升级包,后面进行源码编译安装。

比如/etc/hosts文件。这真的是一件非常危险的事情,如果黑客获取了普通帐号,同时具下图的sudo权限,就可以把hosts文件篡改掉,十分建议更新这个漏洞,下面以这个实例演示下。

linux sudo版本1.8.27

从下图可以看出目前的sudo版本是1.8.27,使用普通用户test执行sudo命令,前面已经将test用户添加到sudoers配置中,输入如下命令,直接就打开/etc/hosts配置文件,并配置了baidu的域名映射到8.8.8.8 IP。

  • #sudo -u#-1 vi /etc/hosts
  • 或者
  • #sudo -u#4294967295 vi /etc/hosts


这是一个非常严重的事情,比如黑客或普通用户,恶意篡改hosts文件,将服务器经常访问的域名,映射到黑客服务器上,后果相当严重。再来ping一下baidu看一下,可以看到baidu的域名已经映射到谷歌的DNS服务上了。

linux sudo版本升级到1.8.28p1

在网上找了半天没找到sudo的源码,sudo网站一直打不开,换了个网络才下载到了sudo 1.8.28p1得源码版本,下面我们编译安装一下。

#wget https://www.sudo.ws/dist/sudo-1.8.28p1.tar.gz

可以从这里下载sudo最新版本。

#tar -zxvf sudo-1.8.28p1.tar.gz

解压后进入sudo-1.8.28p1目录,进行编译安装,请自行安装gcc

#./configure;make;make install

安装成功后,再来执行下sudo看是否还有能提升到root权限,从图可以看出sudo升级到1.8.28p1后,已经不能执行root权限了。

总结,安全问题总是在不经意间出现,出现了就要重视起来,这个sudo漏洞还是挺重要的,建议大家把服务器sudo更新到1.8.28p1版本以上。

喜欢我的回答请关注我,谢谢。

评论0 赞同0
  •  加载中...
roland_reed

roland_reed

回答于2022-06-28 10:03

作为 Linux 中最常使用的重要实用程序之一,Sudo 几乎安装在每一款 UNIX 和 Linux 发行版上,以便用户调用和实施核心命令。

然而近期曝出的一个提权漏洞,却直指 sudo 的一个安全策略隐患 —— 即便配置中明确不允许 root 用户访问,该漏洞仍可允许恶意用户或程序,在目标 Linux 系统上以 root 用户身份执行任意命令。

(题图 via Hacker News)

据悉,Sudo 特指“超级用户”。作为一个系统命令,其允许用户以特殊权限来运行程序或命令,而无需切换使用环境(通常以 root 用户身份运行命令)。

默认情况下,在大多数 Linux 发行版中(如屏幕快照所示),/ etc / sudoers 的 RunAs 规范文件中的 ALL 关键字,允许 admin 或 sudo 分组中的所有用户,以系统上任何有效用户的身份运行任何命令。

然而由于特权分离是 Linux 中最基本的安全范例之一,因此管理员可以配置 sudoers 文件,来定义哪些用户可以运行哪些命令。

这样一来,基板限制了用户以 root 身份运行特定或任何命令,该漏洞也可允许用户绕过此安全策略,并完全控制系统。

Sudo 开发者称: “只要 Runas 规范明确禁止 root 访问、首先列出 ALL 关键字,具有足够 sudo 权限的用户就可以使用它来以 root 身份运行命令。”

据悉,该漏洞由苹果信息安全部门的 Joe Vennix 追踪发现(CVE-2019-14287)。且想要利用这个 bug,只需 Sudo User ID -1 或 4294967295 。

这是因为将用户 ID 转换为用户名的函数,会将 -1(或无效等效的 4294967295)误认为 0,而这正好是 root 用户 User ID 。

此外,由于通过 -u 选项指定的 User ID 在密码数据库中不存在,因此不会运行任何 PAM 会话模块。

综上所述,该漏洞影响最新版本 1.8.28 之前的所有 Sudo 版本。庆幸的是,几个小时前,各大 Linux 发行版都已经在向用户推送新版本了。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<