Linux SUDO Bug可让您以root用户身份运行命令,大多数命令不受影响
2019-10-15 11:35:10 【

已发现Linux sudo命令中的漏洞,该漏洞可能允许非特权用户以root用户身份执行命令。幸运的是,此漏洞仅在非标准配置中有效,并且大多数Linux服务器不受影响。

在获得此漏洞之前,重要的是要掌握一些有关sudo命令如何工作以及如何进行配置的背景信息。

在Linux操作系统上执行命令时,非特权用户可以使用sudo (超级用户身份)命令以root用户身份执行命令,只要它们已被授予权限或知道root用户的密码即可。

sudo命令还可以配置为允许用户通过向/ etc / sudoers配置文件添加特殊指令来以其他用户身份运行命令。

例如,以下命令允许用户`test`以root身份以外的任何用户身份运行/ usr / bin / vim和/ usr / bin / id命令。

test ALL = (ALL, !root) /usr/bin/vimtest ALL = (ALL, !root) /usr/bin/id

为了使“ test”用户执行上述命令之一,他们将使用带有-u参数的sudo命令来指定运行用户。例如,以下命令将以vibleing-test用户身份启动vim。

sudo -u bleeping-test vim 

在Linux中创建用户时,将为每个用户分配一个UID。如下所示,用户“ test”的UID为1001,“ bleeping-test”用户的UID为1002。


启动sudo命令时,用户可以使用这些UID代替用户名。例如,下面的命令将再次以“测试”的形式启动VIM,但这一次是通过提供用户的UID来启动的。

sudo -u#1002 vim

sudo漏洞

苹果安全研究员Joe Vennix 发现一个错误,该错误允许用户通过在sudo命令中使用-1或  4294967295 UID以root用户身份启动允许的sudo命令。

例如,即使在/ etc / sudoers文件中明确拒绝了“ test”用户,以下命令也可以利用该错误以root身份启动/ usr / bin / id用户。

sudo -u#-1 id

下面说明了如何将这个错误与/ usr / bin / id命令一起使用以获取root特权。


尽管此错误功能强大,但重要的是要记住,只有通过sudoers配置文件为用户提供了对命令的访问权限,它才能起作用。如果不是这样,并且大多数Linux发行版默认情况下都没有,那么此错误将无效。

发起攻击

为了真正利用此漏洞,用户需要为能够启动其他命令的命令配置一个sudoer指令。

在上面的示例sudoers指令中,我们有这样的命令;VIM命令!

test ALL = (ALL, !root) /usr/bin/vim

在VIM中,用户可以使用:!启动另一个程序命令。例如,如果在VIM中,您可以输入!ls ls在当前文件夹中执行命令。

如果我们使用  sudo -u#-1 vim命令利用此漏洞,则VIM将作为root启动。然后可以通过执行!whoami命令来确认


既然VIM是作为root启动的,那么从该VIM执行的所有命令也将作为root运行。

这可以很容易地用于启动根外壳程序,然后可以在受感染的系统上执行所需的任何命令。下面的视频说明了这种攻击。


尽管此错误显然很强大,但仍只能在不会影响绝大多数Linux用户的非标准配置下使用。

对于确实为用户使用sudoers指令的用户,应尽快升级到sudo 1.8.28或更高版本。


】【打印关闭】 【返回顶部
上一篇Microsoft现在默认启用Windows 10.. 下一篇Windows 10 Update Assistant漏洞..