Linux sudo 提權之軟連結攻擊
阿新 • • 發佈:2022-05-08
軟連結提權的原理
低許可權使用者能夠以 root 使用者的許可權執行某個指令碼,該指令碼中又使用到了諸如 chown
等命令修改檔案的許可權,且該檔案又能夠被低許可權的使用者所修改。因此低許可權的使用者可以刪除該檔案,然後建立一個同名的檔案,但是這個檔案是指向一個高權使用者才能修改的檔案,例如 /etc/passwd
。這樣在低權使用者在執行命令的時候就能夠修改 /etc/passwd
這個檔案的許可權了,這樣就相當於低許可權使用者能夠越權操作了。
實驗驗證
- 在
Linux
上建立一個低許可權使用者testuser
,然後建立一個檔案sudotest
,該檔案的屬主是testuser
。
- 建立一個指令碼檔案
test.sh
testuser2
,testuser
有許可權執行該指令碼。 配置sudo
免密切換執行,使得testuser
能夠免密切換到root
執行test.sh
。
- 使用
root
使用者在/etc
目錄下建立檔案zsudotest
,然後切換到testuser
使用者,刪除sudotest
檔案,然後建立一個軟連結指向/etc/zsudotest
。
- 執行指令碼,可以看到指令碼執行完成之後,本來是高權使用者的檔案
/etc/zsudotest
的屬主被修改為了低權使用者。
問題規避
針對這種提權的問題,我們可以有如下的方式來減少提權的風險:
- 對於
chown
命令,我們使用的時候可以使用引數-h
- 如果還有其它的高危命令,比如
rm
,mv
這些命令,最好是能夠切換到檔案對應的使用者,然後再執行操作