天天看点

sudo+SETENV(环境变量)提权

sudo运行时默认会启用env_reset选项将从命令行设置的环境变量复原,因此通常情况下,当使用sudo命令时,通过本地修改环境变量也没法替换目标文件来进行提权,但如果sudo在配置时为用户设置了SETENV选项,情况就不一样了。SETENV会允许用户禁用env_reset选项,允许sudo使用当前用户命令行中设置的环境变量,如下图:sudo允许当前用户以root身份执行一个shell脚本,并为当前用户配置了SETENV,shell脚本是打印syslog最后几行。

sudo+SETENV(环境变量)提权

如果没有配置SETENV,这里是无法通过改环境变量把tail替换成一个vim命令来进行提权的。这里有SETENV,那么就可以设置环境变量

一、从/bin目录复制一个vim,并命名为tail存在/tmp目录下

二、通过下面的命令,将/tmp目录放置在PATH环境变量的最前面

export PATH=/tmp:$PATH      
sudo --preserve-env=PATH /usr/bin/check_syslog.sh