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
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/159425.html
標籤:Linux
上一篇:第一周作業
