1. 程式人生 > 其它 >髒牛提權(CVE-2016-5195)復現

髒牛提權(CVE-2016-5195)復現

這兩天遇到了一個滲透到了提權階段,結果折騰了半天也沒提權上去。。。就正好復現了幾個提權方法

  • 影響範圍

Linux kernel >= 2.6.22(2007年發行)開始就受影響了,直到2016年10月18日才修復。

  • 漏洞原理

在 Linux 核心的記憶體子系統處理私有隻讀記憶體對映的寫時複製 (Copy-on-Write) 破壞的方式中發現了競爭條件漏洞,從而導致破壞私有隻讀記憶體對映。

一個沒有特權的本地使用者可以利用這個缺陷來獲得對其他只讀記憶體對映的寫許可權,從而獲取到更高的許可權。

相關說明:https://github.com/dirtycow/dirtycow.github.io/wiki/VulnerabilityDetails

  • 復現過程

這裡附上兩個poc:

poc1:https://github.com/gbonacini/CVE-2016-5195

poc2:https://github.com/FireFart/dirtycow

這裡先用第一個來測試

檢視id

通過uname -a 來檢視linux的核心版本

github上也有自動檢測工具

https://github.com/mzet-/linux-exploit-suggester

這裡也檢測出了髒牛提權漏洞

在poc資料夾中直接make,生成一個dcow

直接執行,可以看到返回了一個新的密碼

通過su切換到root,然後輸入剛才返回的密碼就可以直接登入了

git檔案下來使用gcc編譯dirty.c檔案

gcc -pthread dirty.c -o drty -lcrypt

執行dirty,成功後回提示輸入新密碼,且生成了一個名為firefart的新root許可權使用者

成功後回生成一個passwd的備份檔案在/tmp下的passwd.bak檔案

這時候我們檢視/etc/passwd會發現多了兩條資料

登入,檢視id