CVE-2019-14287
-
漏洞存在于sudo工具1.8.28之前的版本。
-
利用条件:掌握普通用户密码;该用户拥有一定的sudo权限(对sudo命令进行了特殊的配置)。
-
一开始有点懵,我都有用户密码,直接
sudo -i
就是root了,这算什么提权?后来发现sudo远没有想象的简单,典型的配置如:test_user ALL=(!root) /bin/bash test_user ALL=(ALL) NOPASSWD:/usr/bin/id
sudo是可以使用指定用户(缺省为“root”)身份执行命令,在这种配置下用户可以使用
sudo id
这样的命令来获得一个root用户的uid,但是却不能获取一个root权限的shell。
漏洞复现
漏洞是客观存在的,但是利用条件很苛刻:管理员出于某些需要限制了某些用户的root使用权,比如
root ALL=(ALL:ALL) ALL
test ALL=(ALL) NOPASSWD:/usr/bin/id
test ALL=(ALL,!root) /tmp/echo.sh
# 一定是(ALL,!root)
这样的设置表示:允许用户使用除了root用户以外的用户来执行/tmp/echo.sh
,效果如下:
使用sudo -u#-1 /tmp/echo.sh
进行越权操作:(或者4294967295
)
但是,如果管理员将其可用用户进行细分,该漏洞就无法利用
test ALL=(ubuntu,!root) /tmp/echo.sh