版权声明:本文为博主原创文章,转载请注明原创链接! https://blog.csdn.net/qq_39112646/article/details/89371535
一:前言
为什么叫脏牛(Dirty COW)漏洞:因为Linux内核的内存子系统在处理写和拷贝时存在条件竞争漏洞,导致可以破快破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的权限,实现本地提权。
影响范围: Linux内核>=2.6.22
实验环境:Ubuntu
实验工具:gcc:linux下的编译器,用于编译程序 dirtyc0w.c 漏洞验证的poc
二:提权过程
1. 进入到有poc的目录
2. gcc -pthread dirtyc0w -o dirtyc0w
-pthread 会附加一个宏定义 -D_REENTRANT 该宏会导致libc头文件选择那些thread-safe的实现
-o 为编译后的输出文件名
3. 给文件foo写入内容(内容不得为空,文件名可以自定义),该文件必须有读取权限
4. chmod 0404 foo 代表所有用户默认情况下对该文件只有读取权限, 无法修改删除
5. 执行命令测试漏洞 ./dirtyc0w foo m00000000000000 (持续时间一分钟)
6. 通过cat 查看该文件,发现已经被 m00000000000000覆盖
7. 如果被覆盖则该系统存在脏牛漏洞