Linux sudo權限提高漏洞(CVE-2019-14287)

目錄

0x01 漏洞介紹html

0x02 漏洞影響數據庫

0x03 漏洞復現服務器

0x04 漏洞細節學習

0x05 參考ui

0x01 漏洞介紹

此漏洞可使受限制的用戶運行root命令spa

0x02 漏洞影響

1.8.28以前的sudo版本均會受到影響code

此漏洞的利用須要使用戶具備sudo的權限cdn

0x03 漏洞復現

file

0x04 漏洞細節

由於須要用戶擁有root權限,這也意味着用戶的sudoers中的runas說明符中具備特殊值ALLhtm

咱們這裏來查看一下/etc/sudoersblog

file

咱們能夠看到下面幾個用戶權限的配置信息,它們的含義是這樣的

受權用戶/組 主機=[(切換到哪些用戶或組)][是否須要輸入密碼驗證] 命令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

file

可是sudo執行前用於更改用戶ID的setresuid(2)和setreuid(2),特別對待用戶ID-1(或其等效的4294967295),不會更改此用戶的ID值,實際上他們返回的值爲0

file

這是由於sudo自己已經用用戶ID 0運行,所以在嘗試更改用戶ID爲-1時,是不會發生任何更改的,另外因爲經過-u指定的用戶ID在密碼數據庫是不存在的,所以不會容許任何PAM會話模塊

0x05 參考

https://www.sudo.ws/alerts/minus1uid.html

文章首發公衆號:無意的夢囈(wuxinmengyi)

這是一個記錄紅隊學習、信安筆記,我的成長的公衆號

掃碼關注便可

file

相關文章
相關標籤/搜索