0x01 漏洞介紹html
0x02 漏洞影響數據庫
0x03 漏洞復現服務器
0x04 漏洞細節學習
0x05 參考ui
此漏洞可使受限制的用戶運行root命令spa
1.8.28以前的sudo版本均會受到影響code
此漏洞的利用須要使用戶具備sudo的權限cdn
由於須要用戶擁有root權限,這也意味着用戶的sudoers中的runas說明符中具備特殊值ALLhtm
咱們這裏來查看一下/etc/sudoers
blog
咱們能夠看到下面幾個用戶權限的配置信息,它們的含義是這樣的
受權用戶/組 主機=[(切換到哪些用戶或組)][是否須要輸入密碼驗證] 命令1,命令2複製代碼
第一個字段中,不以%開頭的,表明「將要受權的用戶」,例如其中的root
;以%開頭的表示「將要受權的組」,好比其中的%admin
、%sudo
第二個字段表示容許登錄的主機,ALL表示全部,這裏指明的是用戶能夠在哪些服務器上登錄本服務器來執行sudo命令,好比
wuxin ALL=/usr/sbin/reboot,/usr/sbin/shutdown複製代碼
表示的是普通用戶wuxin在全部主機上,均可以經過sudo運行reboot和shutdown兩個命令
第三個字段若是省略的話,表示切換到root用戶,若是爲ALL,則表示能夠切換到任何用戶,裏面的(ALL:ALL)表示的是容許切換到任何(用戶:組)
PS:若是沒有省略,必須使用括號將兩個值括起來
第四個參數爲NOPASSWD,這個文件中的這個省略掉了,意味着都是須要密碼來進行操做的,若是爲下面這個樣子就不須要輸入密碼了
wuxin ALL=(ALL:ALL) NOPASSWD:ALL複製代碼
第五個參數爲受權操做的命令,若是值爲ALL的話,就能夠執行任意的命令了
這裏解釋了這麼多,也就是說明了咱們這個環境下的全部的用戶都是能夠執行sudo的。
在這種狀況下,咱們就可使用#uid語法以任意用戶ID來運行它
例如執行
sudo -u#1234 id -u複製代碼
將會返回1234
可是sudo執行前用於更改用戶ID的setresuid(2)和setreuid(2),特別對待用戶ID-1(或其等效的4294967295),不會更改此用戶的ID值,實際上他們返回的值爲0
這是由於sudo自己已經用用戶ID 0運行,所以在嘗試更改用戶ID爲-1時,是不會發生任何更改的,另外因爲經過-u指定的用戶ID在密碼數據庫是不存在的,所以不會容許任何PAM會話模塊
https://www.sudo.ws/alerts/minus1uid.html
文章首發公衆號:無意的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,我的成長的公衆號
掃碼關注便可