Linux本地內核提權漏洞復現(CVE-2019-13272)


Linux本地內核提權漏洞復現(CVE-2019-13272)

一、漏洞描述

當調用PTRACE_TRACEME時,ptrace_link函數將獲得對父進程憑據的RCU引用,然后將該指針指向get_cred函數。但是,對象struct cred的生存周期規則不允許無條件地將RCU引用轉換為穩定引用。

PTRACE_TRACEME獲取父進程的憑證,使其能夠像父進程一樣執行父進程能夠執行的各種操作。如果惡意低權限子進程使用PTRACE_TRACEME並且該子進程的父進程具有高權限,該子進程可獲取其父進程的控制權並且使用其父進程的權限調用execve函數創建一個新的高權限進程。

注:該漏洞利用前提:需要目標服務器有桌面環境,所以很雞肋的漏洞

二、漏洞影響版本

目前受影響的Linux內核版本:

Linux Kernel < 5.1.17

三、漏洞環境搭建

靶機:kali 2018.2 

1、 創建一個低權限賬戶

  

2、切換到test用戶, 查看系統內核版本是否小於5.1.17, 查看當前用戶和當前用戶的UID

  

 四、漏洞復現

1、切換到tmp目錄下,下載漏洞利用腳本

  

2、查看poc.c的權限,並設置執行權限

  

3、編譯poc.c

  

4、執行exp,提權成功

  

五、漏洞修復

補丁地址: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee

六、后記

1、總體來說這個漏洞的限制還是很大的,首先要找到一個內部有減權的suid程序,pkexec是linux桌面freedestop上的驗證程序,也就是說非桌面版本就可能沒有這個東西,要用它也只能在桌面上。像android,它把suid程序都去除了,這個漏洞就幾乎造不成什么影響。

  

2、在另一台電腦(ubuntu)通過ssh連接靶機,然后執行提權程序,發現提權失敗,這是因為通過ssh登錄時執行提權腳本沒有桌面環境

  

 

   

3、作者已測試成功的版本

  

 

 

 

---------------------------------------------------------------------------------------------------

參考: exp下載地址:https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM