sudo+SETENV(環境變量)提權


sudo運行時默認會啟用env_reset選項將從命令行設置的環境變量復原,因此通常情況下,當使用sudo命令時,通過本地修改環境變量也沒法替換目標文件來進行提權,但如果sudo在配置時為用戶設置了SETENV選項,情況就不一樣了。SETENV會允許用戶禁用env_reset選項,允許sudo使用當前用戶命令行中設置的環境變量,如下圖:sudo允許當前用戶以root身份執行一個shell腳本,並為當前用戶配置了SETENV,shell腳本是打印syslog最后幾行。

如果沒有配置SETENV,這里是無法通過改環境變量把tail替換成一個vim命令來進行提權的。這里有SETENV,那么就可以設置環境變量

一、從/bin目錄復制一個vim,並命名為tail存在/tmp目錄下

二、通過下面的命令,將/tmp目錄放置在PATH環境變量的最前面

export PATH=/tmp:$PATH

三、通過下面的命令即可運行我們偽造的tail命令,從而用vim進行提權

sudo --preserve-env=PATH /usr/bin/check_syslog.sh

--preserve-env會使用當前新的PATH作為環境變量,並禁用env_reset選項,從而達到先執行我們偽造的tail命令的目的

* sudo也可以直接支持對環境變量進行賦值

 

 所以也可以用以下命令進行提權

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM