漏洞复现- - -CVE-2016-5195 Dirty Cow脏牛提权漏洞

举报
yd_217360808 发表于 2022/11/02 11:14:53 2022/11/02
【摘要】 本文主要讲解了脏牛漏洞的提全过程及其修复建议。

漏洞复现- - -CVE-2016-5195 Dirty Cow脏牛提权漏洞

一,漏洞分析

脏牛(Dirty COW,编号:CVE-2016-5195)是2016年10月18日被曝出的存在于Linux内核中的一款0day漏洞。因为此漏洞是在Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时发生的,而又给Linux内核的使用带来烦恼,所以将其命名为“Dirty COW”。

漏洞编号:CVE-2016-5195

漏洞类型:内核竞态条件漏洞

漏洞危害:本地提权

影响范围:Linux kernel>2.6.22 (released in 2007)

Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞

二,形成原因

漏洞形成原因(写时拷贝技术)

在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。

Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。

竞态条件(race condition)是指设备或系统出现不恰当的执行时序,而得到不正确的结果。

三,漏洞检测复现

工具:

gcc:linux系统下的编译器,用于编译程序dirtyc0w.c:本次实验漏洞验证的POC源码

1、编译poc 文件

切换到cow用户,查看系统内核版本和系统版本

2、复现漏洞

准备用sudo切换为root用户,创建只读文件,再切回cow用户利用poc对文件越权写入。

查看内容

执行POC

查看文件内容

这里可以看到,我们的只读文件内容被改变了。

若文件内容没有改变,说明该系统没有脏牛漏洞。

四,漏洞修复

方法一

1、升级内核修复

CentOS 6/7 系列操作系统:

1) 检查是否有内核升级包:yum check-update |grep kernel

2) 升级内核:yum update kernel

3) 然后重启系统

4) 查看版本:uname -a

Ubuntu 系列操作系统:

Ubuntu 系统必须在/etc/apt/sources.list中开启–security后缀的源地址才能收到更新。

untu 12.04 LTS (precise)

deb http://security.ubuntu.com/ubuntu/ precise-security main

Ubuntu 14.04 LTS (trusty)

deb http://security.ubuntu.com/ubuntu/ trusty-security main

更新包列表:

sudo apt-get update

升级软件包:

sudo apt-get upgrade

重启系统

方法二

还可以根据 长亭科技

https://mp.weixin.qq.com/s?__biz=MzIwNDA2NDk5OQ==&mid=2651370571&idx=1&sn=68acf07ca2683a9c98fa52e900d97db3&chksm=8d39c5c3ba4e4cd58c21d0a21ca337ded2132625987e174d286f8d175034267bd09807ea9a11&scene=4#wechat_redirect

提供另外一种办法来修复。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。