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。

    image-20201027194229101

漏洞复现

漏洞是客观存在的,但是利用条件很苛刻:管理员出于某些需要限制了某些用户的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,效果如下:

image-20201027200954006

使用sudo -u#-1 /tmp/echo.sh进行越权操作:(或者4294967295

image-20201027201056125

但是,如果管理员将其可用用户进行细分,该漏洞就无法利用

test    ALL=(ubuntu,!root) /tmp/echo.sh

image-20201027201310128

posted @ 2020-10-27 22:11  掉到鱼缸里的猫  阅读(216)  评论(0编辑  收藏  举报