Linux本地內核提權漏洞復現(CVE-2019-13272)html
1、漏洞描述linux
當調用PTRACE_TRACEME時,ptrace_link函數將得到對父進程憑據的RCU引用,而後將該指針指向get_cred函數。可是,對象struct cred的生存週期規則不容許無條件地將RCU引用轉換爲穩定引用。android
PTRACE_TRACEME獲取父進程的憑證,使其可以像父進程同樣執行父進程可以執行的各類操做。若是惡意低權限子進程使用PTRACE_TRACEME而且該子進程的父進程具備高權限,該子進程可獲取其父進程的控制權而且使用其父進程的權限調用execve函數建立一個新的高權限進程。git
注:該漏洞利用前提:須要目標服務器有桌面環境,因此很雞肋的漏洞github
2、漏洞影響版本ubuntu
目前受影響的Linux內核版本:服務器
Linux Kernel < 5.1.17ssh
3、漏洞環境搭建函數
靶機:kali 2018.2 測試
一、 建立一個低權限帳戶
二、切換到test用戶, 查看系統內核版本是否小於5.1.17, 查看當前用戶和當前用戶的UID
4、漏洞復現
一、切換到tmp目錄下,下載漏洞利用腳本
二、查看poc.c的權限,並設置執行權限
三、編譯poc.c
四、執行exp,提權成功
5、漏洞修復
補丁地址: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee
6、後記
一、整體來講這個漏洞的限制仍是很大的,首先要找到一個內部有減權的suid程序,pkexec是linux桌面freedestop上的驗證程序,也就是說非桌面版本就可能沒有這個東西,要用它也只能在桌面上。像android,它把suid程序都去除了,這個漏洞就幾乎造不成什麼影響。
二、在另外一臺電腦(ubuntu)經過ssh鏈接靶機,而後執行提權程序,發現提權失敗,這是由於經過ssh登陸時執行提權腳本沒有桌面環境
三、做者已測試成功的版本
---------------------------------------------------------------------------------------------------
參考: exp下載地址:https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272
原文出處:https://www.cnblogs.com/yuzly/p/11745677.html