天天看點

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