1. 威客安全首页
  2. 安全资讯

Linux Sudo提权漏洞,任何用户可以Root身份运行命令

作为 Linux 中最常使用的重要实用程序之一,Sudo几乎安装在每一款 UNIX 和 Linux 发行版上,以便用户调用和实施核心命令。然而近期研究人员发现了一个提权漏洞,却直指Sudo的一个安全策略隐患——即便配置中明确不允许root用户访问,该漏洞仍可允许恶意用户或程序,在目标Linux系统上以root用户身份执行任意命令。

Linux Sudo提权漏洞,任何用户可以Root身份运行命令

但值得庆幸的是,这个漏洞只能在非标准配置的Linux下生效,大多数Linux服务器不受影响。

首先,让我们来了解一下Sudo。

Sudo(super user do)是用于类似Unix的计算机操作系统的程序,该程序允许用户使用其他用户的安全特权运行程序,默认情况下是超级用户。

当在Linux操作系统上执行命令时,只有得到许可或者知道root密码,普通用户才可以使用Sudo命令以root身份执行命令。

因此对于Sudo命令来说,通过向/etc/sudoers配置文件添加特殊的指令,就可以让某个用户以另一个用户的身份运行命令。

在Linux中创建用户时,每个用户都有一个UID。如下所示,用户test的UID为1001,用户bleep-test的UID为1002。

Linux Sudo提权漏洞,任何用户可以Root身份运行命令

而在使用sudo命令时,你也可以直接指定用户的UID来代替用户名。例如,下面的命令将再次以bleep-test身份启动vim,只不过这一次是通过指定用户的UID。

Linux Sudo提权漏洞,任何用户可以Root身份运行命令

苹果安全研究员Joe Vennix就在sudo上发现了一个漏洞,只要用户在使用sudo命令时指定UID为-1或4294967295,就可以以root身份执行命令。

这是因为命令在将UID转换为对应用户时,会将-1或4294967295这两个异常数字视为0,而0是root用户的UID。

Linux Sudo提权漏洞,任何用户可以Root身份运行命令

Sudo开发者表示:“即便 RunAs规约明确禁止root用户访问,但如果 Runas规约文件中首先列出了ALL关键字,具有sudo权限的用户就可以使用它来以root身份运行任意命令。”

虽然该漏洞影响了最新版本 1.8.28 之前的所有 Sudo 版本,但是必须记住,它只能在某个用户通过sudoers文件的配置访问某个命令的权限时才能生效。如果不是这种设置——大多数Linux发行版默认都不是——那么这个漏洞将不会产生任何影响。

原文链接:http://www.mottoin.com/detail/4230.html

本站声明:网站内容来源于mottoin,如有侵权,请联系我们,我们将及时处理。

本文转为转载文章,本文观点不代表威客安全立场。

联系我们

4006-119-120

在线咨询:点击这里给我发消息

邮件:public@jinlongsec.com

工作时间:周一至周五,9:30-18:30,节假日休息

X