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

目录

一,漏洞分析

二,形成原因

三,漏洞检测复现

1、编译poc 文件

2、复现漏洞

四,漏洞修复

方法一

方法二


一,漏洞分析

脏牛(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 

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

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=oyzgxv8lpy1k

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
你好!对于Linux提权脏牛漏洞CVE-2016-5195),我可以为你提供一些复现的步骤。请注意,这是一个严重的安全漏洞,仅用于测试和教育目的。 在开始之前,请确保你已经备份了你的系统和数据,因为这个过程可能会对系统造成损坏。 以下是复现脏牛漏洞的一般步骤: 1. 确认你的系统受到脏牛漏洞的影响。你可以使用以下命令检查: ```shell $ uname -r ``` 如果输出的内核版本在`3.0`到`4.7`之间(不包括两端),那么你的系统可能受到影响。 2. 下载并编译脏牛漏洞的测试程序,可以使用以下命令: ```shell $ git clone https://github.com/dirtycow/dirtycow.github.io $ cd dirtycow.github.io $ make ``` 3. 运行测试程序进行提权。请注意,这可能会对系统造成损坏,所以请谨慎操作。 ```shell $ ./test_dirtycow your_file_name ``` `your_file_name`是你想要修改的目标文件的路径。这个测试程序会尝试修改目标文件的权限,以实现提权效果。 4. 检查提权是否成功。你可以尝试运行一个需要超级用户权限的命令来验证。 ```shell $ sudo whoami ``` 如果输出结果为"root",那么你已经成功提权了。 请记住,在测试和复现漏洞时,务必遵守法律和道德准则。此外,确保你在合法的环境下进行测试,并获得了合适的授权。 希望这些步骤能帮助到你!如果你有任何其他问题,请随时提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

干掉芹菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值